Нужны ли фреймворки в PHP? [закрыто]

9

Действительно ли фреймворки необходимы в PHP?

Каковы преимущества и недостатки его использования?

Тайяб Гульшер Вохра
источник
2
Недавно наткнулся на этот пост, который выглядит довольно проницательно в отношении использования PHP без фреймворка stackoverflow.com/questions/3655145/…
Мэтт Молнар

Ответы:

17

Нет, но они хороши

Плюсы : экономия времени без необходимости перестраивать код самостоятельно. Используйте множество функций, функций и структур данных, созданных кем-то другим, которые применимы к вашему проекту.

Минусы : отсутствие самостоятельной сборки кода может быть потерей при лучшем понимании, на основе которого работает ваш проект.

Тим
источник
1
но проблема в том, что изо дня в день появляется множество фреймворков, которые я не знаю, какой из них использовать
Tayyab Gulsher Vohra
4
@Tayyab Ты должен использовать их всех!
Арнис Лапса
1
Выбор платформы зависит от вас, исходя из потребностей вашего приложения и вашего стиля кодирования. Также спросите себя: нужна ли вам среда для запуска собственного приложения или CMS (Joomla, Drupal и т. Д.)?
Даррен Ньютон
2
Вы должны быть осторожны с "неизвестными неизвестными". Если вы не используете фреймворк, велик риск забыть или не знать о некоторых вещах, которые фреймворки решают для вас. Например, правильно ли вы боретесь с предотвращением атак CSRF? Ваше приложение будет работать без такой профилактики, но его легко взломать. Выбор основной структуры (любой из них) означает, что вы извлекаете выгоду из всего, что касается веб-приложений, даже если вы еще не узнали об этом.
Джори Себрехтс
9

Фреймворки веб-приложений так же хороши, как ваш опыт работы с ними.

У каждого фреймворка есть кривая обучения, пока вы не преодолеете эту кривую, вы, вероятно, в конечном итоге будете делать вещи настолько задом наперед, что сводите на нет все преимущества использования фреймворка. Ваше приложение будет излишне медленным для разработки, будет трудно следовать коду, и все это сломается, когда выйдет новая версия фреймворка. Я бы рекомендовал не пытаться использовать незнакомую среду (или любую незнакомую технологию) для проектов с жестким сроком.

Как можно лучше использовать фреймворки?

Вам придется создать несколько ужасных приложений и выполнить итерацию. В конце концов вы поймете причуды, и использование фреймворка позволит вам сократить время разработки и лучше организовать код.

Стоит ли использовать PHP-фреймворк?

Каждый, кто кодирует достаточно PHP, в конечном итоге использует фреймворк. Вопрос в том, будете ли вы использовать свой собственный фреймворк или тот, который разработан третьей стороной? По моему опыту, вы, вероятно, никогда не разработаете свою собственную инфраструктуру, которая будет соответствовать надежности и качеству сторонней платформы. Тем не менее, разработка собственного фреймворка, кажется, является правом прохода в сообществе PHP, поэтому не позвольте мне отговорить вас от написания собственного класса абстракции базы данных.

Вот полезный график:

введите описание изображения здесь

Джейк МакГроу
источник
7

По словам Расмуса Лердорфа , вам не нужны никакие дополнительные фреймворки, так как PHP сам по себе является фреймворком. http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html

Vartec
источник
ну, ребята, я biginner, и я пытаюсь написать код, я новичок в этом, и я хочу быть основным разработчиком php, поэтому, пожалуйста, ребята, предложите мне
Tayyab Gulsher Vohra
3
Эта статья написана в 2006 году и смущающе устарела.
Джонатан Рич
1
@JonathanRich: эта статья может быть даже устарела, но она по-прежнему смущающе интересна!
4

