PHP Frameworks – кога и къде да ги ползваме
Не отдавна съм се посветил на публични frameworks за php. Какво да ви кажа, доволен съм – спестяват много писане, кодът ми може да се редактира от всеки запознат с framework-а, като няма нужда да изучава чак толкова много в детайли архитектурата му. Има си страшно много предимства, но е важно човек да знае за кой проект какъв framework да използва.
Съвсем прясна рана ми е положението в което бях изпаднал. Поемаме чужд проект, който е писан на Zend, който е изключително мощен framework за php, но колкото мощен – толкова и много неща има в него, които специално за този проект са повече от излишни. Става въпрос за нормален уеб сайт, съдържащ няколко iframes, динамични менюта и доста FCKEditor. Нещо, което колегите използващи Zend, които са го писали за 4 месеца да не се обиждат, ама на CodeIgniter ще го напиша за 1 ден точно, а и не само. Архитектурата им е такава, сега ако напиша ТОЛКОВА НЕКАДЪРНА, сигурно пак ще ги обидя, ама… не искам да си кривя душата. За да оправя една малка грешчица, барам 4 файла. И защо? View-тата им са повече от… м… нетипични. Колеги, Smarty не е за гледане, а за използване. В лейаута има повече SQL от колкото има в моделите. Да трием направо Model папката и да се абстрахираме от нея най-добре, щото и без това не ни трябва, какво само да заема пространство. За дупките в сигурността няма да говоря, ама на сайта всичките конфигурационни-файлове.xml са достъпни от целия свят, не знам как даже гугъл не ги е индексирал, ама и това ще стане, както започнахме да правим линк билдинг на проекта. Не ми е такава болка, че трябва да отделя няколко дена за навлизане в Zend, болка ми е, че проекта пак е написан некадърно. Тоест макар и използван framework, нещата пак не са както трябва. Имайте на предвид, че ако си мажете както ви падне, ползата от framework-а ще е точно нулева, защото хората пак ще се чудят какво да гледат, какво да барат и прочее. Благодарение на Калоян успях да се справя с част от проблемите, (за което му благодаря страшно много – обещавам, че ще почерпя при първа възможност), които бяха в проекта и то се чувствах като пълен идиот, като му зададох няколко въпроса, които бяха все едно за пръв път се докосвам до PHP, но уви, в такова положение бях поставен и след 3 часа гледане на сорсве бях решен да пренаписвам целия сайт…
Имайте на предвид, че има различни „рамки” т.е. frameworks и се използват за различни цели. Не си мислете, че е най-добре да научите най-мощния и най-хваления (за Zend говоря, да) и после ще ви е най-лесно да правите всички проекти на него. То може, ама не виждам какво точно се печели от това нещо. 5 статични страници и едно динамично меню на Zend, това е като да убиете Зерголина с Батълкрузър – малко… излишно. И като се има на предвид, че 80-90 процента от проектите, които идват в България (поне при нас) са на средно ниво по-добре да понаучите и някой по-елементарни фреймуорци, които ще вършат същата работа, ама по-бързо и ще са по-лесни за поддръжка. И отново казвам, това че ползвате framework не означава, че кода ви е семантичен и го използвате както трябва.
В заключение искам да кажа, че използването на PHP frameworks в днешно време изглежда като нещо повече от задължително. Но е важно да изберете правилния framework за конкретния проект. Важно е да пишете кода както трябва, а не както ви падне. Важно е проекта да може да се поддържа и то не само от вас, ами от всеки един PHP програмист със средни знания.
Някой от основните PHP frameworks:
- CodeIgniter
- Zend PHP Framework
- Symfony
- CakePHP
- PHPDEVShell – Начинаещите да погледнат тук
- Yii
- Prado
- Akelos
- ZooP
- QPHP
EDIT: Марио Пешев е пописал малко за CodeIgniter тук, нещо което съветвам да прочетете






