1 year ago | 18.4K


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

На помощь программистам и верстальщикам приходят такие популярные и эффективные инструменты: PHP Фреймворки и CMS (от англ. Content Management System - система управления контентом). Вариант выбора зависит от знаний вебмастера и целей, поставленных перед проектом.

Как же разобраться и понять, что выбрать Фреймворк или CMS?

Что из себя представляют PHP-Фреймворки

Работа с Фреймворком требует определенных знаний. Но это не так страшно, как может показаться на первый взгляд.

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

Самые популярные PHP Фреймворки:
Zend Framework ;
Yii ;
Phalcon ;
Codeigniter - изучите у профессионалов:


Достоинства

1. Код созданный на Фреймворках «легкий», он отличается высокой производительностью. Скорость работы выше только у приложений, написанных на чистом PHP, с индивидуальной разработкой кодов.

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

3. Универсальность. Используя готовые классы и библиотеки Фреймворков можно решить любую поставленную задачу.

Трудности, с которыми вы можете столкнуться

1. Новичку, первое время будет довольно тяжело разобраться в коде. Но нужно заметить, что язык PHP довольно прост в изучении и интуитивно понятен. Освоив азы, вы довольно быстро разберетесь и со сложными заданиями.

2. Для разработки сайта требуется определенное время. Хотя в библиотеках Фреймворков есть все необходимые коды, собрать из них функционирующий сайт не так уж и просто. Зато полученный результат того стоит. У вас будет уникальный, не похожий на другие, сайт.

3. В готовом сайте будет отсутствовать административный модуль. Его нужно собирать самостоятельно. Это не тяжело, если у вас есть хотя бы небольшие знания по PHP. К счастью, есть множество почти готовых решений, требующих незначительной доводки.

4. Считается, что сайты, созданные на основе Фреймворков, обходятся дорого в обслуживании. Причина кроется в уникальности. Даже опытный программист через полгода может забыть, какие коды он использовал при создании сайта. Чтобы упростить работу необходимо оставлять комментарии для каждого используемого элемента.

Системы управления контентом (CMS)

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

Основной задачей таких систем является сбор и объединение данных в единое целое. Источники при этом могут находиться как на самом ресурсе, так и вне его. Используя CMS, можно быстро создавать сайты, наполнять их содержимым.

Современные CMS - комплексное решение, имеющее огромный набор функциональных возможностей.

Самые популярные CMS:
Joomla! - подробнее читайте
Drupal ;
WordPress .

Достоинства

1. Самое главное достоинство - это минимальное время, требующееся для разработки сайтов.

2. Множество готовых дополнений в виде легко устанавливаемых расширений.

3. Изучение, настройка - несложные, интуитивно понятные.

4. Дают возможность создать свой сайт, даже если вы совершенно не владеете языками программирования.

5. Схожесть устройства админ панели и функционала различных CMS упрощают работу вебмастеров.

На что нужно обратить внимание

1. У многих CMS есть некоторая ограниченность в возможностях. Встречаются системы с четко очерченными задачами. Что касается монстров как WordPress или Joomla! - здесь все решается путем установки расширений, в результате получаются сайты с большими возможностями.

2. Более низкая производительность, чем у сайтов, созданных на Фреймворках, требует больше ресурсов (не имеет значения, при мощном серверном оборудовании).

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

Выводы

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

Если вам не важна уникальность, а сайт требуется создать в кратчайшие сроки - нужна CMS.

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

Однако, работая фрилансером, часто встречаю сайты на самописных системах. Программисты пишут их не от хорошей жизни. В зависимости от степени простоты(сложности) проекта чрезмерно или наоборот недостаточно, применение готовой системы, и на ее переделки уходит больше времени, чем на создание сайта с нуля. К примеру, для сайта одностраничника не нужно тяжелой системы типа Joomla или фреймворка типа Yii , а у CMS типа Texpattern может не хватить функционала. Плюс задачи, которые ставит заказчик, могут быть весьма специфичными, и достаточно тяжело реализуемыми на готовой системе.

Для примера можно взять работы с моделями в . Речь идет об ActiveRecord. У Yii на официальном сайте есть отличный мануал по созданию блога . Если придерживаться его, и делать все, как написано, то через пару часов изучения, можно получить полноценный блог. С категориями, метками, пользователями и административной панелью.

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

