CodeIgniter vs Zend Framework
Ето нещо интереÑно за вÑички „отворени програмиÑти“, занимаващи Ñе Ñ ÑƒÐµÐ±. Това е едно детайлно Ñравнение между две от най-популÑрните платформи (аджеба как е фреймуърк на българÑки) – CodeIgniter и Zend Framework. Като цÑло ÑподелÑм впечетлениÑта на автора, и донÑкъде изводите. Ðз Ñъщо ÑмÑтам, че Ñъм приÑтраÑтен, но пък това не пречи да Ñъм критичен ;) Това, че Ñтарта Ñ CodeIgniter е по-леÑен буди леко Ñъмнение в мен, Ñлед като автора признава че му е фен и го използва активно – преценката му за това дали е леÑно да Ñе работи Ñ Ñ‚Ð°Ð·Ð¸ платформа може би е изкривен. Както и да е – прочетете материала:
Много ми хареÑа коментара на Уил Синклер, който е Ñ‚ÐµÐºÑƒÑ‰Ð¸Ñ Ñ€ÑŠÐºÐ¾Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ» на Zend Framework проекта. Супер е да видиш нÑкой да Ð¾Ñ‚Ð´ÐµÐ»Ñ Ñ‚Ð¾Ð»ÐºÐ¾Ð²Ð° детайлно внимание на информациÑта, коÑто Ñе публикува за работата им. Въпреки че имам лоши Ð²Ð¿ÐµÑ‡ÐµÑ‚Ð»ÐµÐ½Ð¸Ñ Ð·Ð° поÑледните нÑколко „етапа“ от развитието на проекта (за което ще пиша друг път), ÑтатиÑта като цÑло много добре ÑƒÐ»Ð°Ð²Ñ Ñилните Ñтрани на Zend Framework. С CodeIgniter проÑто нÑмам доÑтатъчно опит.
ÐаиÑтина интереÑно, до голÑма Ñтепен Ñъм ÑъглаÑен ÑÑŠÑ ÑтатиÑта. За мен Zend Framework и CodeIgniter Ñа най-добрите PHP framework-ци.
Comment by Radoslav Stankov — август 15 @ 17:06
Oi, a CakePHP 2.0 ? koito e sazden po podobie na RoR (daaa daa), super lesen za rabota, otlichen code cavarege na test casovete.
Ne sum polzval Ci no moje bi niakoi moje da spodeli ako e rabotil I s dvete
Comment by Flxr — август 15 @ 17:17
Zend Framework Ñе отклонÑват в едни поÑоки, които лично на мен не ми хареÑват. Ðе ми хареÑва, че единÑтвеното приложение (което аз Ñъм разгледал) на ZF е Magento-то, оÑтави че Ñа конкуренциÑ, ама Varien Ñа Ñко обвързани ÑÑŠÑ Zend и въпреки вÑичко кода на Magento ми е Ñко мазан. За първата Ñи година ÑъщеÑтвуване има Ñупер малко „възприемане“. И наиÑтина Ñтава тежко, дебело праÑе ;)
Comment by Kaloyan — август 15 @ 20:38
CakePHP 2.0 не е ли още бета ? Или алфа ;) Ðа този проект Ñпоред мен най-Ð³Ð¾Ð»ÐµÐ¼Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтатък беше „разкрачването“ върху PHP4 и PHP5. Ðе Ñъм Ñигурен, но и лошите бенчмаркове напоÑледък Ñпоред мен Ñе дължат на тази му „двойнÑтвена“ природа. Обаче пък CakePHP 2.0 ще е Ñамо PHP5, нали ? Така че има какво да Ñе види.
От къде мога да разгледам какво има в CakePHP 2.0 ? Ðа Ñайта намерих Ñамо 1.1 и 1.2, както и в trunk-a на svn-а:
https://svn.cakephp.org/repo/trunk/cake/
Comment by Kaloyan — август 15 @ 20:47
Значи миÑлиш че CakePhp 2.0 не е добър? И в крайна Ñметка кое е най-добро да знам къде да Ñе ориентирам.
Comment by Aggie — август 15 @ 21:49
Първо, не Ñе опитвам да казвам кое е добро и кое не е. Второ, като го Ð²Ð¸Ð´Ñ Ñ‚Ð¾Ð·Ð¸ CakePhp 2.0, тогава ще говорÑ. Имам чуÑтвото, че Ñе получава нÑкаква разминаване – аз като Ð³Ð¾Ð²Ð¾Ñ€Ñ Ð·Ð° CakePhp 2.0, Ð³Ð¾Ð²Ð¾Ñ€Ñ Ð·Ð° проект изцÑло на PHP5. Поне така бÑÑ… чел, или май Ñлушал в нÑкой подкаÑÑ‚. От друга Ñтрана, на много меÑта виждам че на 1.2 му Ñе вика CakePhp 2, което не е много коректно. ВъпроÑното 1.2, което още не е пуÑнато като Ñтабилна верÑиÑ, ами е нÑкакъв рилийз кандидат (RC), и отново е PHP4/PHP5 ÑъвмеÑтимо. Както вече пиÑах, аз намирам това за голÑм недоÑтатък, понеже ограничената ООП функционалноÑÑ‚ на PHP4 не дава възможноÑÑ‚ да Ñе ползват вÑички плюÑове на подобрениÑта от PHP5.
Comment by Kaloyan — август 15 @ 22:06
Иначе, ако наиÑтина търÑиш „ориентациѓ, моÑÑ‚ Ñъвет е да пробваш Ñ CodeIgniter. ЛеÑно Ñе учи, Ñъщо е PHP4/PHP5 ÑъвмеÑтим, така че ще можиш да Ñи качваш нещата почти на вÑеки хоÑтинг, има добра документациÑ, много примери, и голÑма „общноÑÑ‚“.
Comment by Kaloyan — август 15 @ 22:26
БлагодарÑ!Ще го пробвам.
Comment by Aggie — август 16 @ 09:46
Работил Ñъм Ñ ZF, виждал Ñъм код на CodeIgniter. ÐаиÑтина, CI изглеждаше Ñравнително леÑен, докато ZF за мен е по Ñериозен фреймуърк. Ðо от година използвам symfony и ZF не може да му Ñе опре по функционалноÑÑ‚, доÑта време Ñе ÑпеÑÑ‚Ñва
Comment by Manol Trendafilov — август 16 @ 11:49
Хм, Symfony обаче наиÑтина е Ñ Ð¿Ð¾-Ñтръмна „крива на обучението“, нали ? Много повече време и ÐµÐ½ÐµÑ€Ð³Ð¸Ñ Ñ‚Ñ€ÑÐ±Ð²Ñ Ð´Ð° Ñе хвърли, за да започнеш работа Ñ Ð½ÐµÑ. От друга Ñтрана, ти не Ñи първиÑÑ‚, който Ñ Ñ…Ð²Ð°Ð»Ð¸, а и това, че Yahoo Ñа Ñ Ð¸Ð·Ð±Ñ€Ð°Ð»Ð¸, за да Ñи правÑÑ‚ новите Ñайтове Ñ Ð½ÐµÑ (за Ñега Ñа май Ñамо Yahoo Bookmarks и Delicious) говори много за качеÑтвата и.
Comment by Kaloyan — август 16 @ 14:59
CodeIgniter…това, лично на мен не ми допада.
Имах практичеÑки опит Ñ Ñ‚Ð¾Ð·Ð¸ фреймуърк, защото преди около година Ñе наложи да Ñе прави един CMS (доÑта опроÑтен) и да работи на PHP4. УмрÑÑ… Ñи Ñ CI, а уж поддържаха php4. Като креаен резултат, толкова много код преправих (куп грешки при E_ALL), deadlines дойдоха, отминаха и Ð½Ð°ÐºÑ€Ð°Ñ Ñ‚Ñ€Ñбваше да изрева за PHP5 хоÑтинг и чак тогава вече имах възможноÑтта да ползвам фреймуърк, като хората.
Като цÑло, може би проблема да е бил оÑновно под PHP4, но лично за мен Ñамата Ñтруктура, коÑто ползва CI, не ми допада. Може би Ñтава за проект Ñ 5 „почти Ñтатични“ Ñтранички, но това Ñи е нещо, което трÑбва да Ñе реши Ñпоред ÑлучаÑ/проекта.
ОтноÑно ZF, доÑта луда работа е там. С удоволÑтвие наблюдавам проекта от както Ñе поÑви официално бетата. Ð’ началото имаха доÑта неща за дооправÑне, малки проблеми като цÑло, а начина на contribution-а към проекта е малко кофти и доÑта бавно Ñтартираха. Впредвид, че Ñа Zend и community-то, което Ñе издигна в началото..бавно Ñи беше. Ðищо де, Ñега гледах Ñа пооправили това-онова.
Ð’ ZF ми хареÑва, това че вÑичко Ñи има мÑÑто. КлаÑовете, naming conventions..като цÑло, по-голÑмата чаÑÑ‚ от кода е напиÑана по оптимално (от гледна точка перформънÑ), за разлика от CI. Тук обаче, перформънÑа има цена (така да Ñе каже), докато в CI, вÑичко е нÑкак Ñи … „нахвърлÑно“ и кода им е изключително малко, то е нормално в тази ÑÑ‚Ð°Ñ‚Ð¸Ñ Ð´Ð° „бъде бърз“. Реално ако Ñе наложи да Ñе ползва при малко по-голÑмо приложение (Ñайт), то … нещата определено ще Ñе обърнат и ZF ще е по-добро решение :)
Както по-рано казах, важен е ÑамиÑÑ‚ Ñлучай/проект, а не чак толкова Framework-a.
Оф..магенто..подкрепÑм те отноÑно тази глупоÑÑ‚. Ðе миÑлÑ, че е Ñериозно един ÐµÐšÐ¾Ð¼ÑŠÑ€Ñ Ð¿Ñ€Ð¾Ð´ÑƒÐºÑ‚ да изглежда така. Кода на доÑта меÑта е мазало, Ñтруктурата на цÑлото приложение е малко неÑтандартна. МиÑлÑ, че опитът им да изпълнÑÑ‚ ÑтандартниÑÑ‚ Ð±Ð¸Ð·Ð½ÐµÑ Ð¼Ð¾Ð´ÐµÐ» при open source, чрез уÑлуги беше добър. Ðо едва дали бих прибÑгнал да ползвам Магенто, защото Ñ Ð²Ñеки изминал ден Ñе блъÑкат редица ненужни функции, а това влиÑе на перформънÑ, а пък и Ñекюрити. Както обичат да казват от 37signals, „1 нов фючър = 10 които ще поÑледват“
Ðека Ñе опитам да обобща мнението ми, CI Ñпоред мен не е Ñериозен фреймуърк, на които да може да Ñе разчита за големи проекти. ZF, благодарение на Ñтруктурата Ñи е доÑта добър избор за големи проекти, поради причината, че кода е леÑен за „четене“ (както и трÑбва), Ñтриктен, Ñтруктуриран и прочие.
Лично аз за малък проект бих избрал symfony, а за нещо по-голÑмо ZF :)
Comment by Любомир Петров — август 18 @ 09:26
ZF Ñе отклонÑва от първоначалната Ñи идеÑ. ТрÑбваше да предлага платфолма Ñ Ð»ÐµÑни Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð·Ð° най-чеÑто Ñрещаните неща, а Ñега като че ли Ñе опитва да Ñе прави на PEAR, и да пуÑкат вÑе по-екзотични и екзотични клаÑове.
Структурата на ZF и това, че вÑичко Ñи има мÑÑто – мааалко не Ñъм ÑъглаÑен. Много чеÑто Ñе Ñлучва да нÑма единен подход при имената на клаÑовете, и това е нещо, което като чета форума на Nabble, Ñе оказва го виждат и други хора. Ðко Ñи разглеждал имплементациÑта на нÑкои неща, ще видиш, че може би нÑкои Ñа направени излишно Ñложни. От друга Ñтрана, това е Ñравнително млада платформа, така че може би трÑбва да мине още малко време докато Ñе изгладÑÑ‚ ръбовете. Така или иначе, Ñега Ñ Ð¿Ñ€ÐµÐ´ÑтавÑнето на namespace-овете проекта ще трÑбва да Ñе преуÑтрои ;)
За оптималноÑÑ‚ в ZF въобще не може да говорим. Ðе знам какво точно Ñи гледал, но CI е оÑа, а ZF е праÑе. Ð’Ñички забелÑзват, че Ñ Ð²ÑÑка Ñледващата верÑиÑ, платформата Ñтава вÑе по-бавна и по-тежка, и бÑÑ… чел, че Уил Синклер Ñпециално ще обърне внимание на производителноÑтта в нÑÐºÐ¾Ñ Ð¾Ñ‚ Ñледващите (близки) верÑии.
За Магенто – не Ñи ме разбрал, или аз не те разбирам. Вътре карантиите му наиÑтина Ñа нÑкаква джунгла, но е едно от малкото приложениÑ, в които ZF Ñе използва. Един „фреймуърк“ без иÑтинÑко приложение е умрÑла работа. Иначе Магентото като продукт е Ñупер. Ðе знам за какви Ð±Ð¸Ð·Ð½ÐµÑ Ð¼Ð¾Ð´ÐµÐ»Ð¸ приказваш – Магенто Ñи е продукт, точно както OSCommerce. Само че Магенто лично на мен ми хареÑва много много повече, има много по-удобен интерфейÑ, и нÑколко иновативни Ñ€ÐµÑˆÐµÐ½Ð¸Ñ (като функционалноÑÑ‚). Ðко не Ñи чел за Source Forge 2008 Community Awards, Магенто е победител Ñ „best new project“. И какво е „фючър“ – „feature“ ли ?
Comment by Kaloyan — август 18 @ 09:48
Ðми, подред ще Ð´Ð¾Ð¾Ñ‚Ð¾Ñ‡Ð½Ñ Ð¸ май ще уÑÐ¿ÐµÑ Ð´Ð° Ñи Ð¸Ð·Ñ€Ð°Ð·Ñ Ð¼Ð¸ÑÑŠÐ»Ñ‚Ñ Ñ†ÑлоÑтно..
ЗФ е праÑе наиÑтина, но при CI не ми допада как вÑичко Ñе зарежда в 1 клаÑ, примерно:
$this->load->library(’email’);
$this->email->some_function();
Ð’ Ñлучай, че ще Ñе използва за нÑкакво проÑто Ñайтче, така или иначе таз променлива „умира“ в един момент (Ñлед dispatch-a на controllera). Обаче, ако Ñи Ñеднеш да правиш малко по-Ñложна ÑиÑтема понÑкога е по-удобно да Ñи ползваш ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð¸Ñ Ð½Ð°Ñ‡Ð¸Ð½, които ÑъщеÑтвува примерно при ZF Ñ $obj = new Class и в нÑкой момент, можеш да го ънÑетнеш/изчиÑтиш.
Ðко ти трÑбва нÑкакво „репозитори за обекти“ (ако мога така да го нареча), то при ZF Ñи имаш Registry-то.
Имам напредвид, че ZF не Ñе опитва да разширÑва езика (при CI, ако не Ñе лъжа Ñа ползвали доÑта от magic functions) и колкото и да е тази Ð³Ð»ÐµÐ·Ð¾Ñ‚Ð¸Ñ Ñ‚Ð¾Ð²Ð°Ñ€Ð¸ безмиÑлено при CI. Пак казвам, при малък проект е незабележимо, но..при голÑм може да Ñтане проблем.
..Магенто – „best new project“ незнаех, но защо пък не. Като чиÑто нов проект, доÑта бързо Ñе разви. Ðо между него и osCommerce има голÑма разлика и това е в „performance“-a. Повечето потребители на отворен код, биха предпочели да ползват Магенто, като май той Ñе оказва единÑтвената поддържана алтернатива на osCommerce. Тук Ñпоменах за фючърите, защото в него има купища неща, нÑкой хубави и удобни, но нÑкой (в определени Ñлучай) ненужни. Те товарÑÑ‚ + ZF (за един малък магазин) = доÑта изразходван перформънÑ.
Иначе това което напиÑа:
„Един “фреймуърк†без иÑтинÑко приложение е умрÑла работа.“
ÐбÑолютно Ñи прав, нищо чудно точно поради тази причина от Zend, да Ñе опитват да добавÑÑ‚ оÑновно „екзотични“ клаÑове, а от там и наиÑтина заприлича на PEAR.
Comment by Любомир Петров — август 18 @ 20:59
Това ÑÑŠÑ „Ñетването“ и „ънÑетването“ – май нÑма такъв филм. Заетта памет Ñе чиÑти от GC, и дори и да ънÑетнеш нещо, то нÑма да Ñи оÑвободи веднага паметта. Ð˜Ð·ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð°Ð²ÑÑ‚ реÑурÑите, които наиÑтина Ñе оÑвободажават на момента – като картинките и резултатите от базата данни.
За CI не знам какви magic неща има, но като Ñе има предвид PHP4 ÑъвмеÑимоÑтта, по-Ñкоро може би ползват
overload()
, въпреки, че не Ñъм гледал какво има в карантиите. Иначе пайпинга за викане на неща мене ме кефи – Ñвикнал Ñъм Ñлед дългите години работа Ñ jQuery и … Rudolf ;)Да не влизам в детайли, че пак ще Ñтане нÑкой дълъг коментар, обаче Ñ Ð½Ð¸Ñ‰Ð¾ не Ñъм ÑъглаÑен от коментарите за Магенто ;) Определено не е инÑтрумент за „малки магазинчета“. ÐšÐ¾Ñ Ð¾Ñ‚ функционалÑноÑтите и възможноÑтите вътри ти Ñе Ñтрува излишна ?
Comment by Kaloyan — август 18 @ 22:05
Гледам, че тука май Ñте Ñпецове… Да питам – Ñлучайно нÑкой да има Ð¸Ð´ÐµÑ Ð½Ð° host.bg как Ñе инÑталира Магенто? Борба неземна, Ñамо Ñ‚Ð¾Ñ€Ð¼Ð¾Ð·Ñ Ñъпорта, въобще…
Comment by me — ноември 9 @ 15:18
Какъв точно е проблема ? Ðали не Ñе опитвате да го инÑталирате на PHP4, защото нÑма да Ñтане – трÑбва PHP5.
Comment by Kaloyan — ноември 10 @ 00:19
Сложил Ñъм php 5 и модулите Ñа инÑталирани…
Ð’Ñичко е наред по изиÑкваниÑ:
http://shop.pm-co.net/magento-check.php
И резултата http://shop.pm-co.net/ – мъка!
ПуÑнах и питане в МагентокомерÑ:
http://www.magentocommerce.com/boards/viewthread/22658
ÐÑдавам Ñе да уÑпее нÑкой да ми помогне :(
Comment by me — ноември 11 @ 00:22
Има вÑичко – PHP5, модули… shop.pm-co.net/magento-check.php
-> shop.pm-co.net – Мъка!
ПуÑнах и питане http://www.magentocommerce.com/boards/viewthread/22658/
ÐÑкакви идеи? От ХоÑÑ‚.бг казаха, че не знаÑÑ‚ нÑкой при Ñ‚ÑÑ… да го ползва Магентото. ЧеÑтно казано Ñлед 4 дена борба – вÑрвам им…
Comment by me — ноември 11 @ 00:25
и вече Ñа ти и отговорили…
http://www.magentohub.com/68/fix-run-into-500-internal-server-error-problem/
Comment by peter — ноември 12 @ 12:42
Хех, браво ;) Сега вÑичко ОК ли е ?
Comment by Kaloyan — ноември 12 @ 13:18
Сега ще пробвам чиÑта инÑталациÑ, че от толко екперименти… Ðо ТÐМ където Ñа дали отговора ми говорÑÑ‚ за 755 права, а хоÑÑ‚.бг изиÑква 755 при SafeMode Off, тъй че еÑтеÑтвено Ñъм го направил. Това ще бъде навÑрно поÑледен опит… Ð, да, да Ñпомена – ерор лог-а на хоÑÑ‚.бг Ñпоред предоÑтавеното ми изобщо не показва Ñъдържанието на грешката 500 Internal Server Error. Егато лога, а? Общо взето май ги метнах в коÑмоÑа, и май ще ÑменÑм хоÑтинга. Да не говорим, че поÑледното което ми казаха е, че Ñе зарежда http://shop.pm-co.net/index.php/install/ , а нÑмало такава папка – е това Ñи е инÑталациÑта, даже питах Ñпециално… УжаÑ. И най-поÑледното ще бъде да ги Ð¿Ð¾Ð¼Ð¾Ð»Ñ Ð´Ð° направÑÑ‚ chown -R username:username * каквото и да е това :D
Comment by me — ноември 12 @ 21:02
ПроÑто за Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° хаората тук, тъй като ви надух главите :)
И така не Ñтана – официално Ñе отказвам. Ще Ñи взема хоÑтинг в UK или USA Ñ Ð¾Ñ„Ð¸Ñ†Ð¸Ð°Ð»ÐµÐ½ Магенто Ñъпорт и край Ñ Ð¼ÑŠÐºÐ¸Ñ‚Ðµ. Ðемам нерви повече :)
Comment by me — ноември 13 @ 15:39
[…] да гледат, какво да барат и прочее. Благодарение на КалоÑн уÑпÑÑ… да Ñе ÑÐ¿Ñ€Ð°Ð²Ñ Ñ Ñ‡Ð°ÑÑ‚ от проблемите, за което му […]
Pingback by PHP Frameworks – кога и къде да ги ползваме — юни 17 @ 19:08