-7
Declined

смена фреймворка

Илья Муравьёв 12 years ago updated by info (руководитель проекта) 12 years ago 6
Планируется ли смена фреймворка у CMS ,
CI не сильно похож на фреймворк, хоть на нем и делают сайты, планируется ли использовать что-то более современное в основе. То есть типа FuelPHP / Symphony2 / Zend / Yii и тд, без артефактов в коде типа @mysql_num_rows 
Мы об этом думали и даже поднимали вопрос на Хабре. В итоге - как бы то ни было,  CI продолжает оставаться самым популярным фремворком за счет своей простоты и доступности. Поэтому менять фреймворк не собираемся.
Про Хабр это как про миллион леммингов которые могут ошибаться.
CI хоть и популярен , но увы похож на говнокод.


+2
Смена фремворка - это грубо - переписать полностью всю систему, выпустить несовместимую версию. То-есть очень серьезный шаг, для которого должны быть весомые основания в сторону другого фреймворка.
Ну а на заметку, какой фреймворк предлагаете? Чем лучше?
Возьмем что-то из простых


YII

ну про YII понятно современный быстрый с хорошей документацией и большим мировым сообществом. С хорошей архитектурой. Но средним порогом вхождения


Zend/Zend2

Тут уже понятно высокий уровень вхождения, немного громоздкий и тяжелый, использовать можно , но не нужно


Kohana

Хотя тут вопрос сложный, но миграция должна пройти более безболезненно, так как кохана по сути это форк CI

Из Плюсов возьмем то что они отказались от поддержки старых версий PHP , сохранив все остальное, так же не малое сообщество , со слегка отстающий от актуальности документацией


FuelPHP

Новичек на рынке, но он довольнатаки тоже прост, из плюсов такая же модульность, неймспейсы, можно легко разделить приложение так и модуль на слои
Из минусов можно сказать пока еще набираемая аудитория, по сложности вхождения во фреймворк очень низок, уже готовое ORM из коробки, миграции, которые можно будет легко использовать для апдейта модулей или его установки


Из перечисленного я бы остановился YII, Kohana или FuelPHP , где последняя пара более менее подойдет под текущую архитектуру и будет более менее простая миграция.
Остальное дело останется за вами. Конечно можно упомянуть и Symphony но тут уже дело пойдет о сложности кода, и миграции в целом. Хотя модульность так же на высоте.

Выбор за вами.

PS перечитал пост на хабре тот, плюсы и минусы очевидны, но самый главный минус по моему мнению в CI то что он начинает устаревать и малые апдейты, на двор приходит 5.4 версия, хоть провайдеры не торопятся её устанавливать, но возьмем 5.3 версию и сравним с 5.2 , те же замыкания или простанство имен, все нормальные хорошие хостинги давто уже поддерживают 5.3 

На счет поддержания 2ух веток продукта, а вы посмотрите на тот же PHP , 5.4 актуальная её дорабатывают, 5.3 только исправление ошибок.

Так же и тут, текущая ветка будет с новым фреймворком, с доками, старая будет только для исправления ошибок, присланных от пользователей.
Конечно решать вам, но вы не представляете как я плевался пытаясь написать модуль, он поддается, но толком выходит что это по большей части говнокод который то и отрефакторить будет сложно, по принципу работает - не трож.
Ну в таком случае.

При написании модуля столкнулся с палками в колёсах.

Кривая загрузка моделей, нарушения SOLID, Open/Closed и SPOT в коде.

Например Controller общается с бд, пример создание страниц в админке, 

Хотя бы сделать поддержку namespace в коде, тогда автозагрузка классов модуля будет куда проще. В коде контроллера вызвав Module\Model\EntryCollection и не нужно всякие This->load(бла бла бла)

Убрать в коде @ , например CI_DB_mysql_driver 

Что это такое @mysql_connect , @mysql_pconnect, @mysql_select_db 

Как можно тут отловить ошибку?

Я думаю подобных артефактов уже навалом в коде, и это очень не красивый шаг, скорее это становиться похожим на кислую конфету в аппетитной обложке.

Притом почему бы и не сделать?

Вы работаете на 3 веткой, парралельно делать 4alfa , мажорная как раз и подразумевает что некоторые веши могут не работать, что придется доработать. Но эффект может быть куда лучше,а если у CMS будет хорошее API, то для миграции существующего кода уйдет куда меньше времени.