Ну, это действительно зависит от размера вашего проекта. Домашняя страница без базы данных и не более 10 страниц, фреймворк будет слишком много, в основном потому, что фреймворки всегда требуют большой конфигурации и настройки в большинстве случаев, чтобы соответствовать конкретным потребностям. И в некоторых ситуациях они могут быть немного медленнее, чем несколько страниц, включенных в файл (подумайте обо всех фреймворках, которые необходимо загрузить, чтобы использовать его функции.).

Теперь, если вы планируете сайт среднего / большого размера, с взаимодействиями с базой данных, веб-сервисами и т. Д., Вам понадобится инфраструктура, которая поможет вам взаимодействовать с различными технологиями и упорядочивать код таким образом, чтобы в случае поломки вы имели habilitie, чтобы быстро обнаружить и восстановить его. Кроме того, если вы думаете о клиентах, они всегда меняют свое мнение о программном обеспечении, поэтому, если клиенту нужно изменить или добавить новую функцию, вам не нужно разбираться со всем вашим кодом и думать о том, как подключить эту новую функцию ко всем это сфагетти.

Есть много других плюсов и минусов, но это те, которые впервые пришли мне в голову.

Редактировать: я использую фреймворк Symfony в повседневной работе, а также выполнил работу с php для университета (у меня было несколько курсов по веб-разработке, которые не позволяли использовать какую-либо фреймворк), поэтому большая часть этого получена из этого опыта.

guiman
источник
1
Что ж,
Первым шагом было бы не использовать их, изучить технологии и как они работают (php, framework, js, css и т. Д.), Затем, как только вы поймете основы программирования php, затем используйте такую ​​среду, как Zend, Symfony или CakePHP, чтобы изучить их. как повысить ваши приложения
Guiman
2

Ты шутишь, да?

Необходимость зависит от использования. Компьютеры не нужны человечеству, ни машины, и т.д.

Что касается достоинств / недостатков, каждому свое!

Я хотел бы показать пример кода из моей собственной платформы:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

Видишь, что я там сделал? Этот класс служит моделью для магазина. Что такого особенного, кроме ОО? Если таблица или какой-либо столбец не существует, он создается динамически. 0 установить скрипты. Конечно, это особенность моей структуры. Но Вы получаете идею.

Кристиан
источник
Я хочу сказать вам кое-что, ребята, на самом деле я использую 2 фреймворка, один - codeigniter, а другой - yii, и я хочу стать основным разработчиком, но мои концепции ООП не так хороши, правда в том.
Тайяб Гулшер Вохра
Как вы различаете операторы «UPDATE» и «INSERT» в методе $ p-> save ()?
Сриса
@Srisa - я не установил идентификатор. Для того, чтобы сделать UPDATE, мне нужно: это в рядке слияние , в отличии от перезаписи всего ряда. $p=new Product($the_id); $p->load();load()
Кристиан
2

Не все приложения требуют каркаса, но большинство из них требуют.

Преимущества:

  • Не повторяйте себя - любое новое приложение будет иметь общие функции со многими существующими приложениями. Имеет смысл избегать повторения. Фреймворк объединяет в себе функциональность, необходимую для большинства приложений. Следовательно, вы сэкономите время (и деньги).
  • Не терзайте себя - разработка программного обеспечения в целом может быть очень болезненной. Имеет смысл автоматизировать мирские вещи. Фреймворк заботится о сантехнике, поэтому вы можете сосредоточиться на глубокой креативности. Следовательно, вы сэкономите усилия (и деньги).

Недостатки:

  • Наш путь или нет. Возможно, вам придется следовать жестким соглашениям, которые могут противоречить вашим догматическим убеждениям о том, как все должно быть сделано (и, следовательно, раздражать вас).
  • Синдром приобретенного фреймворка - вы можете стать слишком зависимым от фреймворка, чтобы выполнить даже самые простые вещи. Вы забудете, как маршрутизировать запросы, получать доступ к базам данных, сопоставлять объекты с запросами к базам данных и т. Д., Так как фреймворк держит вас за все это.

В общем, лучше использовать один.


источник