Как сказал один наш комик - "тут начинается вестерн". То, что в SQL бы заняло 3 строчки кода, в Active Record займет пару ночей чтения мануалов, и экспериментов. Потому что, на первый взгляд тривиальная задача, вдруг вызывает необъяснимый баг Yii, о котором слышали полтора человека и оба китайцы. Пример не надуманный, те кто программировал на Yii используя Actve Record поддержат.

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

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

Об этом расскажу в этой статье. Как написать php фреймворк с нуля. Опишем основные техники проектирования MVC фреймворков на чистом php без использования сторонних библиотек.

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

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

Однако и плюсы тоже есть, система будет полностью под вашим контролем. Никаких ограничений API и требований системы. Только чистый vanilaPHP и ничего лишнего.

Оставим лирику, приступим наконец к коду.

Точка входа

Любой сайт, CMS или фреймворк начинается с точки входа. Обычно это index.php в корне сайта. Но мы не будем так делать. Чтобы программист, который работает с нашим фреймворком сразу разобрался, что все данные идут через точку входа, назовем файл main.php. Тогда будет очевидно - все запросы перенаправляются через.htaccess

AddDefaultCharset utf-8 RewriteEngine on php_value upload_max_filesize 50M php_value post_max_size 50M php_value display_errors 1 DirectoryIndex main.php?controller=index ErrorDocument 404 /main.php?controller=error RewriteRule ^index.html$ main.php RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ main.php?route=$1

Первые 8 строк - это вспомогательные настройки, которые пригодятся для фреймворка в будущем. Мы установили кодировку utf-8 по умолчанию, сайт будет работать на ней. Включили модуль apache Rewrite, для того чтобы перенаправить все не статичные запросы на main.php. Это и делают 3 последние строчки. Вся строка запроса, которая идет после домена, будет передана в переменную $_GET["route"]. Т.е. запрос http://sitename.ru/kolesa/perellli/?id=5 превратится в http://sitename.ru/main.php?route=kolesa/perellli/ &id=5

Дальнейшие манипуляции с разбором URL производятся с помощью PHP. Это распространенный прием, вы легко можете воспользоваться им в других системах. Так работает и Yii. Но наш фреймворк в отличие от Yii без.htaccess работать не сможет.

Файл main.php не должен делать много, он лишь определит константы путей, подключит фреймворк и запустит приложение

start();

Структура

Теперь продумаем структуру нашего фреймворка. Удобно, чтобы его файлы лежали в отдельной папке. Сделаем такую структуру

Application -- controllers -- models -- views -- config.php - ideal -- classes -- framework.php -- config.php .htaccess main.php

в папке ideal будет лежать наш идеальный =) движок, а в папке application файлы пользователя.

в файле framework.php определим автозагрузчики классов, для того чтобы не писать руками каждый раз include "classname.php"; Я уже писал про эту технику

в этом файле будут еще и другие системные действия. Но пока хватит и этого.

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

Теперь опишем класс App, он находится в папке classes движка.Его метод start и будет запускать наше приложение.

parse(); $controller = app::gi(Router::gi()->controller."Controller"); $controller->__call("action".Router::gi()->action); } }

Класс наследует абстрактный класс Singleton . Удобство в том, что экземпляр любого класса, который наследует от Singleton, можно получить из любого места программы через его метод gi() К примеру, экземпляр нашего приложения можно получить App::gi(). Этот метод вернет единственный экземпляр класс App. Один экземпляр может создать проблему, когда нужно использовать несколько баз данных. Поэтому к классу db его лучше не применять.

В коде появляются класс Router. Он будет парсить переменную $_GET["route"] и и возвращать контроллер и action - т.е. метода этого контроллера. Так как пока мы пишем лишь каркас, то этот класс ничего делать не будет. Лишь заполнит свои соответствующие поля.

controller = $_REQUEST["controller"]; if(isset($_REQUEST["action"])) $this->action = $_REQUEST["action"]; } }

Каркас фреймворка готов. Теперь создадим один жизненно важный контроллер application/controllers/UserController.php

Пользователи нужны в любой системе.

Он пока ничего не делает. Лишь создает модель User и выводит свое представление на экран. Модель User наследует класс classes/Model.php

data[$name])?$this->data[$name]:null; } function __set($name,$value){ $this->data[$name] = $value; } }

и код модели application/models/User.php

Как видите он тоже ничего особого не делает.

Hello name?>!!!

