Предмиствата на CakePHP или защо се влюбих в него

12 октомври 2009

cakephp

В последните три дена си играх и направих един клиентски проект на CakePHP. Останах с адски добри впечатления от framework-a. Всъщност има много повече предимства от колкото ще ви се стори на пръв поглед. Недостатъци почти не се намират, особено ако имате опит с други frameworks ще е убедите, че е доста по-добре замислен и реализиран от останалите. Ето и моето ревю на CakePHP Framework.

Документацията

Много е слаба наистина. Дори и на пръв поглед да ви се стори много добра, всъщност основни примери и разяснения липсват. Добрата новина е, че всичко, което ви трябва може да бъде открито в Google, защото обществото на CakePHP е доста будно. Естествено цялата нужда информация я няма синтезирана на едно място и е малко неудобно, но какво пък, не е болка за умиране. Естествено това би отказало хората, които не им се занимава чак толкова. Имено заради това CodeIgniter печели ежедневно много потребители, защото документацията е перфектна и за да започнете ви трябва много малко. Но способностите на CI са далеч под тези на CakePHP.

ORM и валидация

Повече от перфектни са и двете. Основната разлика при това с CodeIgniter, е че валидацията се налага в модела и няма нужда да я пишете всеки път. Което е бомба. Има доста „вградени” методи по които можете да валидирате, които включват дали записът е уникален, дали е валиден e-mail и така нататък. Доста по-идейно решение от колкото валидацията да се пише многократно.

• • •

Стандарти за писане на код – PHP

17 август 2009

Това е може би една от причините, поради която повечето хора не обичат PHP. Няма строго определени стандарти за писане на код, което създава сериозни проблеми и доста често един програмист не може да познае дори собствения си код след известен период от време. Това е лошо. Езици като Java са на съвсем другата страна на барикадата – там всичко е строго определено и трябва да се прави по начина, по който трябва да се прави. Аз лично съм абсолютно за създаването на някакви общоприети стандарти.

• • •

Не лошата алтернатива Kohana

28 юли 2009

Наскоро се запознах отблизо с Kohana, като реших да реализирам един проект на нея. Впечатленията ми са повече от добри. Фреймуоркът има като основа CodeIgniter, но с някой основни разлики.

Първата и най-съществената от които е, че Kohana е Strict PHP 5, което аджеба за мен поне е нещо нормално. PHP 4 одавна е в миналото. Но пък опцията на CodeIgniter да „върви“ безпроблемно и на сървър, който има PHP 4 не е за подценяване.

Още разлики можете да прочетете тук. Не мисля да ги превеждам или преразказвам, защото са достатъчно добре описани.

• • •

Предстоящи проекти, идеи за реализация и…

3 юни 2009

Първо малко за конкуренцията, защото в момента темата ми е много на сърцето. Напоследък се запознавам с все повече хора, които са ми пряка конкуренция и с които чупим от една пита. Повечето от тях ги познавам или само виртуално или пък съм се запознал с тях благодарение на някой блог, форум и прочее. Какво забелязвам – въпреки, че сме конкуренти всички са много любезни, мили и отзивчиви. Което е супер! Честно казано, ако всичко беше съвсем истинско щеше много да се радвам. Обаче не е. В интерес на истината, аз не възприемам конкуренцията като нещо лошо. Напротив – това са хората, които ни карат да работим по-здрави, да ставаме по-рано и да правим по-добри проекти на по-изгодни цени за по-малко време. Конкуренцията е нещо хубаво! Не мога да разбера обаче, защо някой хора не могат да го проумеят и до ден днешен.

• • •

Начинаещи: require() и include()

1 юни 2009

Така… това го пиша, защото в последните две седмици ме попитаха 3 пъти за това нещо и явно, че хората не го знаят или по-скоро не правят разлика между двете функции. Разлика има и то съществена. Това, което прави двете функции толкова различни, че require() генерира fatal error, а include() ще генерира warning. С други думи при първото положение страницата няма да се отвори, а при второто ще се изпише само грешка на съответното място и останалата част от страницата ще се покаже. Практиката е следната, всички файлове, коит са от съществено значение за страницата, например бази данни, логини, пароли и всичко, без което сайтът ви не може да съществува и функционира правилно, то тогава се използва require(). При всички останали положение include(). Да речем че имате скрипт, който ви показва последните tweetове, за него ще е добра практика да го include-нете, защото и без него сайтът ви ще е ОК. Но ако имате db.inc.php съдържащ функции за връзка с базата данни, най-добре би било да го require()-нете. Просто е, макар и реално начинаещите да не виждат голям смисъл в тази разлика, но с практиката ще се убедите, че и двете функции са полезни и най-вече на места изключително нужни.

• • •