Руководство по 24 PHP-фреймворкам
В этом руководстве представлены исчерпывающие пояснения по 24 наиболее популярным из доступных фреймворков.
Нажмите здесь, чтобы увидеть содержимое оригинального веб-сайта
ПРЕДИСЛОВИЕ
Представьте, если бы вы могли ввести одну простую команду на своем терминале и увидеть, что половина кода, необходимого для вашего нового веб-приложения, уже написана.
Это сила научиться использовать PHP Frameworks!
Ниже я перечислил обзор 24 лучших фреймворков PHP, которые дадут вам достаточно знаний о том, как упростить и ускорить вашу работу.
Давайте начнем!
Писать код увлекательно,
Написание читаемого кода еще более увлекательно.
Когда вы сможете сделать и то, и другое?
Это когда вы можете программировать часами и все еще чувствовать себя свежим, как когда первый кофе дня начинает действовать.
И у меня есть кое-что, что заставит вас почувствовать это.
ВВЕДЕНИЕ
Что такое фреймворк?
Начнем с самого начала, что такое фреймворк?
Разбивая слово «Каркас», мы получаем «каркас» и «работа».
Рама; Подумайте о каркасе дома, о конструкции, вокруг которой строится все остальное, и любая работа будет зависеть от ее формы. То же самое я могу сказать и о фоторамке, она определяет структуру, и любая вставленная фотография должна соответствовать размеру рамки.
Фреймворк — это просто предопределенный каркас, на котором вы работаете. Это программное обеспечение, предоставляющее базовые функции, которые можно расширить с помощью вашего кода. Преимущества использования этих функций заключаются в том, что они стандартизированы и могут использоваться повторно.
Представьте, что вы потратили последние полчаса, пытаясь найти решение своей проблемы. При использовании стандартизированного сервиса весьма вероятно, что кто-то решит вашу проблему раньше вас.
Это означает, что в Интернете есть возможность найти вероятное решение.
Вот почему у Stackoverflow более миллиона пользователей, а еще миллион вопросов помечен как PHP.
Зачем использовать фреймворки?
Чтобы ответить на этот вопрос, мне нужно немного углубиться в то, что делают фреймворки.
Каждый проект, который вы делаете, обычно начинается с одного и того же процесса.
Если вы похожи на меня, у вас есть контрольный список на боковой стороне вашего ноутбука и карандаш, готовый стрелять в любое действие, которое вы делаете, чтобы начать процесс разработки.
Если у вас нет чего-то подобного, очень вероятно, что вы пропустите что-то важное, что потребовало бы включения позже.
Фреймворки позволяют освободиться от этих задач и сосредоточиться на процессе разработки, а не на подготовительном этапе.
Зачем беспокоиться о настройке авторизации, сеансов, написании кодов, которые защищают вас от атак с подделкой межсайтовых запросов и т. д., когда вы можете тратить больше времени на то, что вам нравится.
Не говоря уже о времени, которое вы сэкономите, найдя этот код готовым к использованию, а, как мы все знаем, время — деньги.
С момента выхода первого фреймворка список реализуемых функций значительно увеличился.
Создатели фреймворков теперь имеют многолетний опыт работы.
Это заставило их улучшить его и использовать более современные стандарты безопасности, как я показал выше.
И не только это, многие PHP-фреймворки можно установить через Composer. В некоторых других случаях вы даже можете просто скачать каталог из репозитория git, и он готов к использованию.
Внедрите Composer, чтобы требовать сторонние пакеты и ресурсы в качестве отличного способа расширить свои проекты и сделать их более масштабируемыми.
Код, который использует большинство из них, основан на объектно-ориентированном принципе PHP.
Они автоматически создают классы и объекты в фоновом режиме (вам больше никогда не придется беспокоиться о включении файлов).
Они также следуют шаблону MVC, разделяя код на модели, представления и контроллеры, PHP-фреймворки упрощают работу с кодом и повышают масштабируемость проекта.
Еще одна особенность, общая для большинства фреймворков PHP, — способ обработки запросов.
Система маршрутизации некоторых из них, по сути, является произведением искусства.
Это позволяет перенаправлять и лучше управлять SEO, создавая SEO-дружественные URL-адреса.
Когда следует использовать PHP-фреймворки?
Чтобы ответить на этот вопрос, вам нужно задать себе несколько вопросов о проекте, который вы хотите построить.
Каковы его потребности?
Покрывает ли выбранная вами структура эти потребности?
Достаточно ли у вас навыков работы с фреймворком, чтобы выполнить то, что вам нужно?
При использовании фреймворка вы должны понимать, что этот скелет может весить довольно много, даже если вы еще не начали.
Так что, если вы просто создаете список дел, чтобы получить его со своего телефона в следующий раз, когда пойдете в продуктовый магазин, или простую страницу портфолио, на которой перечислены ваши навыки на цифровом экране, вам могут не понадобиться все эти встроенные материалы.
Они будут проблемой и снижают производительность, а не решение.
Фреймворк PHP может быть полезен во многих случаях, но не всегда необходим. Если создавать ваши приложения будет легко и функций не так много, то правильным выбором может быть просто сделать это самостоятельно.
Вот видео, в котором перечислены 10 лучших фреймворков по версии Traversy Media.
Стоит взглянуть на это
Когда не следует его использовать?
Использование фреймворка PHP — это не всегда персики и одуванчики.
Есть несколько недостатков, которые вы, как веб-разработчик, должны понимать.
Фреймворк — это внешний компонент. Он закодирован кем-то или командой со своим мышлением и целями.
Иногда эти цели не идут в том направлении, которое вам нужно для ваших проектов.
Расмус Лердорф, создатель PHP, несколько раз высказывался против них, указывая на все проблемы, возникающие при их использовании.
Как было сказано ранее, производительность фреймворков ниже, чем у кода, который вы можете написать самостоятельно.
Это потому, что у них есть множество функций, которые должны понравиться большинству разработчиков.
Это означает, что фреймворки решают разные проблемы, предоставляя общее решение.
Возможно, вам придется добавить всего пару функций PHP, вместо этого вы обнаружите, что у вас много реализаций, которые вы никогда не будете использовать, и это замедлит выполнение вашего проекта.
Кому следует использовать фреймворки?
Мы поговорили о «когда», теперь пришло время объяснить «кто».
Для этого я расскажу немного о своей истории.
В начале, как только я смог свободно писать HTML, я начал изучать JavaScript.
Не прошло и 2 недель, как я уже забросил его и большую часть времени писал на jQuery. jQuery — это библиотека, которая позволяет писать код на JavaScript, используя гораздо более простой синтаксис.
Это было проще, это было быстрее, и было доступно множество руководств и плагинов.
Через некоторое время мне нужно было сделать шаг назад и купить книгу по JavaScript, так как начали выпускаться несколько фреймворков JavaScript.
Были Angular, VueJs и React, и каждый день появлялось множество новых вещей, которые используют не jQuery, а ванильный JS.
Урок, который я усвоил, заключается в том, чтобы придерживаться основы столько, сколько вам нужно. Фреймворки PHP часто используют принципы, шаблоны проектирования, модульные тесты, контейнеры, миграции и многое другое, чего не понимает новичок.
Вам не обязательно быть экспертом, но вы должны быть опытным PHP-разработчиком.
Когда вы почувствуете, что готовы, вам нужно выделить время, чтобы изучить любой фреймворк по вашему выбору.
Некоторые из них действительно просты, в то время как для других требуется очень крутая кривая обучения.
Не сдавайся! Первые пару часов это не будет иметь никакого смысла, это нормально.
Просто завершите обучение, найдите объяснение в Интернете, и вскоре все наладится.
Теперь, когда вы понимаете основные концепции использования фреймворка, вы готовы углубиться и изучить каждую из них.
Важно, чтобы вы прочитали следующую главу после анализа того, какую проблему необходимо решить вашему приложению или веб-сайту, который вы собираетесь создать.
Хватит предисловия, приступим!
Больше обзоров фреймворков вы можете найти во второй части этой статьи.
Агави
Agavi был в основном разработан Дэвидом Зульке, но у него есть 20 других участников в более чем 60 выпусках.
Agavi — это PHP-фреймворк, который показал себя с лучшей стороны в период с 2006 по 2009 год.
Это быстрый и компактный продукт, предназначенный для работы в среде PHP 5.
Основное внимание уделяется нескольким функциям, дающим вам как разработчику свободу формировать проект по своему усмотрению.
Его можно установить через Composer или загрузив репозиторий с GitHub.
Этот фреймворк можно использовать почти для каждого проекта, но рекомендуется использовать его в долгосрочных проектах с большой кодовой базой.
Он доступен через протокол HTTP, SOAP и такие команды.
Если вы хотите скорректировать старый проект или просто хотите окунуться в прошлое, Agavi по-прежнему предоставляет большое количество информации и руководств на своем веб-сайте, а также документацию по API, ответы на часто задаваемые вопросы и сообщения в блогах.
Я брал интервью у Дэвида во время написания статьи, и он все еще был очень увлечен этим фреймворком.
Он утверждал, что у Agavi все еще есть свои пользователи, хотя, по его мнению, большинство из них сильно модифицировали его с течением времени или взяли некоторые из его основных концепций, которые в целом устарели, и перенесли их на какое-то собственное решение, например, на Symfony.
Теперь он поддерживает поддержку языка PHP в Heroku, так что он больше не использует фреймворки и не пишет большие PHP-приложения, а вместо этого следит за тем, чтобы его клиенты могли делать именно это!
Официальный веб-сайт
Репозиторий GitHub
ТортPHP
CakePHP, возможно, является одним из самых важных PHP-фреймворков.
Он был запущен в апреле 2005 года по инициативе Михала Татариновича, польского разработчика, который впервые опубликовал проект под лицензией MIT и назвал его Cake.
В конце того же года CakePHP был передан другому программисту, который в итоге создал Cake Software Foundation и выпустил версию 1.0 в мае 2006 года.
В 2018 году, спустя все эти годы, он по-прежнему считается одним из лучших и входит в топ-5 по использованию. Он несколькими способами повторяет характеристики, наблюдаемые в Ruby on Rails, а также использует несколько шаблонов проектирования, принцип MVC, активную запись и парадигму соглашения по конфигурации.
Я хотел бы остановиться на этой парадигме и объяснить ее силу.
После того, как вы, как разработчик, усвоили несколько условных правил, таких как вызов класса определенным образом или окончание имени внешнего поля таблицы на «_id», серверная часть фреймворка создает все сама.
Это означает, что Cake PHP может легко создать полную CRUD-систему и отношения всего за несколько секунд, используя имя, указанное в базе данных.
Я считаю, что если вы хотите повысить свои навыки и попробовать простой фреймворк, это то, с чего вам нужно начать.
У него есть несколько особенностей, которые могут быть коварными поначалу, но, в конце концов, это довольно простая кривая обучения.
Существует большая поддержка со стороны сообщества, более 7000 звезд и более 3000 форков на GitHub, а также форум, а также официальная и неофициальная документация.
В последнее время люди в CakePHP работают так усердно, как никогда, выпуская последнюю версию 3.5 для записи, официально названную Red Velvet.
В этом году они также организуют конференцию в Нэшвилле, штат Теннесси.
Итак, если вы находитесь в США или хотите узнать больше об этом фреймворке и отправиться в приятное путешествие, что может быть лучше?
Официальный веб-сайт
Репозиторий GitHub
Продолжение следует…
Этот пост в блоге является разделом книги Kindle «Полное руководство по вашей следующей PHP-инфраструктуре».
Больше обзоров фреймворков вы можете найти во второй части этой статьи.
Теперь твоя очередь
Надеюсь, вам понравилось сравнение моих фреймворков.
Теперь я хочу услышать от вас:
Какой был ваш первый PHP-фреймворк?
Собираетесь ли вы попробовать один из перечисленных выше?
Дайте мне знать, оставив быстрый комментарий.