Разочарование от Yii, блог Tarlyun

Разочарованието в Yii

Обикновено не обичам да пиша минипостове или да споделям мислите си, но днес е моментът за такъв първи пост.

Както подсказва името, бях разочарован от рамкатаYii, но отначало.

Някой може да си помисли, че изходните данни са прости и от същия тип, тъй като сайтът поддържа такова натоварване. И той ще сгреши. Общият размер на MySQL таблиците е 1,3 гигабайта. Една от основните таблици, на която се извършват повече от 60% от всички търсения, съдържа 800 000 записа (и 25 полета). За потребителите на сайта има форма за търсене, която ви позволява да избирате данни според 10 критерия, което в крайна сметка води до сложни SQL заявки.

Тъй като хостингът е доста прост и евтин,MemCache не може да става и дума.

Сайтът работи наCodeIgniter v1.7.2, като използва библиотекатаMPCache за кеширане на резултатите от заявката във файлове. Леката рамка и оптимизацията на кода дадоха толкова добър резултат.

И така, преди шест месеца имаше нужда от пренаписване на текущия двигател с добавяне на типични функции (регистрация, блог, гласуване и т.н.).CodeIgniter 2.0 ми се стори скучен (в края на краищата през последните 2 години той не се е променил много, не е придобил функционалност, изглеждаше като полутруп и много активни разработчици пропълзяха в лагера наKohanaFuelPHP ) и започнах да гледам към други рамки. Харесвах много функции в Kohana, но лошата документация и постоянните проблеми с пускането на нови версии ме отблъснаха от по-нататъшни разкопки. FuelPHP е вкусен, бърз, но PHP5.3 в минималните изисквания е голям минус.

Yii — Видях го преди много време. Хареса ми. Привлече със своите функции, куп разширения, активна общност. Изтеглено. Преминах през всички етапи на създаването на блог. Стартиран.Потреблениепамет - 10Mb (и на пика - почти 14Mb!). Празен проект, почти без код, с няколко записа в базата данни. Проект, който беше направен на коляно за една вечер - и 10Mb. Мога да кажа, че горният проект на lgnd.ru отнема само 0,9-1,5 MB памет в зависимост от страницата и чрез експериментиране с пълното изключване на конструктора на заявки беше възможно да се намали консумацията до 0,6-1 MB.

10 MB са излишни. Изключен AR, пренаписани модели за директни заявки - 4.5Mb. Все още много. Катерих се във форума. Пишат за кеширане, за оптимизация и т.н. Но тук има 2 проблема - евтиният хостинг няма големи ресурси и инструменти за кеширане. В резултат на това ще трябва да преминете към по-скъпи решения с повече или по-малко сериозни онлайн.

На сайтове с много голям трафик не можете да кеширате всичко и всичко - все пак ще има достъпи извън кеша с изяждане на всички сървърни ресурси. Все пак в резултат на това ще е необходим по-мощен сървър.

Моето мнение: рамката трябва да бъде добър инструмент в ръцете на разработчика, а не десеттонна бандура за забиване на пирон в стената.

PS. Не искам да холиварствам коя рамка е по-добра/по-лоша. Но голямото потребление на памет е минус наYii. Аз съм за оптимизацията!