Таким образом структура нашего фреймворка примет такой вид

Application -- controllers --- UserController.php -- models --- User.php -- views --- user ---- index.php -- config.php - ideal -- classes -- framework.php -- config.php .htaccess main.php

Запустив в адресной строке

http://sitename/index.html?controller=user&action=index в браузере мы увидим заветное

Hello Valeriy!!!

Вам сейчас кажется, что все это ерунда и можно было сделать все это проще. Но если вдуматься, у нашего фреймворка огромные возможности. Он полностью структурирован. Расширить его возможности не составит большого труда. Добавляем класс для работы с БД

На дворе 2016 год, а это значит, что императивный стиль уже не в моде. «Нормальные люди так не пишут», - скажет любой современный разработчик на крупном проекте и будет прав.

И если вы всё ещё с ним не согласны, то пришло время обновить свои знания: современные методологии, как-то MVC или ООП, очень сильно упростят жизнь как вам, так и вашим коллегам. И сполна все эти штуки реализует ещё одна must-have в 2016 вещь - PHP-фреймворки.

Давайте рассмотрим их более подробно и разберемся, какой стоит выбрать именно вам.

Laravel

Один из самых популярных PHP-фреймворков, обладающий выразительным и элегантным синтаксисом. Он позволит максимально упростить решение основных и самых наболевших задач, таких как аутентификация, маршрутизация, сессии и кэширование. Laravel создавался как попытка объединить только все лучшее, что есть в других PHP-фреймворках, а также Ruby on Rails, ASP.NET MVC и Sinatra. Одно из самых важных его достоинств - наличие интегрированной системы модульного тестирования.

Zend

Написанный полностью в объектно-ориентированном стиле фреймворк, использующий все последние новшества PHP. Разработан с минимальными зависимостями от других компонентов, каждый из которых можно использовать отдельно; тем не менее, стандартный набор библиотек делает его очень мощным и легко расширяемым средством разработки. Кроме того, он предлагает надежную и высокопроизводительную реализацию MVC и удобную в использовании абстракцию базы данных, а также множество других возможностей, которые в сумме делают его одним из самых функциональных фреймворков.

CakePHP

CakePHP - написанный на PHP программный каркас для создания веб-приложений, обладающий активным и быстрорастущим сообществом. Как и большинство других фреймворков, реализует паттерн MVC. Изначально он создавался как клон популярного Ruby on Rails, и многие его идеи были заимствованы именно оттуда. От своих конкурентов отличается тем, что поддерживает не только PHP5, но и PHP4.

Code Igniter

Пожалуй, наиболее простой в освоении и использовании фреймворк. Легко расширяется, безопасен и использует простые и понятные подходы, одним словом - идеален для новичков. Одно из других его преимуществ - скорость работы, этот фреймворк куда быстрее справляется с задачей работы с БД, чем другие его собратья.

Kohana

Kohana, ранее Blue Flame - это PHP5 веб-фреймворк с открытым кодом, который использует архитектурную модель HMVC. Его цели - быть безопасным, легким и простым в использовании.

Электронный журнал для веб-разработчиков PHP Inside признал Kohana «выбором редакции … за архитектуру, быстроту и сообщество».

Kohana является форком известного фреймворка Code Igniter и во главе ставит строгое соответствие PHP 5 ООП и прозрачную модель разработки.

Symfony

Состоящий из множества компонентов и написанный на PHP5 фреймворк, использующий паттерн Model-View-Controller. Предлагает быструю разработку и управление веб-приложениями, позволяет легко решать рутинные задачи веб-программиста. Одно из основных его достоинств - поддержка множества баз данных (MySQL, PostgreSQL, SQLite или любая другая PDO-совместимая СУБД).

Yii

Высокопроизводительный PHP-фреймворк, использующий паттерн MVC и предназначенный для быстрой разработки современных web-приложений. Его возможности позволяют в сжатые сроки реализовывать крупномасштабные проекты типа форумов, порталов, CMS, RESTful web-сервисов и других сложных систем. В него уже заложено множество проверенных и готовых к использованию решений: конструктор запросов, ActiveRecord для реляционных и NoSQL баз данных, RESTful API, многоуровневая поддержка кэширования и многие другие.

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

Slim

