Защо да ползвам framework? Кой PHP framework да използвам?

+8 гласа
1,557 прегледа
попитан 2016 юни 20 от Vasil.Metodiev. (1,200 точки)
Разглеждах из интернет за PHP кодирането и попаднах на няколко framework-а за PHP. Въпросът ми е за какво служат и кои са най-добрите и най-ползваните?

4 отговори

+2 гласа
отговорени 2016 юни 20 от VeskoNikolov (1,620 точки)

Ако трябва да се каже с една реплика, тя би била следната: Не преоткривай топлата вода.

Накратко:
При фреймуърка детайлите вече са изчистени, т.е. структурата на папките, конфигурационните файлове и т.н. са вече измислени и създадени, което води до повишаване на продуктивността ти. Също така те предпазва от някои грешки и уязвимости (примерно SQL инжекция).

Повечето фреймуъркове се уповават на философията "MVC" (model view controller), което накратко ти позволява да имаш по-добре структуриран и по-лесно приложим в набор от различни ситуации код.

Примерно фреймуърка Symfony предлага някои от следните неща:

  • Има така наречен Internationalization layer, който позволява превеждането на данни, съдържание и интерфейс.
  • Ползват се темплейти, които може да са направени от HTML дизайнери, които не разбират самият фреймуърк.
  • Автоматична валидация и автоматично попълване при грешка на формите в сайта Ви, това води до по-чисти данни в базата и по-доволни клиенти.
  • Кеширащи функции, които позволяват ползване на по-малко данни и по-леко натоварване на сървъра.
  • По-лесна работа с различни групи потребители, т.е. админ, модератор, обикновен потребител и тн.
  • Маршрутизиране и Smart URLs - адресите на страници, ползващи фреймуърк често са доста по-красиви и приятни за търсещите машини.
  • Когато има списък от някакъв сорт се предлага автоматична филтрация, страниране и сортиране.
  • Работата и с Ajax е по-лесна
  • Има debug панели, които предоставят на разработчика доста полезна информация.
     

Това са само част от предимствата. Единствен недостатък бих нарекъл факта, че е по-сложно да научиш фреймуърк, от колкото чисто PHP. Но ако ползваш някой като Codeigniter пада и този проблем, тъй като CI е доста лесен за учене.

Източник: http://stackoverflow.com/questions/1851920/why-use-a-framework-with-php

коментиран 2016 юни 20 от VeskoNikolov (1,620 точки)
редактиран 2016 юни 20 от VeskoNikolov
А по въпроса кой фреймуърк да учиш... Аз бих започнал с Codeigniter, след това или symfony, или Laravel.

Пример от моя личен опит: Скоро кандидатствах за една работа, където ми искаха минали проекти. Чисто и просто ме беше срам да пратя тези, които съм писал в "чисто" PHP. Точно с тази идея в момента ги преписвам под Codeigniter. Въпреки факта, че това е сравнително анархичен фреймуърк, кодът ми е много по-добре изглеждащ, от колкото при "чистото" php.
+2 гласа
отговорени 2016 юни 20 от Deyan Delev (1,830 точки)

В наши дни разработчиците трябва да създават комплексни уеб сайтове и уеб приложения. Ако всичко бива започвано от нулата, това ще отнема твърде много време. Тук на помощ влизат frameworks, за да компенсират това.

Разбира се има условие преди да започнете да използвате даден framework, и то е да бъдете запознати с основните концепции и философии в PHP: процедурно програмиране и обектно-ориентирано програмиране, а това всичкото няма да мине без МVC – Модел, View, Controller.

След като имаме някакви знания по тези въпроси, можем да се ориентираме в океана от frameworks. Но все пак защо да ги използваме?

Накратко предимствата на един съвременен framework са:

  • Дава ни възможност по-бързо да разработваме своите проекти;
  • Дава ни един добре организиран, преизползваем и лесен за поддръжка код.
  • Не ви се налага да се тревожите за low-level сигурността на сайта си.
  • Следват логиката на MVC модела, който ни позволява разделянето на презентацията от бизнес логиката.
  • Представя едни от най-добрите практики за уеб разработка, например като обектно-ориентирани инструменти за разработка.

Кой framework да избера?

Отговора на тoзи, както и други подобни фундаментални въпроси е, че няма „най-добра framework”, няма „най-добър език за програмиране” и няма „най-добра OS”. Всичко е според нуждите и предпочитанията. Всяко едно решение предлага различни предимства, но винаги съдържа в себе си недостатъци, спрямо други конкурентни продукти. Най-голямата грешка, която един начинаещ разработчик може да допусне е участието в eдин безспирен rat race.    

Все пак не всички framework са еднакво добри, и тук си има „по-добри”, изцяло базирани на статистически данни и reports. Eто няколко от по-добрите, които хората с опит в този бранш препоръчват:

  • Laravel;
  • Symfony;
  • Codeigniter;
  • Yii 2;
  • Phalcon;
  • CakePHP;
  • Zend Framework;
  • FuelPHP;

Доста са нали?

Не зная каква би била най-добрата практика, но аз лично избрах да науча първо Symfony, след което съм се ориентирал към Laravel (или някой друга). Koлкото повече, толкова по-добър поглед над нещата. 

Последно време не съм чувал хубави отзиви за Codeigniter и особено CakePHP, но вероятно тук има колеги с повече опит, които биха опровергали това … who knows?

+2 гласа
отговорени 2016 юни 20 от Mitko Vasilev (2,860 точки)

По темата вече е писано във форума и може да разгледаш тези две теми:

Кой фреймуорк ще ми препоръчате Symphony или Laravel?

Това което мога да допълня е, че е много важно да покодиш малко на 5 различни framework-a и да видиш, кое ще ти хареса с времето. Успех :)

+1 глас
отговорени 2016 юни 20 от Nolongerexists2 (1,790 точки)

Framework ви позволява да не се фокусирате толкова върху малките детайли при кода и дизайна, защитава ви от грешки например SQL Injection атаки.

1.  Laravel
Laravel е най-новия и най-популярен framework използва се от много разработчици. Laravel разполага с много функции, които правят развитието много по-бързо и по-качествено. Също така има собствен template двигател с наименованието Blade, подреден синтаксис и разполагат с локално място за развитие с име Homestead.

2. Symfony 2
Symfony 2 е framework който се ползва в много известни проекти като Drupal  или така познатия за нас phpBB forum. Symfony разполага с богата PHP библиотека като създаване на форми, конфигурация на обекти, template и много други неща.

3.  CodeIgniter

CodeIgniter е най-лекият PHP framework който е на 10 години. Има доста прост инсталационен процес и се нуждае от минимални конфигурации. CodeIgniter не е базиран на MVC модел. Използването на модели е напълно ваш избор. Можете да използвате ваш код и да, този framework дава на програмистите пълната свобода на програмиране.

 

4. CakePHP
CakePHP е доста старичък framework вече наближава 12 години, но все още се ползва доста от програмистите и версиите му се поддържат стриктно. Новата версия на CakePHP позволява да създавате повече самостоятелни библиотеки. Този framework се ползва в сайтовете на големи фирми като BMW, Express и Hyundai. Използва се най-вече за създаване на уеб приложения които се нуждаят от високо ниво на защита.

5.  Slim
Slim е PHP micro framework който ви дава всичко което се нуждаете. Този framework не е фокусиран върху дизайн, но е прекрасна възможност за създаване на малки приложения. Slim се използва от много PHP програмисти за създаване на RESTful APIs и услуги. 

...