Вы ошибаетесь. В Си нету типа данных boolean и нету значения false. Это именно ошибка в проектировании функции. В особенностях преобразования типов в PHP я разбираюсь, но мне эта система простой и логичной не кажется.
>. На фоне времени выполнения любого даже самого тривиально запроса, экономия заметна не будет.
В данном примере — нет, а вообще PHP очень тормозной. У меня например как-то замена плейсхолдеров в SQL-запросе через preg_replace_callback занимала больше времени, чем сам запрос (MySQL-то на Си написан, вот и быстро работает). Простой запрос выполняется где-то за 500 мкс, а preg_replace_callback с несколькими плейсхолдерами занял 1 мс. Так-то.
Тогда проверяйте личность, прежде чем давать доступ к размещению прилрожения, например, проверкой банковским переводом или переводом через систему Contact.
А, еще. Если конструктор класса, к примеру, принимает массив с опциями, и время выполнения не критично, проверяю массив на отсутствие лишних ключей (так как в 99% это опечатка).
Где я говорил про автоматический коммит? Атвор вопроса пишет, что они заливают бекапы сайтов в SVN вместе с дампом БД (первый раз слышу про бекап в SVN, ну да ладно). Я предложил вместо изобретения новых файловых систем автоматизировать эту работу, прописав все нужные действия в скрипте. Это не автоматический, а как раз самый на то что ни есть ручной коммит.
Описание коммита может как вводить программист, так и генерироваться из времени и названия сайта.
Terion, так самое печальное, что когда вы захотите применить нормальный ООП-подход, ввести типы данных-валидаторы-мапперы-отношения-адаптеры БД-модельки-репозитории-Query Builders-метаданные, у вас скорее всего, выйдет тоже что-то монструозное. А поскольку PHP имеет привычку перезапускаться на каждом запросе, вам придется возиться со всякими кешами метаданных (например, чтобы не парсить XML-конфиг на каждом запросе), в общем, устанете.
По моим наблюдениям, запросы к базе данных (если их не писал начинающий разработчик, не слышавший слова «индекс»), как раз занимают меньше времени, чем пережевыванием ORM'ом всяких хитрых абстракций. Тут никакое кеширование не поможет, язык менять надо — или отказываться от любых сложных конструкций.
Наверно, я непонятно написал, если вы не так меня поняли. Я же нигде не писал про нулевой чанк.
Полез, кстати, в упомянутый вами RFC проверить, зачем нужен этот chunk encoding, и понял, что авторы RFC тоже толком не знают:
> This allows dynamically produced content to be transferred along with the information necessary for the recipient to verify that it has received the full message.
Из ваших 3 вариантов, я бы выбрал кеширование в модели — ибо в этом случае мы создаем кеш только в 1 месте, а не в нескольких (если один и тот же запрос делается из разных контроллеров).