Slim - микрофреймворк, идеально подходящий для небольших проектов или приложений, где полноценный фреймворк покажется лишним. Его используют многие PHP-разработчики для создания RESTful API и сервисов. Среди функций Slim - кэширование HTTP на стороне клиента, URL-маршрутизация, шифрование сессий и cookie, а также мгновенные сообщения по HTTP-запросам. Документация полная и сделана качественно.

Phalcon

Phalcon был создан в 2012 году и быстро стал популярным среди PHP-разработчиков. Его считают очень быстрым, так как он написан на C и C++, чтобы достигать наивысшего возможного уровня оптимизации производительности. Но не волнуйтесь, учить С не придется - вся функциональность заключена в PHP-классы, которые можно использовать для любых целей.

Так как Phalcon изначально был создан как расширение на С, его архитектура оптимизирована на низком уровне, что значительно снижает расходование ресурсов, типичное для приложений, основанных на схеме MVC. Phalcon не только повышает скорость выполнения, но и снижает уровень затрат ресурсов. У этого PHP-фреймворка есть и много других замечательных функций: универсальный автозагрузчик, менеджмент ресурсов, безопасность, перевод, кеширование и т. д. Документация для Phalcon довольна обширна, а использовать его несложно.

Интересный факт: еще в году Phalcon был вторым по популярности фреймворком, согласно данным sitepoint.com. А уже в 2015-м он заметно сдал позиции и переместился ближе к концу списка.

CakePHP

Фреймворку CakePHP уже десять лет, а он все еще в топе. Работе с ним легко обучиться, а шаблонирование - быстрое и настраиваемое. Встроенная функция CRUD очень помогает при взаимодействии с базой данных. В последнем релизе - CakePHP 3.x - улучшилось управление сессиями и модульность (они разъединили несколько компонентов), а также расширились возможности создания большего количества отдельных библиотек.

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

  • валидация ввода;
  • Защита от атак с использованием внедряемого SQL (SQL injection);
  • предотвращение межсайтового скриптинга;
  • защита от подделки межсайтовых запросов и многое другое.

Zend Framework 2

Zend Framework 2 - фреймворк с открытым исходным кодом, использующийся для разработки веб-приложений и сервисов на PHP 5.3+. Он использует на 100% объектно-ориентированный код и большинство новых функций PHP 5.3: пространства имен, позднее статическое связывание, лямбда-функции и замыкания. Zend - надежное решение со множеством вариантов конфигурации. Обычно его не рекомендуют использовать для небольших приложений, а вот для крупных проектов это самое то.

Среди функций Zend Framework 2: инструменты криптографического кодирования, простой в использовании drag-and-drop-редактор с поддержкой фронтенд-технологий (HTML, CSS, JavaScript), мгновенная онлайн-отладка, инструменты для unit тестирования, мастер конфигурации базы данных. Создатели этого фреймворка учли методологию Agile, что позволяет создавать высококачественные приложения для корпоративных клиентов.

В партнерах Zend - IBM, Microsoft, Google и Adobe. Год назад Zend объявил о следующем крупном релизе - Zend Framework 3, оптимизированном под PHP 7, но все еще поддерживающем PHP 5.5 и выше. Все ждали новинку еще осенью 2015-го, но и сейчас, в апреле 2016-го третьей версии все нет.

Yii 2

Выбирайте Yii , чтобы повысить производительность сайта. Он быстрее всех остальных PHP-фреймворков, так как использует технологию загрузки по требованию (lazy loading). Yii 2 полностью объектно-ориентированный и основан на принципе Don’t-Repeat-Yourself («не повторяйся»), так что основа для кода будет чистая и логичная.

Yii 2 интегрирован с jQuery и поставляется с набором AJAX функций. Механизмы скиннинга и выбора тем здесь просты, так что фреймворк понравится тем, кто ранее занимался фронтенд-разработкой. Здесь также есть мощный генератор исходного кода - Gii , который способствует объектно-ориентированному программированию и быстрому прототипированию, а также предоставляет веб-интерфейс, в котором можно интерактивно генерировать нужный код.

PHPixie

PHPixie - сравнительно новый фреймворк, созданный в 2012 году для сайтов-визиток. Как и FuelPHP, PHPixie поддерживает схему HMVC. Он построен на независимых компонентах , которые можно использовать даже без самого фреймворка. Модули компонентов PHPixie полностью протестированы и требуют минимум других компонентов для своей работы.

