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:

EDIT: Марио Пешев е пописал малко за CodeIgniter тук, нещо което съветвам да прочетете :)


    Дискусия

    1. Comment Arrow

      Ами то и аз мислех да ползвам готов, но в един момент се оказа че от стари проекти имам достатъчно код за направата на фирмен Framework и от около 9 – 10 месеца го ползвам и до сега не съм имал проблеми с него. Иначе ако трябваше да избириам щях да взема Zend и да направя малко helper-и.

      ОтговорОтговор

    2. admin 17 юни 2009

      Comment Arrow

      И аз бях дълго време така, но в крайна сметка реших да си вдигна ръцете от поддръжката на нашето животно. Малко излишно ми идва, при положение, че има фреймуорци, които са добре поддържани, работещи и предлагащи много опции, които са лесни за използване. Но и най-важното – развиват се ежедневно, нещо, което ако аз трябваше да го правя, щеше 1/3 от времето ми да отива само за това.
      Но в крайна сметка не е лоша алтернатива да напишеш собствена рамка и е доста често срещана практика.

      ОтговорОтговор

    3. Кирил 17 юни 2009

      Comment Arrow

      Аз ползвам CakePHP и съм много доволен. Става за всякакви проекти и не е много сложен. Препоръчвам го на всички!!!

      ОтговорОтговор

    4. admin 17 юни 2009

      Comment Arrow

      В интерес на истината CakePHP и CodeIgniter са от най-лесните и бързите за научаване. Едва ли биха затруднили някого. Особено добра е документацията на CodeIgniter, а и във форума ще се намери кой да ви отговори ако имате въпроси. Аз ползвам него и съм доволен, макар и от скоро. Зарибих и Марио Пешев, като неговите отзиви също са много добри. За 95% от проектите ми върши префектно работата :)

      ОтговорОтговор

    5. Антон Радев 17 юни 2009

      Comment Arrow

      За нашия framework няма да му е времето сега, защото само това ни остава да правим.
      CodeIgniter-а вече го наизусти така или иначе и върши перфектна работа.
      Преди не ме радваше тази идея за фреймуорк използването.. но сега е ясно вече..
      като искаш продуктивност и скорост, си трябва.

      За начинаещите, както каза наскоро колегата обаче, ако започват с фреймуорци, да си отписват от идеята, че ще научат програмния език.

      ОтговорОтговор

    6. Comment Arrow

      Това с претоварването ми е много познат проблем. Затова реших това лято да минвам на Rails, защото това което е лошото че PHP фреймовете са много назад от Rails, Django.

      ОтговорОтговор

    7. admin 17 юни 2009

      Comment Arrow

      О това е със сигурност! Който започне директно с фрамеворк изобщо да не си прави илюзиите, че ще научи нещо от същността на езика. Просто ще знаете как да работите с някакви функции, които нито знаете какво точно правят, нито как действат нито нищо – в крайна сметка ще сте като аз пред Зенда на колегите – гледащ като теле. Трябва да се мине както му е реда xhtml -> plain php -> php framework иначе просто не става…

      ОтговорОтговор

    8. admin 17 юни 2009

      Comment Arrow

      @Радослав – и аз имам желанието да видя дали RoR няма да ми върши случайно по-добра работа от PHP-то за по-малките проекти, защото предполагам, ще се окаже точно така. А и дето се вика малко разнообразие. Но за по-големичките проекти, едва ли бих залагал на него. С Django не съм се сблъсквал още, защото не съм Python фен, но може и това да се опита след известен период от време.

      ОтговорОтговор

    9. Марио Пешев 17 юни 2009

      Comment Arrow

      @Радослав, колко време си ползвал Django, за да твърдиш, че е по-добър от PHP фреймуърците? Не го казвам офанзивно, но съм имал вземане-даване с него и добро не съм видял. Имахме малък проект за обработка на изображения в уеб с PIL (Python Image Library) и оттогава Django заема втора позиция след Joomla за неща, които не искам да пипам повече.
      За RoR се информирам периодично, като рубито ми е съвсем любителско, но директно смятам, че е прекалено прехвалено. Положително настроен съм към него, но чак пък в пъти по-добро от другите ‘рамки’… не мисля.

      ОтговорОтговор

    10. admin 17 юни 2009

      Comment Arrow

      и оттогава Django заема втора позиция след Joomla за неща, които не искам да пипам повече.

      Отказа ме отвсякъде :D

      ОтговорОтговор

    11. Comment Arrow

      За Django немога да взема много обективно мнение, защото нямам много опит с него, да си призная. Впечатленията са ми главно от няколко познати който го ползват интензивно и са много доволни.

      То всичко е въпрос на вкус и на това кое ти върши работа в крайна сметка – голо php, облечено php или нещо друго.

      ОтговорОтговор

    12. Антон Радев 17 юни 2009

      Comment Arrow

      Наздраве и да са живи и здрави хубавите милфки!

      ОтговорОтговор

    13. admin 17 юни 2009

      Comment Arrow

      Аз на голото PHP колкото съм фен, толкова и отрицателно мнение имам. Но в общи линии си прав – кой каквото харесва, това си и избира. За какво върши работа, в днешно време май всичко върши работа за всичко, обаче колко време отнема и как се поддържа вече е друг въпрос :)

      ОтговорОтговор

    14. admin 17 юни 2009

      Comment Arrow

      Наздраве и да са живи и здрави хубавите милфки!

      ахахаххахахахаха, дам…. няма спор тука вече, не е като с RoR и PHP ;–))

      ОтговорОтговор

    15. Антон Радев 17 юни 2009

      Comment Arrow

      не бе пичове няма проблем
      ако искате може да сравним голите милфки с голите прогарамни езици (много голота стана днес)

      (18)

      :)

      ОтговорОтговор

    16. Марио Пешев 17 юни 2009

      Comment Arrow

      @Радослав, и аз имам двама познати, които започнаха активна Django разработка (във фирмите си), но внезапно мигрираха на PHP и Ruby :)

      ОтговорОтговор

    17. Comment Arrow

      Аз ще коментирам после по-широко, но сега само дасе оплача, че Зенд-а все повече се отдалечава от това, които го правeшe привлекателен ;) Не обичам да ме замерват с „добри практики“, ако това се прилага кофти за PHP и от това всичко върви по-тежко и бавно.

      ОтговорОтговор

    18. admin 18 юни 2009

      Comment Arrow

      Аз съм фен на минимализма както вече споменах в някой блогпостове. Зенд ми идва прекалено много в интерес на истината. Предпочиам нещо по-опростено, пък било то и с не чак такива големи възможности. Но ако визирам точно CodeIgniter, не смятам, че има нещо, което да му липсва. А даже и да му липсва някой вече го е написал и го е добавил в библиотеката. Много го хваля тоя фреймуорк, но заслужено.

      ОтговорОтговор

    Публикувай коментар (dofollow)

    • Author Avatar

      ТИ :)