=) Когда-то давно, я тоже поьлзовал Smarty… но потом перешел на нативную. Сейчас уже не прогаю на пэхапэ. Но как воспоминания…
Интересно а есть какая-нибудь реализация на подобии haml slim?
Плохо.
1. В загрузчике классов нет проверки на существование файла. Зато есть жесткая привязка к правилам именования (вместо использования пространств имен) для определения типа класса.
2. config.php включается несколько (много) раз. Зачем?
3. Маршрутизация прямо в точке входа. Свои маршруты определить нельзя — все только через mod_rewrite — спорное решение.
4. В методе redirect нет проверки на headers_sent
5. Буферизации вывода нет
6. CDBConnection — «Одиночка». Подходит только для очень простых проектов. К тому же жестко прописана mysql.
7. CModel — копипаст методов из CDBConnection. Хотя можно было просто вызывать через __call.
Про одиночку уже много сломано копий на Хабре. Главное: нерасширяемый (в рамках PHP 5.2), нетестируемый. Могут быть проблемы при конкурентном доступе, так как это фактически глобальный объект.
Могут быть, если есть возможность записи. Если же оодиночка используется как адаптер/прокси, то именно этой проблемы не будет. Если у него нет возможности установить адаптер через setter, то нормально, в противном случае — это дыра.
Вот тоже интересно, как по мне условия гонок можно в любой ситуации работы с ограниченными ресурсами воспроизвести. И именно паттерн тут особо роли не играет. Я не прав?
Плохо тем, что в несложном проекте мне встретилась необходимость подключиться к другой базе данных (брать оттуда данные по авторизации).
Кроме того, некоторые программисты предпочитают, чтобы один пользователь mysql работал только с правами на чтение, а другой — только на запись/удаление.
Вообще, все не предвидишь.
Очень заметно влияние Yii на автора. А если по делу, то Yii можно сжать до 200-500кб (убрать комментарии, i18n, скрипты, консольное приложение, тесты, html purifier, лишние обёртки для разныб баз и wii).
Эту тему много раз обсуждали. Намного дешевле хранить лишние 10мб, чем вырезать то, что я указал.
Забавно, yii видел очень давно, когда еще 1 версия была, причем мельком. Скорее должно быть заметно влияние ci.
Опять же, вы отошли от темы, движок писался исходя из ограничения на версию php.
Не отрицаю, есть много разных разработок, что видел мне показалось не удобным.
Гибче не значит удобней.
В моем случае было проще наследование от CBaseObject, зачем мне делать дублирование методов?
«Архитектурная красота» не идентично «Эффективность решения».
> Периодически встает задача написать какой-либо небольшой функционал, использовать для этого большие framework типа Zend/Yii/CI/Kohana и прочее либо не хочется, либо нет возможности.
Я поехал сегодня на метро потому что мой бентли такой большой, бензина много жрет, на дорогах пробки…
На самом деле нет у меня бентли и машины — нет. Просто у вас нет достаточно опыта в выше описаных фреймворках чтоб их бысто развернуть и настроить под себя. Я это так понимаю.
Просто не люблю аргументы «типа этот фреймворк такой большой, давайте напишем тоже самое но свое». Можно подумать их его наизусть учить заставляют. В наше время лишние 20мб на жестком диске ничего не решают.
> установить выше перечисленные framework не было возможности
Ого! А это как? Хостер рубил файлы по знакомым именам? :) Раздел «актуальность» не убедил. Уж написали бы просто, что хотелось что-то свое свелосипедить…
Странная у вас ситуация. На моем хостинге уже 5.4 развернут.
5.1 даже просто по соображениям безопасности уже не стоит использовать. С тех времен в php исправили много довольно критичных уязвимостей.
Пишем свой php framework за вечер