Радослав Станков 17 юни 2009
Ами то и аз мислех да ползвам готов, но в един момент се оказа че от стари проекти имам достатъчно код за направата на фирмен Framework и от около 9 – 10 месеца го ползвам и до сега не съм имал проблеми с него. Иначе ако трябваше да избириам щях да взема Zend и да направя малко helper-и.
admin 17 юни 2009
И аз бях дълго време така, но в крайна сметка реших да си вдигна ръцете от поддръжката на нашето животно. Малко излишно ми идва, при положение, че има фреймуорци, които са добре поддържани, работещи и предлагащи много опции, които са лесни за използване. Но и най-важното – развиват се ежедневно, нещо, което ако аз трябваше да го правя, щеше 1/3 от времето ми да отива само за това.
Но в крайна сметка не е лоша алтернатива да напишеш собствена рамка и е доста често срещана практика.
Кирил 17 юни 2009
Аз ползвам CakePHP и съм много доволен. Става за всякакви проекти и не е много сложен. Препоръчвам го на всички!!!
admin 17 юни 2009
В интерес на истината CakePHP и CodeIgniter са от най-лесните и бързите за научаване. Едва ли биха затруднили някого. Особено добра е документацията на CodeIgniter, а и във форума ще се намери кой да ви отговори ако имате въпроси. Аз ползвам него и съм доволен, макар и от скоро. Зарибих и Марио Пешев, като неговите отзиви също са много добри. За 95% от проектите ми върши префектно работата
Антон Радев 17 юни 2009
За нашия framework няма да му е времето сега, защото само това ни остава да правим.
CodeIgniter-а вече го наизусти така или иначе и върши перфектна работа.
Преди не ме радваше тази идея за фреймуорк използването.. но сега е ясно вече..
като искаш продуктивност и скорост, си трябва.
За начинаещите, както каза наскоро колегата обаче, ако започват с фреймуорци, да си отписват от идеята, че ще научат програмния език.
Радослав Станков 17 юни 2009
Това с претоварването ми е много познат проблем. Затова реших това лято да минвам на Rails, защото това което е лошото че PHP фреймовете са много назад от Rails, Django.
admin 17 юни 2009
О това е със сигурност! Който започне директно с фрамеворк изобщо да не си прави илюзиите, че ще научи нещо от същността на езика. Просто ще знаете как да работите с някакви функции, които нито знаете какво точно правят, нито как действат нито нищо – в крайна сметка ще сте като аз пред Зенда на колегите – гледащ като теле. Трябва да се мине както му е реда xhtml -> plain php -> php framework иначе просто не става…
admin 17 юни 2009
@Радослав – и аз имам желанието да видя дали RoR няма да ми върши случайно по-добра работа от PHP-то за по-малките проекти, защото предполагам, ще се окаже точно така. А и дето се вика малко разнообразие. Но за по-големичките проекти, едва ли бих залагал на него. С Django не съм се сблъсквал още, защото не съм Python фен, но може и това да се опита след известен период от време.
Марио Пешев 17 юни 2009
@Радослав, колко време си ползвал Django, за да твърдиш, че е по-добър от PHP фреймуърците? Не го казвам офанзивно, но съм имал вземане-даване с него и добро не съм видял. Имахме малък проект за обработка на изображения в уеб с PIL (Python Image Library) и оттогава Django заема втора позиция след Joomla за неща, които не искам да пипам повече.
За RoR се информирам периодично, като рубито ми е съвсем любителско, но директно смятам, че е прекалено прехвалено. Положително настроен съм към него, но чак пък в пъти по-добро от другите ‘рамки’… не мисля.
admin 17 юни 2009
Отказа ме отвсякъде
Радослав Станков 17 юни 2009
За Django немога да взема много обективно мнение, защото нямам много опит с него, да си призная. Впечатленията са ми главно от няколко познати който го ползват интензивно и са много доволни.
То всичко е въпрос на вкус и на това кое ти върши работа в крайна сметка – голо php, облечено php или нещо друго.
Антон Радев 17 юни 2009
Наздраве и да са живи и здрави хубавите милфки!
admin 17 юни 2009
Аз на голото PHP колкото съм фен, толкова и отрицателно мнение имам. Но в общи линии си прав – кой каквото харесва, това си и избира. За какво върши работа, в днешно време май всичко върши работа за всичко, обаче колко време отнема и как се поддържа вече е друг въпрос
admin 17 юни 2009
ахахаххахахахаха, дам…. няма спор тука вече, не е като с RoR и PHP ;–))
Антон Радев 17 юни 2009
не бе пичове няма проблем
ако искате може да сравним голите милфки с голите прогарамни езици (много голота стана днес)
(18)
Марио Пешев 17 юни 2009
@Радослав, и аз имам двама познати, които започнаха активна Django разработка (във фирмите си), но внезапно мигрираха на PHP и Ruby
Калоян К. Цветков 18 юни 2009
Аз ще коментирам после по-широко, но сега само дасе оплача, че Зенд-а все повече се отдалечава от това, които го правeшe привлекателен
Не обичам да ме замерват с „добри практики“, ако това се прилага кофти за PHP и от това всичко върви по-тежко и бавно.
admin 18 юни 2009
Аз съм фен на минимализма както вече споменах в някой блогпостове. Зенд ми идва прекалено много в интерес на истината. Предпочиам нещо по-опростено, пък било то и с не чак такива големи възможности. Но ако визирам точно CodeIgniter, не смятам, че има нещо, което да му липсва. А даже и да му липсва някой вече го е написал и го е добавил в библиотеката. Много го хваля тоя фреймуорк, но заслужено.
Публикувай коментар (dofollow)
ТИ :)