На официальном сайте PHPixie есть обучающее видео, в котором заявляют, что обучиться работе с фреймворком вы сможете всего за полчаса . В их блоге также много практический кейсов. Среди функций:работа с БД на уровне объектов (ORM), кеширование, валидация ввода, аутентификация и возможности для авторизации. Можно использовать язык разметки HAML, легко вносить изменения в структуру БД, а также есть продуманная система маршрутизации.

Интересный факт о PHPixie: согласно исследованию Sitepoint 2015 года, это любимый фреймворк украинских PHP-разработчиков. Компания «Культпросвет» тоже находится в Украине, но мы почему-то не можем поставить этот фреймворк на первое место, рука не поднимается. PHPixie также популярен среди группы респондентов до 18 лет. Мы думаем, это благодаря картинке с феечкой на сайте:D

CodeIgniter

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

CodeIgniter не совсем опирается на схему MVC. Использование контроллеров обязательно, а моделей и представлений - нет, так что можно применять собственные стандарты оформления кода и найменований. Этот фреймворк подойдет тем, кому тесно в рамках, - тут море свободы. По сути это простой фреймворк на 2 МБ, но при желании можно добавлять сторонние плагины, если требуется более сложная функциональность.

Symfony 2

Компоненты фреймворка Symfony 2 используются во многих замечательных проектах, например , phpBB и Laravel - (внимание, спойлер!) победителе нашего рейтинга. Symfony может гордиться обширным сообществом разработчиков и большим количеством преданных поклонников.

Компоненты Symfony - это PHP-библиотеки, которые можно использовать повторно и выполнять с их помощью множество задач: создание форм, конфигурацию объектов, маршрутизацию, аутентификацию, создание шаблонов и много чего еще. Любой компонент можно установить с помощью Homestead , которая по сути является надстройкой над Vagrant.

Сравнительная таблица PHP-фреймворков

Laravel Symfony 2 Codeigniter PHPixie Yii 2 Zend Framework 2 CakePHP Phalcon Slim Fuelphp
требуемая
версия php
5.5.9 5.5.9 5.4 5.3 5.1.0 5.3 5.5.9 5.3 5.5 5.3.3
ТИПы
поддерживаемых
баз данных
MySQL Postgress SQLite SQL Server MySQL
Postgress
SQLite
Qracle
MySQL
Postgress
MySQL
PostgreSQI
SQLite
MongoDB
MySQL
Postgress
Qracle
Sqlite
MySQL
SqLite
SQL Server Oracle Postgress
MySQL
SQLite Postgress
SQL server
Oracle
MySQL
SQLite Postgress
Oracle
MySQL
SQLite Postgress
Oracle (через
плагин
Slim-PDO)
MySQL
SQLite Postgress
Облачное
хранилище
Amazon S3
Rackspace
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3 Amazon S3
Rackspace
Windows Azure
Amazon S3
(плагин)
Amazon S3
(плагин)
- Amazon S3
(плагин)
документация на
официальном
сайте
Пошаговое
руководство,
справка по API, видеоуроки
Пошаговое
руководство,
справка по API
Небольшое
пошаговое
руководство,
справка по API
Пошпговое
руководство
Пошаговое
руководство,
справка по API
Пошаговое
руководство,
подробная справка
по API с

Вы знали, что 40% пользователей покидают сайты с плохим дизайном? Зачем терять прибыль? Выберите и установите прямо сейчас один из 44 тысяч премиум шаблонов для сайтов. Идеальный выбор для вашего бизнеса!

Среди всех языков серверного программирования PHP-фреймворк бесспорно наиболее приспособлен для изучения. Он практически всегда установлен даже на самом дешевом веб-хостинге. Он также легко устанавливается на любой рабочей машине. Новички, имеющие определенный опыт в разработке веб-страниц на HTML и CSS, смогут просто освоить основные понятия: переменные, встраиваемые условные конструкции и выражения include. PHP также предоставляет множество широко используемых функций, которые пригодятся для разработки динамических сайтов.

Все говорит о том, что язык PHP можно без проблем освоить быстро. Однако у этого преимущества есть и свои недостатки. Новички могут закрывать глаза на многие и нюансы и допускать ошибки в коде, поскольку они будут осваивать все довольно быстро и будут слишком уверены в своих знаниях. Чаще всего по мере добавления функционала на сайт код на выходе будет все сложнее и сложнее. Это потому что в PHP «из коробки» нет механизма, который бы помогал в разделении решения задач.

Давайте сейчас рассмотрим PHP-фреймворк, точнее 5 лучших из них, которые помогут справиться со многими проблемами при работе. Мы вкратце представим те, которые определенно стоит изучить в 2017 году, и расскажем, как именно они могут сделать разработку приложений проще. Поехали!

  1. Laravel

PHP-фреймворк существует уже довольно давно. Один из последних, новичок, – это Laravel. После выпуска 3-й версии его популярность кардинально повысилась, и на сегодняшний день это один из самых известных и распространенных фреймворков. У репозитория Laravel на GitHub рейтинг выше, чем у его более зрелых собратьев, таких как Symfony, CakePHP, CodeIgniter и Yii. О них речь пойдет позже.

Laravel повторно использует и монтирует существующие компоненты, предоставляя вам связующий слой, на базе которого вы можете более структурировано и практически создавать свои веб-приложения. Почерпнув самое лучшее из популярных фреймворков (не только на PHP, но и на других языках), Laravel предоставляет полноценный набор инструментов и архитектуру приложений, в которой собраны многие из лучших функций таких фреймворков, как CodeIgniter, Yii, ASP.NET MVC, Sinatra, Ruby on Rails и так далее.

Ниже представлен график, наглядно демонстрирующий рост популярности Laravel (источник – Google Trends). Максимальное значение (100) обозначает максимальную популярность технологии. Значение 50 говорит о том, что технология стала на 50% менее популярна, а значение 0 – о том, что популярность технологии снизилась до 1%. Все это актуально и для графиков популярности других фреймворков.

Рост популярности Laravel
(источник – Google Trends)

Большинство PHP-фреймворков используют парадигму разделения MVC (с англ. Model-View-Controller – Модель-Вид-Контроллер). Если вы когда-либо работали с одним из вышеупомянутых инструментов или знакомы с MVC, освоить Laravel 5 (самая последняя версия фреймворка) не составит труда.

  1. CodeIgniter

Как и Laravel, CodeIgniter основан на шаблоне MVC. Это такой подход к разработке ПО, который разделяет логику приложения от представления. На практике это позволяет снизить к минимуму количество сценариев на странице, поскольку представление отделено от выполнения сценариев на PHP.

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

Рост популярности CodeIgniter
(источник – Google Trends)

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

  1. Symfony

В то время как многие другие фреймворки лишь следуют правилам MVC, Symfony это фреймворк, у которого MVC лежит в основе. Возможно, это одна из причин, по которым фреймворк Laravel и такая система управления контентом (CMS), как Phpbb, переняли у Symfony многие компоненты и стали идти по его стопам.

Стандарты Symfony позволяют проще обрабатывать ошибки и писать высококачественный код. С каждым годом его сообщество растет. Symfony это передовой PHP-фреймворк, в основе которого лежат компоненты. Он позволит вам создавать качественные сайты и веб-приложения.

Рост популярности Symfony
(источник – Google Trends)

Symfony 3 это набор изолированных и многоразово используемых компонентов, на базе которых в свое время были созданы PHP-приложения премиум класса, такие как Drupal и phpBB.

PHP-фреймворк – рассказываем о лучших из них в 2017 году

  1. Yii 2

Yii – это фреймворк обобщенного веб-программирования. Это значит, что он легко подходит для PHP-программирования для различных видов веб-приложений. Благодаря компонентной архитектуре и поддержке усовершенствованного кэширования он особенно хорош для создания крупномасштабных приложений. Например, вы сможете создавать порталы, форумы, интернет-магазины, системы управления контентом (CMS), веб-служб RESTful и так далее.

В Yii используется архитектурная модель MVC, поэтому и организация кода осуществляется на базе этого подхода.

Рост популярности Yii
(источник – Google Trends)

Yii 2 это комплексный PHP-фреймворк, который предоставляет большое количество заслуживающих доверия и готовых к работе функций. Среди них построители запросов и шаблон ActiveRecord для различных баз данных (в частности, реляционных и NoSQL), поддержка разработки веб-API RESTful, поддержка кэширования в несколько уровней и так далее.

  1. Nette

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

Nette это современный PHP-фреймворк, который поддерживает такие технологии, как AJAX / AJAJ, внедрение зависимостей, KISS, MVC, SEO, cool URL и Web 2.0.

Рост популярности Nette
(источник – Google Trends)