Php

Php пишем свой фреймворк на: Как написать свой фреймворк на php. Урок 1

Содержание

Пишем PHP фреймворк, модель MVC (4%) | Кодинг

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

Естественно за основу будет взята модель MVC. В веб программировании MVC — самая, на мой взгляд, «правильная» модель архитектуры.

Теория

Итак что такое MVC?
MVC это вид архитектуры в которой приложение разделено на три основных компонента:

  • Model — отвечает за непосредственные алгоритмы, расчёты и тому подобное внутреннее устройство системы.
  • View — отвечает за отображение информации, поступающей из системы или в систему.
  • Controller — является связующим звеном между «представлением» и «моделью» системы, посредством которого и существует возможность произвести разделение между ними. Контроллер получает данные от пользователя и передаёт их в «модель». Кроме того, он получает сообщения от модели, и передаёт их в «представление».

Казалось бы, а зачем нужен такой подход? Но он нужен для того чтобы ваше приложение могло элементарно расширятся/изменятся/поддерживатся. Т.е захочу я изменить что то в выводе, я меняю шаблон, а весь остальной код продолжает работать без изменений. Вообще это сложно описать, это надо скорее «прочувствовать», понять все плюсы.

Наш фреймворк

Скачал программку специальную  «Diagram Designer» чтоб схемку нарисовать. Пару часов еб… мучался, рисовал. И каково же было мое удивление когда я, почти закончив, обнаружил, что это был триал проги, и в триале стоит ограничение на максимальное количество созданных объектов…. Как так… И не сохранить нормально и не доделать… Вообщем сделал пару принтскринов вставил в паинт и дорисовал уже там. Но блин обидно, неужели нельзя было сразу предупредить о том что прога — триал и с такими злыми ограничениями.

Вообщем вот схема, которую я набросал, с архитектурой нашего будущего фреймворка:

Кстати, обратите внимание, это хорошая иллюстрация взаимодействия компонентов в архитектуре MVC.

Что содержит эта схема:

  • Dispatcher — основной класс/ядро системы, будет запускать контроллер, передавать необходимые параметры в контроллер и на выходе рендерить готовое представление в браузер пользователю
  • Router — та хрень/часть кода/класс/etc которая будет определять какой именно контроллер необходимо запустить
  • Controller — action-ы сгруппированные в один модуль по какому либо признаку (например работа с пользователем) будут называться отдельным контроллером
  • Action — некое действие которое захотел выполнить наш юзер в нашем веб приложении (метод контроллера)
  • Драйвер БД — некая библиотека через которую мы будет обращаться к БД (чтобы можно было элементарно сменить тип БД)

Все остальное, надеюсь, понятно.

1.3. Собираем наш PHP фреймворк

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

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

Паттерны (Patterns)

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

  • Модель-Вид-Контроллер (MVC, Model-View-Controller)
  • Реестр (Registry)
  • Еденичный класс (Singleton)

Модель-Вид-Контроллер (MVC)

MVC — это основа нашего фреймворка, предоставляет нам решение для разделения пользовательского интерфейса и логики нашего приложения. Пользовательский интерфейс (View) взаимодействуют с моделями данных (Model), используя контроллеры (Controller), которые в свою очередь содержат необходимую бизнес логику для управления данными в моделях.

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

Мы будем использовать свой фреймворк и сможем расширять возможности на основе MVC. Как описывалось ранее данные представлены в моделях, сами данные распалагаются в базе данных. Однако модели и таблицы в базе данных находятся в одинаковом формате (поля в моделях совпадают с полями в таблицах). Так что мы можем расширить нашу даиграму MVC. Мы также видем конечный результат, который обрабатывается в View отображается в браузере, так что добавим и его в диаграму.

Реестр (Registry)

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

  • Запросы к БД
  • Проверка авторизовался пользователь для получения нужной информации
  • Отправка данных на View (управления шаблонами)
  • Отправка емайлов, например при покупке товара на сайте
  • Взаимодействие с файловой системой, например загрузка фотографий для товаров.

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

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

Единичный класс (Singleton)

В русском языке сложно найти обозначение singleton, поэтому у нас будет Единичный класс, но в основном в документации пишут синглетон или просто на английском singleton. Возможно писать лучше на английском (наверняка, но у нас будет единичный класс).

Единичный класс – один из самых простых шаблонов для понимания. Основное назначение – гарантировать существование только одно экземпляра класса. Причиной обычно является следующее: требуется только один объект исходного класса и Вам необходимо, что бы объект был доступен в любом месте приложения, т.е. глобальный доступ.

Единичный класс используется, когда у класса только одно предназначение. Например, настраивать соединение с базой данных, чтобы остальные объекты могли взаимодействовать с БД.

Общая структура

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

  • Моделей
  • Видов (Чтобы мы могли интегрировать возможность переключать стили сайта в нашем фреймворке, так чтобы для одного стиля была отдельная папка)
  • Контроллеров (Чтобы мы могли хранить контроллер в отдельной папке, если мы захотим добавить функционал, нам нужно было только добавить новую папку с контроллером)
  • Контроллера админа (мы создаем не только фреймворк, но и CMS, поэтому нужно предусмотреть, чтобы информацию на сайт могли вносить модераторы и админы)
  • Реестра
  • Объектов реестра
  • Загружаемых файлов
  • Сторонних библиотек
  • Другого кода

Принимая во внимание структуру фреймворка папки нашего фреймворка должны быть такими  (мы будем использовать английские названия папок, потому что так принято в PHP):

  • Models
  • Views
    • View A
    • Templates
    • Images
    • JavaScript
  • Controllers
    • Controller A
      • ControllerA
      • ControllerAAdmin
  • Registry
  • Assets
  • Uploads
    • To be expanded when we add products and images to our framework!
  • Libraries
  • Miscellaneous

 

 

Это легко для разработчиков, PHP, чтобы создать собственный фреймворк?

Я хотел бы создать сайт, похожий на imdb.com. Использует ли imdb.com какой-либо фреймворк? если да, то какой фреймворк он использует? Иначе развиваются ли они сами по себе? Легко ли нормальному разработчику PHP создать свой собственный фреймворк php?

frameworks

imdb

Поделиться

Источник


Dhanasekaran    

03 ноября 2013 в 14:31

3 ответа


  • Написать свой собственный javascript и использовать фреймворк Yii PHP?

    Я изучаю фреймворк Yii PHP для нового проекта, но после нескольких демонстраций и проверки кода я замечаю, что все javascript генерируются с помощью функций Yii. Есть ли в любом случае, чтобы отменить это? Я действительно хочу иметь возможность написать свой собственный javascript для разделов…

  • Используйте фреймворк Python или создайте свой собственный

    Я опытный разработчик PHP (10 лет), который построил 3 различных пользовательских фреймворка для сайтов с экстремально высоким трафиком. В последнее время я начал много заниматься программированием python, обычно просто для удовольствия (алгоритмы). Я начинаю разрабатывать новый сайт в качестве…



2

Как разработчик PHP:

  • У меня есть свой собственный фреймворк php, так что вы можете сказать, что это не так уж сложно; но сначала вы должны узнать, как работают другие фреймворки… И решите, что ваш фреймворк должен делать… С каким дизайном скороговорки вы согласны…
  • Большинство крупных веб-сайтов не использовали известные фреймворки или даже свои собственные фреймворки… В основном, используя множество библиотек… Потому что, когда вы используете фреймворк, вы кодируете быстрее, но тратите ресурсы впустую, как RAM, CPU IO/Disk…

Хорошо запрограммированное приложение-это то, которое использует 100% своего исходного кода, хорошо идти OOP, MVC… Но не так, как работает большинство фреймворков… Это то, что жизнь меньше рабочего времени вызывает менее качественный проект.

Поделиться


Mounir Ahmina    

03 ноября 2013 в 14:44



1

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

  1. Это отличная возможность для обучения, потому что вы
    многому научитесь.
  2. Я очень сомневаюсь, что это проблема для вас, но
    Если вы верите, что ваш фреймворк может быть иным и лучше в некотором
    роде, чем те, которые уже существуют, идите на это.

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

Поделиться


John    

03 ноября 2013 в 14:39



0

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

Вместо этого используйте хорошо известные решения с открытым исходным кодом, чтобы ошибки, скорее всего, были отсортированы и исправлены. Есть много таких, которые доступны даже для коммерческого использования. Просто выберите свой любимый: Symfony, Code Igniter или Kohana или что-то еще и начните создавать свое приложение сверху.

По состоянию на IMDB, вероятно, они используют фреймворк, но нет никакого способа сказать, что это такое.

Поделиться


Stefano Sanfilippo    

03 ноября 2013 в 14:39


  • php фреймворки-создайте свой собственный vs pre-made

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

  • Должны ли мы использовать фреймворк php или создать свой собственный?

    Некоторые общие сведения Я менеджер проектов в начинающей фирме. Эта фирма разрабатывает какое-то решение для парковки с помощью вашего мобильного телефона. Для этого мы сотрудничаем с фирмой IT,которая занимается программированием. Они разрабатывают приложение php и приложение (ы). Я учусь на…


Похожие вопросы:

PHP: включая файлы в мой собственный фреймворк MVC?

Я только начал создавать свой собственный фреймворк MVC. Приятно знать все с нуля и получать только то, что действительно необходимо для моего приложения. Я пришел из codeIgniter-го фона, который…

Мой собственный фреймворк PHP MVC предназначен только для обучения

Я большой поклонник Zend framework и каким-то образом изменил его по-своему. Я использую его уже около года, но мне все еще не хватает знаний о некоторых внутренних механизмах работы. Поэтому я…

Какой PHP MVC фреймворк для предприятия; CakePHP или Symfony?

Я собираюсь начать создавать огромное клиническое приложение для здравоохранения с PHP, и мне нужен совет по структуре. Мне нужно иметь возможность быстро создать прототип, поэтому важно, чтобы…

Написать свой собственный javascript и использовать фреймворк Yii PHP?

Я изучаю фреймворк Yii PHP для нового проекта, но после нескольких демонстраций и проверки кода я замечаю, что все javascript генерируются с помощью функций Yii. Есть ли в любом случае, чтобы…

Используйте фреймворк Python или создайте свой собственный

Я опытный разработчик PHP (10 лет), который построил 3 различных пользовательских фреймворка для сайтов с экстремально высоким трафиком. В последнее время я начал много заниматься программированием…

php фреймворки-создайте свой собственный vs pre-made

В настоящее время я создаю приложение в PHP и пытаюсь решить, использовать ли уже существующий фреймворк, такой как codeigniter, или создать свой собственный фреймворк. Приложение должно быть…

Должны ли мы использовать фреймворк php или создать свой собственный?

Некоторые общие сведения Я менеджер проектов в начинающей фирме. Эта фирма разрабатывает какое-то решение для парковки с помощью вашего мобильного телефона. Для этого мы сотрудничаем с фирмой…

На каком языке разработчиков писать приложения, не Треб. чтобы установить фреймворк?

На каком языке разработчиков писать приложения, не Треб. чтобы установить фреймворк? Инструмент / приложение, а не интернет, не Веб-страница windows

Подходящий Фреймворк Php Для Сайта Shopping Cart

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

Как начать с дополненной реальности, чтобы создать свой собственный фреймворк (не AR-приложение)

Я работаю над дополненной реальностью уже несколько месяцев. Я использовал сторонние инструменты, такие как Unity/Vuforia, для создания приложений дополненной реальности для android. Я хотел бы…

CMS или Фреймворк? Что выбрать? — Офтоп на vc.ru

{«id»:33985,»url»:»https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat»,»title»:»CMS \u0438\u043b\u0438 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a? \u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c?»,»services»:{«facebook»:{«url»:»https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat»,»short_name»:»FB»,»title»:»Facebook»,»width»:600,»height»:450},»vkontakte»:{«url»:»https:\/\/vk.com\/share.php?url=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat&title=CMS \u0438\u043b\u0438 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a? \u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c?»,»short_name»:»VK»,»title»:»\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435″,»width»:600,»height»:450},»twitter»:{«url»:»https:\/\/twitter.com\/intent\/tweet?url=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat&text=CMS \u0438\u043b\u0438 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a? \u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c?»,»short_name»:»TW»,»title»:»Twitter»,»width»:600,»height»:450},»telegram»:{«url»:»tg:\/\/msg_url?url=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat&text=CMS \u0438\u043b\u0438 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a? \u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c?»,»short_name»:»TG»,»title»:»Telegram»,»width»:600,»height»:450},»odnoklassniki»:{«url»:»http:\/\/connect.ok.ru\/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat»,»short_name»:»OK»,»title»:»\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438″,»width»:600,»height»:450},»email»:{«url»:»mailto:?subject=CMS \u0438\u043b\u0438 \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a? \u0427\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c?&body=https:\/\/vc.ru\/flood\/33985-cms-ili-freymvork-chto-vybrat»,»short_name»:»Email»,»title»:»\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443″,»width»:600,»height»:450}},»isFavorited»:false}

15 390

просмотров

Что выбрать для разработки фреймворк или CMS? Чем они вообще отличаются и какие преимущества и недостатки у фреймвоков и CMS.

Фреймворк от английского слова «каркас». Фреймворк — это надстройка над языком, набор библиотек. Хорошо отлаженных и прекрасно взаимодействующих между собой библиотек

CMS (Content Management System, система управления контентом)

CMS(ЦМС) – это, по сути, уже готовый сайт, который нужно донастроить под свои нужды.

Казалось бы, если фреймворк — это всего лишь набор библиотек, а CMS — это уже почти сайт, то к чему вообще этот глупый выбор? Но ведь если бы всё было так просто, то, очевидно, не было бы этой статьи и ты её не читал бы.

CMS значительно ускоряет разработку простого шаблонного сайта. У сайта сразу готова админка и её не надо писать отдельно, в отличии от разработки на фреймворке. Однако это скорость создания сайта достигается за счёт шаблонности, ограниченности или излишней универсальности CMS.

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

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

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

Используя CMS, мы привязываемся к структуре, созданной разработчиками, но в шаблонных решениях экономим время, а в нешаблонных, зачастую, прозябаем на форумах в поисках ответов на «как так».

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

Буду подводить итоги.

Скорость. Шаблонное решение можно создать очень быстро.

Готовая админка. На многих популярных CMS достаточно удобная и понятная админка

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

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

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

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

Сайт на CMS всегда уступает в производительности хорошо написанному сайту на фреймворке.

Плюсы фреймворка

Гибкость.Можно реализовать любую задумку без «войны» с движком

Производительность. Повторю: сайт на CMS всегда уступает в производительности хорошо написанному сайту на фреймворке

Минусы фреймворка

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

Отсутствие административной части. Раздел редактирования сайта нужно писать самому, а это, считай, ещё целый сайт.

Время. Разработка занимает больше времени, чем разработка с помощью CMS

Минусы решаются переиспользованием ранее написанного кода.

То есть написав одному клиенту админку, скорее всего, для следующего клиента ты возьмёшь её же и, если надо, доработаешь. Но это уже начинает превращаться в CMS!

Когда лучше подойдёт CMS

Шаблонное решение, которое покрывается возможностями CMS

Быстрое, временное или недолгосрочное решение

Для клиентов с небольшими бюджетами

Сайт ради сайта. Клиенту просто нужен сайт и он не знает зачем

Недостаточно опыта у разработчка

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

Нетиповой нешаблонный проект

Активно изменяющийся или подстраивающийся под тренды проект Достаточно опыта, чтобы написать качественно на фремворке

Как мы видим CMS не проиграла это сравнение в одни ворота.

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

Я намеренно не рассматривал использование чистого языка для разработки, потому что времени на велосипеды будет потрачено ещё больше, чем на разработку на фреймворке, а качество, скорее всего, будет так себе. Каждый программист хочет и, наверное, должен написать свой фреймворк или CMS, но с опытом приходит осознание того, что умные дядьки уже очень много полезного за тебя понаписали и можно этим пользоваться. Я, кстати, об этом писал уже в формате вредных советов https://t.me/it_programmist/55

Популярные cms WordPress Joomla Drupal Magento Bitrix Prestashop MODX OpenCart Все эти CMS написаны на PHP. Это далеко не весь список. CMS в основном пишутся на php из-за того, что их можно «воткнуть» куда угодно, хоть на самый дешёвый хостинг.

CMS других языках

taracot (nodeJS) KeystoneJS (nodeJS) Pelican (python) DjangoCMS (python) Refinery CMS (ruby) Riot (java) Популярные фреймворки YII (PHP) Synphony (PHP) Laravel (PHP) Zend (PHP) Kohana (PHP) Ruby on Rails (Ruby) Django (python) .NET (C #) Express (nodeJS) Koa (nodeJS) Spring (java) Конечно же это далеко не исчерпывающие списки. Каждый найдёт что-то по вкусу.

Лучшие. js- и. php-фреймворки — Вопросы на vc.ru

Голосуем за лучшие. js- и. php-фреймворки для бэкенда. Пишите в комментариях, почему тот или иной фреймворк лучше или популярнее, в каком стеке чаще всего используете и для чего.

Лучший PHP-фреймворк

Проще самому написать 🙂

Показать результаты

Переголосовать

Проголосовать

Лучший JS-фреймворк

Показать результаты

Переголосовать

Проголосовать

Если кого-то забыл упомянуть — напишите в комментариях.

4562

просмотров

{
«author_name»: «Платон Щукин»,
«author_type»: «self»,
«tags»: [],
«comments»: 29,
«likes»: 5,
«favorites»: 12,
«is_advertisement»: false,
«subsite_label»: «ask»,
«id»: 150420,
«is_wide»: true,
«is_ugc»: true,
«date»: «Fri, 14 Aug 2020 20:51:16 +0300»,
«is_special»: false }

{«id»:288369,»url»:»https:\/\/vc.ru\/u\/288369-platon-shchukin»,»name»:»\u041f\u043b\u0430\u0442\u043e\u043d \u0429\u0443\u043a\u0438\u043d»,»avatar»:»7a2a9626-c8f2-6e51-1488-f6add5df295f»,»karma»:701,»description»:»»,»isMe»:false,»isPlus»:false,»isVerified»:false,»isSubscribed»:false,»isNotificationsEnabled»:false,»isShowMessengerButton»:false}

{«url»:»https:\/\/booster.osnova.io\/a\/relevant?site=vc»,»place»:»entry»,»site»:»vc»,»settings»:{«modes»:{«externalLink»:{«buttonLabels»:[«\u0423\u0437\u043d\u0430\u0442\u044c»,»\u0427\u0438\u0442\u0430\u0442\u044c»,»\u041d\u0430\u0447\u0430\u0442\u044c»,»\u0417\u0430\u043a\u0430\u0437\u0430\u0442\u044c»,»\u041a\u0443\u043f\u0438\u0442\u044c»,»\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c»,»\u0421\u043a\u0430\u0447\u0430\u0442\u044c»,»\u041f\u0435\u0440\u0435\u0439\u0442\u0438″]}},»deviceList»:{«desktop»:»\u0414\u0435\u0441\u043a\u0442\u043e\u043f»,»smartphone»:»\u0421\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b»,»tablet»:»\u041f\u043b\u0430\u043d\u0448\u0435\u0442\u044b»}},»isModerator»:false}

Самые популярные PHP-фреймворки 2020 года

Автор:

Елизавета Гуменюк

Просто люблю писать, переводить и давать людям возможность читать интересный контент. И пусть я не всегда идеальна — есть к чему стремиться!!!

Когда вы думаете о веб-разработке, помимо HTML, CSS и JavaScript, язык PHP — одно из имен, которое приходит на ум.

Вопреки распространенному мнению, PHP не умер. Он по-прежнему широко используется различными веб-сайтами, в том числе такими известными, как Facebook и Wikipedia.

По данным W3Techs, PHP используется примерно на 79% всех веб-сайтов. Он в восемь раз популярнее, чем ASP.NET, его ближайший конкурент в серверных языках программирования.

При этом стоит отметить, что доля использования PHP за последний год оставалась неизменной.

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

 

Что такое PHP-фреймворк?

 

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

 

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

 

Существует много веских причин для использования PHP-фреймворков вместо написания кода с нуля.

 

1. Более быстрая разработка

 

Поскольку PHP-фреймворки имеют встроенные библиотеки и инструменты, на разработку требуется меньше времени.

Например, фреймворк CakePHP имеет инструмент командной строки Bake, способный быстро создать любой скелет кода, который вам нужен в вашем приложении, а в несколько популярных PHP-фреймворков интегрирована библиотека PHPUnit для легкого тестирования.

 

2. Меньше кода для написания

 

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

 

3. Библиотеки для общих задач

 

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

 

4. Следование передовой практике программирования

 

PHP-фреймворки, как правило, следуют лучшим практикам кодирования. Например, они аккуратно делят код на несколько каталогов в соответствии с функцией.

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

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

 

5. Безопаснее, чем писать собственные приложения

 

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

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

 

6. Улучшенная командная работа

 

Проекты с несколькими разработчиками могут пойти не так, если нет ясности по следующим вопросам:

  • Документация
  • Дизайнерские решения
  • Стандарты кода

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

 

7. Проще в обслуживании

 

PHP-фреймворки поощряют рефакторинг кода и способствуют разработке DRY (не повторяйся. Полученная более компактная кодовая база требует меньшего обслуживания.

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

 

Что нужно знать перед использованием PHP-фреймворка

 

Первое, что вам нужно знать перед использованием PHP-фреймворка — это сам PHP! Если вы плохо владеете языком, вам будет сложно подобрать фреймворк. Большинство фреймворков работают с PHP версии 7.2 или более поздней.

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

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

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

Полезно понимать модель объектно-реляционного отображения (ORM). ORM — это метод доступа к данным базы данных с использованием объектно-ориентированного синтаксиса вместо использования SQL. Это означает, что вы можете писать запросы к базе данных на знакомом PHP, хотя могут быть случаи, когда вы захотите использовать SQL.

Многие фреймворки PHP имеют собственный встроенный ORM. Например, Laravel использует Eloquent ORM. Другие используют ORM с открытым исходным кодом, например, Doctrine.

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

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

 

Архитектура MVC

 

Фреймворки PHP обычно следуют шаблону проектирования «Модель-Представление-Контроллер» (MVC). Эта концепция отделяет манипулирование данными от их представления.

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

В двух словах: Модель — это данные, Представление — это внешний вид, а Контроллер — поведение.

Аналогией шаблона MVC является заказ коктейля в баре.

Пользователь — это посетитель, который приходит в бар (Представление) и хочет выпить что-то освежающее. Пользователь говорит свой заказ бармену (Контролеру).

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

  • Алкоголь
  • Фруктовый сок
  • Лед
  • Лимон
  • Стакан
  • Шейкер для коктейлей
  • Оливка
  • Мешалка

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

В терминах PHP-приложений MVC может соответствовать следующему:

  • Модель:база данных
  • Представление:HTML-страница или страницы
  • Контроллер:функции для доступа и обновления базы данных

Удобство использования интерфейса командной строки (CLI) помогает при использовании PHP-фреймворка. Laravel имеет свой собственный CLI, консоль Artisan. Используя команду make в Artisan, вы можете быстро создавать модели, контроллеры и другие компоненты для вашего проекта.

Знакомство с командной строкой также является ключом к использованию менеджера пакетов Composer PHP. Yii Framework — это один из нескольких фреймворков, использующих Composer для установки и управления зависимостями, пакетами, которые необходимы для запуска приложения.

Packagist — это основное хранилище пакетов, которые вы можете установить с помощью Composer. Некоторые из самых популярных пакетов Composer работают с фреймворком Symfony.

 

На что следует обратить внимание при использовании PHP-фреймворка?

 

Вот некоторые факторы, которые вы должны учитывать при выборе лучшего PHP-фреймворка для вашего проекта.

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

Далее, вам нужен фреймворк, который прост в использовании и экономит ваше время.

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

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

Вот некоторые желательные особенности:

  • Тестирование
  • Кэш-память
  • Механизм шаблонов: способ вывода PHP в HTML с помощью класса PHP
  • Безопасность

Если вам нужно создать масштабируемое приложение, выберите фреймворк, поддерживающий это.

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

 

Каковы лучшие PHP-фреймворки в 2020 году?

 

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

Ранние PHP-фреймворки включают PHPlib, Horde и Pear. Большинство громких имен появилось в 2005 году или позже.

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

 

Laravel

 

Laravel позиционируется как «PHP-фреймворк для веб-мастеров». Он был разработан Тейлором Отвеллом, которому нужен был фреймворк с элементами, которых не было в CodeIgniter, такими как аутентификация пользователя.

 

Краткие характеристики

 

Дата запуска: июнь 2011 г.

Текущая версия: 8, выпущена 8 сентября 2020 года.

Технические требования:

  • PHP >= 7.2.5 (или используйте Laravel Homestead)
  • Установлен Composer
  • Поддержка баз данных для MySQL 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+, SQL Server 2017+.

 

Плюсы Laravel

 

Начать работу с Laravel Homestead, готовой для вас виртуальной средой разработки, несложно.

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

Если вы являетесь пользователем Mac, у вас также есть возможность использовать Laravel Valet в качестве среды разработки. Кстати, Laravel Valet поддерживает Symfony, CakePHP 3, Slim и Zend, а также WordPress.

Laravel использует шаблонный движок под названием Blade. Одно из его преимуществ перед другими движками шаблонов заключается в том, что вы можете использовать PHP в Blade, чего не можете сделать с другими.

Packalyst, коллекция пакетов Laravel, содержит более 15 000 пакетов, которые вы можете использовать в своих проектах.

Laravel предоставляет ряд функций и методов безопасности, охватывающих следующие аспекты:

  • Идентификация
  • Авторизация
  • Проверка электронной почты
  • Шифрование
  • Хэширование
  • Сброс пароля

Eloquent ORM и Fluent Query Builder от Laravel защищают от атак SQL-инъекций, поскольку они используют привязку параметров PDO. Защита от подделки межсайтовых запросов (CSRF), использующая скрытый маркер формы CSRF, также включена по умолчанию.

Инструмент командной строки Artisan Console, который имеет Laravel, ускоряет разработку, позволяя разработчикам автоматизировать повторяющиеся задачи и быстро генерировать скелетный код.

Экосистема Laravel имеет несколько полезных инструментов, таких как Mix для компиляции CSS и JS активов, а также Socialite для аутентификации OAuth. Кроме того, Laravel пользуется преимуществами большого сообщества разработчиков (например, WordPress).

 

Symfony

 

Symfony — это одновременно PHP-фреймворк и набор PHP-компонентов для создания веб-сайтов.

 

Краткие характеристики

 

Дата запуска: октябрь 2005 г.

Текущая версия: 5.1.4

Технические требования:

  • PHP >= 7.2.5
  • Установлен Composer

 

Плюсы Symfony

 

Symfony — это отличный выбор для веб-сайтов и приложений, которые должны быть масштабируемыми. Его модульная компонентная система очень гибка и позволяет вам выбирать компоненты, необходимые для вашего проекта.

Symfony поддерживает большинство баз данных популярных PHP-фреймворков:

  • Drizzle
  • MySQL
  • Oracle
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • SQLServer

Лучший способ взаимодействия с вашими базами данных — через доктрину ORM. Symfony использует шаблоны отображения данных для отображения объектов в базу данных. Это позволяет разделить вашу объектную модель и схему базы данных, а это означает, что при изменении столбца базы данных вам не нужно вносить много изменений в кодовую базу.

Отладка проектов Symfony проста с помощью встроенной панели инструментов.

Symfony использует механизм шаблонов Twig, который прост в освоении, быстр и безопасен.

В Packagist насчитывается более 4000 пакетов Symfony, доступных для загрузки и использования.

Symfony имеет коммерческую поддержку от Sensio Labs. Это означает, что доступна профессиональная поддержка, в отличие от большинства других PHP-фреймворков. Он также имеет выпуски долгосрочной поддержки, которые рассчитаны на 3 полных года поддержки.

Кроме того, сообщество Symfony огромно, в нем активно участвуют более 600 000 разработчиков.

Среди известных имен, использующих компоненты Symfony в своих проектах, есть такие как Drupal, Joomla и Magento.

 

CodeIgniter

 

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

 

Краткие характеристики

 

Дата запуска: февраль 2006 г.

Текущая версия: 4.0.3

Технические требования:

  • PHP> = 7.2
  • Поддержка баз данных для MySQL, PostgreSQL, SQLite3

 

Плюсы CodeIgniter

 

CodeIgniter известен своей скоростью. Небольшой размер фреймворка (его размер для загрузки составляет 1,2 МБ) означает, что он не раздувается. Вы можете добавить именно те компоненты, которые вам нужны.

CodeIgniter является гибким: он поощряет разработку с использованием архитектуры MVC, но вы также можете кодировать приложения, отличные от MVC.

Фреймворк включает защиту от атак CSRF и XSS, а также контекстно-зависимое экранирование и политику безопасности контента.

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

 

Zend Framework / Laminas Project

 

Zend Framework — это давно зарекомендовавший себя PHP-фреймворк, который сейчас переходит в Laminas Project. Настоятельно рекомендуется перейти на Laminas, поскольку Zend больше не обновляется.

Laminas Project состоит из 3 частей:

  • Laminas Components иMVC
  • Mezzio
  • Laminas API Tools

 

Краткие характеристики

 

Дата запуска: март 2006 г.

Текущая версия: 3.0.0 (Zend) или 1.3.0 (Laminas)

Технические требования:

  • PHP> = 5.6 (Zend) или> = 7.3 (Laminas)
  • Установлен Composer
  • Поддержка баз данных для MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite и Informix Dynamic Server.

 

Плюсы Zend / Laminas

 

Zend Framework имеет более 570 миллионов установок.  Это также наиболее часто используемый предприятиями PHP-фреймворк.

Zend следует стандартам PHP Framework Interop Group (PHP-FIG), что означает, что его код может быть без труда перенесен на другие платформы.

Как и в Symfony, вы можете использовать только те компоненты, которые вам нужны.

Вы можете использовать Zend для создания RESTful API.

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

 

Yii (Фреймворк)

 

Название этого фреймворка, Yii, на китайском языке означает «простой и эволюционный». Это также означает «Да, это так! (Yes, It Is!)».

 

Краткие характеристики

 

Дата запуска: декабрь 2008 г.

Текущая версия: 2.0.35

Технические требования:

  • PHP> = 5.4.0, рекомендуется 7+
  • Установлен Composer
  • Поддержка баз данных для баз данных SQLite, MySQL, PostgreSQL, MSSQL или Oracle

 

Плюсы Yii

 

Вы можете начать работу с Yii за считанные минуты. Документация хорошо написана и проста в использовании.

Yii Framework имеет несколько мер безопасности, таких как хеширование паролей bcrypt, шифрование, аутентификация и авторизация. В документации предлагаются передовые методы предотвращения атак SQL-инъекций, XSS и CSRF.

Генератор кода Gii может быстро построить скелет кода для вас, экономя время.

Yii поддерживает четыре типа кеширования для ускорения работы веб-приложений: кэширование данных, кеширование фрагментов, кеширование страниц и кеширование HTTP.

Вы даже можете запускать сторонний код в проектах Yii.

 

CakePHP

 

CakePHP обеспечивает быструю и чистую разработку PHP.

 

Краткие характеристики

 

Дата запуска: апрель 2005 г.

Текущая версия: 4.1.1

Технические требования:

  • PHP 7.2 (минимум), рекомендуется 7.4
  • HTTP-сервер с предпочтительным mod_rewrite
  • Поддержка баз данных для MySQL 5.6+, MariaDB 5.6+, PostgreSQL 9.4+, SQLite 3.8, SQL Server 2012+.

 

Плюсы CakePHP

 

Конфигурация минимальная. Вам не нужно возиться с файлами XML или YAML. После настройки базы данных можно начинать кодирование.

CakePHP имеет собственную встроенную ORM, которая понятна и проста в использовании.

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

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

Github содержит полезный список ресурсов и плагинов CakePHP.

 

Slim

 

Slim — урезанный, гибкий микро PHP-фреймворк, созданный Джошем Локхартом. Он фокусируется на получении HTTP-запроса, вызове обратного вызова и возврате HTTP-ответа.

 

Краткие характеристики

 

Дата запуска: сентябрь 2010 г.

Текущая версия: 4.5.0

Технические требования:

  • PHP 7.2 +
  • Веб-сервер с перезаписью URL

 

Плюсы Slim

 

Кодовая база Slim компактна, поскольку не имеет сторонних зависимостей. В результате все происходит очень быстро.

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

Slim легко выучить и понять. Вы можете запустить приложение «Hello World» за считанные минуты.

Slim оценивается разработчиками как лучший PHP-фреймворк на сайте сравнения Slant.

 

Phalcon

 

Phalcon — это PHP-фреймворк, созданный для скорости работы. Он поставляется как расширение веб-сервера, написанное на Zephir и C. Знание C не требуется. Кодеры работают с классами PHP и пространствами имен, которые создает фреймворк.

 

Краткие характеристики

 

Дата запуска: ноябрь 2012 г.

Текущая версия: 4.0.6

Технические требования:

  • Расширение PSR
  • PHP 7.2 + (рекомендуется последняя версия)

 

Плюсы Phalcon

 

Phalcon разработан для быстрой работы, так как имеет следующие особенности:

  • Низкоуровневая архитектура.
  • Единовременная загрузка Zephir, расширений C и PHP.
  • Код компилируется, а не интерпретируется, поэтому он выполняется быстрее.
  • Резидентная память, что означает, что она может быть вызвана всякий раз, когда это необходимо.
  • Не использует чтение файлов и статистику файлов, в отличие от большинства других PHP-фреймворков, что приводит к повышению производительности.

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

Компонент безопасности Phalcon помогает с хешированием паролей и защитой от CSRF.

Механизм шаблонов Phalcon, Volt, чрезвычайно быстр и поставляется с вспомогательными классами для легкого создания представлений.

 

FuelPHP

 

FuelPHP — это управляемый сообществом PHP-фреймворк с более чем 300 участниками на протяжении всего срока его существования.

Краткие характеристики

Дата запуска: июнь 2011 г.

Текущая версия: 1.8.2

Технические требования:

  • PHP 5.4+
  • Любой веб-сервер
Плюсы FuelPHP

FuelPHP использует MVC, но также поддерживает HMVC (Иерархические «Модель-Представление-Контроллер»). Это добавляет еще один уровень между контроллером и представлением. Преимущества шаблона проектирования HMVC заключаются в следующем:

  • Лучшая организация кода
  • Большая модульность
  • Более расширяемый
  • Поощряет повторное использование кода

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

  • Кодировка вывода
  • CSRF защита
  • Фильтрация ввода, URI и XSS
  • Экранирование пользовательского ввода, переданного в операторы SQL

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

FuelPHP ORM является мощным и в то же время легким.

Fat-Free Framework

Как и Slim, Fat-Free Framework (F3) — это микро-фреймворк. Он направлен на достижение баланса между полезными функциями, простотой, удобством использования и скоростью.

Краткие характеристики

Дата запуска: 2009 г.

Текущая версия: 3.7.2

Технические требования:

  • PHP 5.4+
  • Любой веб-сервер
  • Поддержка баз данных для MySQL, SQLite, MSSQL / Sybase, PostgreSQL и MongoDB.
Плюсы Fat-Free Framework

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

С Fat-Free Framework очень легко разобраться. Для начала не нужно использовать Composer или инжектор зависимостей. Вы можете создать приложение Hello World за считанные минуты.

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

Документация ясна и проста для понимания, с множеством примеров. Fat-Free Framework предлагает выбор механизма шаблонов: вы можете использовать PHP, собственный механизм шаблонов F3 или другие, такие как Smarty или Twig.

Какой фреймворк PHP лучше всего подходит для начинающих?

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

Yii был бы лучшим выбором для начинающих. Документация Yii проведет вас через создание приложения для просмотра стран, расскажет о шаблоне MVC и о том, как работать с базами данных на этом пути.

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

Slim устанавливается быстро и легко и у него есть руководство для версии 3. К сожалению, он не был обновлен для текущей версии 4.

Для Fat-Free Framework у вас есть выбор: установить его через Composer или просто загрузить и распаковать zip-файл. Фреймворк настраивается с помощью простой программы «Hello, world».

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

CodeIgniter также имеет довольно простую настройку с хорошей документацией.

В заключение

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

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

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

Всем успешной работы и творчества!

Источник

Что такое yii2 и стоит ли его выбирать | GeekBrains

Разбираемся в структуре PHP-фреймворка, анализируем преимущества и недостатки

https://d2xzmw6cctk25h.cloudfront.net/post/2383/og_image/9009e4b8ff4cc4ad45e88a8e21532550.png

Yii2 — объектно-ориентированный компонентный фреймворк для PHP, реализующий парадигму MVC (Model-View-Controller). Yii является акронимом от “Yes It is”, на русском пишется и читается как “йии”. Yii2 является второй версией фреймворка Yii. Забегая вперёд, замечу, что Yii3 ждет релиза в 2020 году. 

Немного истории

Свою историю Yii начал 1 января 2008 года. Это был проект по исправлению некоторых изъянов фреймворка PRADO (PHP Rapid Application Development Object-oriented). В свою очередь, PRADO был попыткой перенести ASP.NET на PHP. Затем Цян Суэ понял, что PHP-фреймворк должен быть устроен немного по-другому и спустя 10 месяцев закрытой разработки вышла первая альфа-версия. Релиз Yii 1.0 состоялся 3 декабря 2008.

Вторая версия Yii под номером 2.0.0 увидела свет 12 октября 2014 года, эта дата считается датой релиза. 

Что нужно знать

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

  • PHP — на уровне новичка. Достаточно знать немного о классах, наследованиях, немного о методах. Например, я сначала познакомился с Yii1, а только потом с PHP. Да, Yii очень прост в начале освоения. 
  • jquery — базовые основы. Нет, я не опечатался, именно jquery, с учётом того, что yii2 вышел в свет в октябре 2014 года, тогда jQuery был очень популярным. jQuery встроен в Yii2.
  • HTML + CSS. Yii2 подразумевает написание веб-сайта, HTML+CSS — это то, что оформит внешний вид вашего сайта. В Yii2 также встроена поддержка фреймворка Bootstrap, поэтому с отрисовкой симпатичных элементов страницы проблем не будет.  
  • Важно понимать следующее: после получения запроса от клиента, сервер выдаёт ответ обратно и ждёт нового запроса, уничтожая всё, что хранилось в оперативной памяти для формирования ответа.

Чем удобен Yii2

Yii2 создавался будто бы для разработчиков с небольшим опытом. Создатели его побеспокоились о том, чтобы понять базовые принципы работы было максимально просто. В Yii2 существует два заготовленных шаблона: Advanced и Basic.

Шаблоны yii2

Шаблон basic

Basic — простой шаблон, удобен для совсем небольших проектов, таких как блог или информационный сайт. Шаблон оснащён заготовкой из нескольких динамически генерируемых страниц, код которых разделен согласно парадигме MVC. Кстати, парадигма эта подробно рассматривается на курсе архитектуры веб-приложений. 

Также в шаблоне присутствует заготовка для реализации консольных запросов. Структура директорий следующая:  

Шаблон advanced

Шаблон advanced состоит из четырёх базовых компонентов. Три из них можно назвать полноценными приложениями. 

  • Backend — приложение в котором принято описывать логику бэк-офиса. Например, админку для интернет-магазина.
  • Frontend — приложение для «лицевой части», например, витрина интернет-магазина. 
  • Common — компонент, реализующий связку между Backend и Frontend.
  • Console — приложение для запуска консольных скриптов. Необходимая вещица сегодня, поскольку консольный компонент позволяет выполнять долгие задачи в фоне. 

Приложения Backend и Frontend можно располагать как на разных доменах (admin-example.com и example.com), так и на одном домене, но в разных уровнях (admin.example.com и example.com). Получается что, имея один шаблон, вы получаете два сайта, логически разделённых между собой, но имеющих общее в компоненте common. Это удобно для использования в проектах любой сложности.

Ниже представлена структура директорий шаблона advanced

Полезные фишки Yii2

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

Gii

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

Yii2-debug

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

Как видно на скриншоте, мы можем заглянуть в различные разделы работающего приложения. Можем посмотреть очередь запросов в БД, различные логи и события, узнать информацию об аутентифицированном пользователе, посмотреть поток загрузки приложения — и это ещё не всё. Очень важно отключать yii2-debug на продакшене, либо включать его только для определённых ip-адресов. yii2-debug демонстрируют очень важную техническую информацию, которую нельзя показывать посетителям сайта. 

Сильные и слабые стороны 

Как и любая сущность на планете, yii2 имеет свои слабые и сильные стороны. Рассмотрим наиболее яркие из них.

Сильные стороны

  • Фреймворк прост в понимании. 
  • Легко адаптируется под большие и маленькие проекты.
  • Имеет большое количество решений рутинных задач из коробки. К примеру, шаблон advanced  обладает механизмом авторизации и аутентификации. Это довольно нужный механизм и он не очень прост в реализации.
  • Имеет замечательную документацию, гайды по старту и различные рецепты.
  • Yii2 популярен и довольно стар (релиз-то был аж в 2014 году), поэтому на рынке в много вакансий yii2-разработчиков, а с помощью развитого сообщества ответы на 90% вопросов вы найдете при легком гуглеже.
  • С помощью шаблонов и gii фреймворк подсказывает начинающему разработчику, как правильно располагать файлы. Сначала разработчик начинает повторять за тем, как это сделано в фреймворке, а потом понимает почему это хорошо. Разработчики фреймворка будто делятся опытом с новичком.

Слабые стороны

  • Наличие различных антипаттернов в проекте — например, одиночка или божественный объект. 
  • Встроенный класс User, являющийся потомком от ActiveRecord, показывает, как делать не нужно. Учит начинающих программистов, что классы, наследуемые от ActiveRecord, нужно раздувать различными методами, не связанными с работой с БД. 
  • Сильная связность модулей в приложении. Говорят, эта проблема в Yii3 будет решена
  • Медленное развитие. 

Каждый, кто работал с yii2 может назвать другие сильные и слабые стороны, но я хочу выделить именно эти. Из-за низкого порога входа приходится мириться со слабыми сторонами. Yii2 действительно хорош, чтобы с него начать свою карьеру. Наличие антипаттернов оправдано, когда речь идёт о простоте использования и поддержания. 

Что, если не yii2

Yii2 — не единственный фреймворк для PHP. Сейчас популярны и другие:

Laravel

Laravel — основной конкурент, альтернатива yii2 на российском рынке труда. Laravel активнее развивается. Обладает своими плюсами и минусами. Может покрывать те же потребности, что и yii2. С Laravel можно познакомиться, обучаясь профессии PHP-разработчик. 

Yii3

Yii3 — это следующая версия Yii, находится в стадии разработки. Перейти со второй версии на третью будет проблематично. Проект кажется перспективным, но из-за того, что он очень долго разрабатывается, это может стать последней версией фреймворка. Согласно википедии, на текущий момент реализованы следующие нововведения:

  • поддержка различных СУБД Redis, MongoDB;
  • оформление кода по PSR;
  • использование версионирования SemVer;
  • DDD-совместимость;
  • отделение консоли от веба;
  • разбиение на части, которые можно использовать отдельно;
  • строгая типизация;
  • SOLID;
  • убийство иерархии классов;
  • убийство большинства wrapper-расширений;
  • отказ от нестандартных объектов;
  • Swoole / RoadRunner.

Symfony

Symfony — более низкоуровневый фреймоврк. В отличии Yii2 или Laravel, Symfony не является RAD-фреймворком. Для комфортного использования Symfony нужно хорошо знать PHP, понимать и уметь применять принципы SOLID, обладать сравнительно большим опытом.

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

Нужно понимать, что все возможности перечисленных фреймворков ограничены возможностями PHP. Один и тот же сайт можно написать как на Symfony, так и на Yii2 или Laravel. Разница будет в количестве труда, затраченного на написание/поддержку (читай, в бюджете).

Вместо резюме

Я очень люблю Yii2, 90% моих проектов было написано на Yii2/Yii. Yii2 — действительно быстрый, безопасный и лёгкий в понимании фреймворк, но, к сожалению, скорость развития всего проекта Yii как такового оставляет желать лучшего. У разработчиков грандиозные идеи для Yii3, но Laravel развивается куда быстрее. А сейчас, как говорил Кролик из «Алисы в стране чудес», приходится бежать со всех ног, чтобы только остаться на том же месте. Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее!

Было время, когда Yii2 был самым востребованным PHP-фреймворком в России. Как сейчас обстоят с этим дела, не знаю, но догадываюсь, что Laravel скоро отберёт пальму первенства по востребованности, если уже не отобрал. Мы в GeekBrains уже не преподаём Yii2, но на факультете веб-разработки вы сможете обучиться навыкам работы с Laravel. И если после этого вам придётся работать с Yii2, то вы адаптируетесь к нему без особых проблем.

обучения — Где и когда начать писать свой собственный PHP-фреймворк?

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

Например, команда, которая создает веб-приложения, может выпустить свою кодовую базу в качестве фреймворка (krakenjs, rails, django и т. Д.). Команда, разрабатывающая веб-сайты, может выпустить свою базу sass / less в качестве фреймворка (bootstrap, foundation).Создание фреймворка без предварительного создания реальных приложений — это просто ставить телегу впереди лошади ИМО.

«Дэвид Хайнемайер Ханссон извлек Ruby on Rails из своей работы над
Basecamp, инструмент управления проектами от 37signals (теперь веб-
компания-приложение). »- http://en.wikipedia.org/wiki/Ruby_on_rails#History

«Django органически вырос из реальных приложений, написанных командой веб-разработчиков в> Лоуренсе, Канзас, США» — http://www.djangobook.com/en/2.0 / chapter01.html # django-s-history

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

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

Список литературы можно найти здесь: http: // www.island-data.com/bookreviews/oobooks.html Затем попробуйте смоделировать небольшие приложения, например, если вам нравятся животные, вы можете начать с классического Animal / Dog / Cat (http://www.inf.ed.ac. uk / Teach / курсы / inf1 / op / Lectures / pub / 07-poly.handout-2×2.pdf), прокладывая свой путь к PetStore. Выберите приложение, которое вас интересует, и приступайте к созданию.

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

Веб-разработка

— имеет ли смысл избегать фреймворка при создании большого веб-приложения с помощью PHP?

Еще была презентация разработчиков Django, которую я сейчас не могу найти, но они говорят о «долине эффективности», когда фреймворк делает вас более продуктивным.

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

Спустя короткое время вы поймете условности, и именно здесь фреймворки действительно сияют — внезапно ваша продуктивность зашкаливает, и вы прогрессируете и с поразительной скоростью разрабатываете.

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

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

Таким образом, для небольших проектов (по моему опыту, все до ~ 500 часов) ваша эффективность с фреймворком, вероятно, будет больше, чем ваша эффективность без. Как только вы достигнете определенного порога (от 500 до 800 часов, IME), вы начнете понимать, что существуют ограничения на то, что может предложить фреймворк.

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

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

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

Самым большим преимуществом создания собственного фреймворка является гибкость .

  • Вы выбираете только то, что вам нужно
  • Вы сами решаете, как все работает

Вот краткий обзор того, что вам нужно и что выбрать:

Перво-наперво, нам нужен способ обрабатывать предстоящие запросы и производить правильные ответы. Чтобы сделать нашу структуру еще лучше, было бы здорово иметь реализации интерфейсов сообщений HTTP PSR-7. К счастью, для этого есть пакет. Я бы предложил zendframework / zend-diactoros. Он поставляется с фабрикой для создания запросов из глобальных объектов, а также из переданных параметров.Он также предоставляет реализации для различных типов ответов. Кроме того, он дает вам так называемый «эмиттер» для вывода ответа в браузер.

Вы можете посмотреть его репозиторий здесь.

Теперь мы хотим запускать наш код в зависимости от запрошенного URL. Для этого нам понадобится роутер. Хорошие новости! Существует множество решений для маршрутизации. Я выделил некоторые из них здесь:

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

Затем мы достигли нашего кода и успешно его выполнили. У нас есть данные для вывода в браузер. Однако нам нужен шаблонизатор, чтобы подготовить для нас HTML. В Интернете может быть больше шаблонизаторов, но я выбрал следующие:

Честно говоря, я не фанат Twig, но, поскольку он настолько популярен, я включил его в список. Smarty — старый шаблонизатор. Я включил его в список просто из уважения.Наконец, мне очень нравятся пластины.

Plates — это встроенная система шаблонов PHP, которая быстра, проста в использовании и легко расширяется. Он вдохновлен превосходным механизмом шаблонов Twig и стремится привнести современные функции языка шаблонов в собственные шаблоны PHP. Plates разработан для разработчиков, которые предпочитают использовать собственные шаблоны PHP вместо скомпилированных языков шаблонов, таких как Twig или Smarty.

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

Так как я фанат DDD, я бы выбрал Doctrine 2. На первый взгляд, ORM кажется довольно сложным, но в то же время он довольно мощный и позволяет работать с базой данных в Object. -Ориентированный путь.

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

Я бы пошел с Aura.Di. Он прост в использовании, но в целом мощный.

Мы определенно хотим покрыть наши приложения как модульными, так и интеграционными тестами. Для этого нам понадобятся PHPUnit и Behat соответственно.

Очевидно, что не всегда нужно создавать собственный фреймворк с нуля. Все зависит от ваших потребностей. Если вам нужен быстрый MVP, то Laravel идеально подходит для этого.Если вам нужен простой API-сервис, Slim есть что предложить. Однако, если вы хотите создать огромное корпоративное приложение, возможно, вы захотите рассмотреть свой собственный фреймворк.

Самые популярные PHP-фреймворки для использования в 2021 году

Когда вы думаете о веб-разработке, помимо HTML, CSS и JavaScript, язык PHP — одно из имен, которое приходит на ум.

Вопреки распространенному мнению, PHP не умер. Он по-прежнему широко используется сайтами, в том числе такими известными, как Facebook и Wikipedia.

По данным W3Techs, PHP используется примерно на 79% всех веб-сайтов. Он в восемь раз популярнее, чем ASP.NET, его ближайший конкурент в серверных языках программирования.

Доля использования

PHP оставалась неизменной за последний год.

Историческое использование PHP

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

Что такое фреймворк PHP?

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

Зачем использовать PHP Framework?

Есть много веских причин для использования фреймворков PHP вместо написания кода с нуля.

1. Более быстрое развитие

Поскольку фреймворки PHP имеют встроенные библиотеки и инструменты, время, необходимое для разработки, меньше.

Например, в структуре CakePHP есть инструмент командной строки Bake, который может быстро создать любой скелетный код, который вам нужен в вашем приложении.

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

2. Меньше кода для записи

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

3. Библиотеки для общих задач

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

4. Следуйте надлежащей практике кодирования

Фреймворки

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

Структура каталогов Symfony по умолчанию

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

Фреймворки

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

5. Безопаснее, чем писать собственные приложения

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

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

6. Лучшая работа в команде

Проекты с несколькими разработчиками могут пойти не так, если нет ясности относительно:

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

7. Легче обслуживать

Фреймворки

PHP поощряют рефакторинг кода и способствуют разработке СУХОЙ (Don’t Repeat Yourself). В результате получается более компактная кодовая база, требующая меньшего обслуживания.

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

PHP еще далеко не мертв. 💀 Фактически, им пользуются около 79% всех веб-сайтов! 🤯 Узнайте больше о фреймворках PHP в этом руководстве ⤵️Нажмите, чтобы написать в Твиттере

Что нужно знать перед использованием PHP-фреймворка

Первое, что вам нужно знать перед использованием PHP-фреймворка, — это сам PHP! Если вы плохо владеете языком, вам будет сложно подобрать фреймворк.Большинство фреймворков работают с PHP версии 7.2 или новее.

Если вам нужно освежить свой PHP, прочтите эти статьи:

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

Также необходимо знать объектно-ориентированный PHP, поскольку большинство современных PHP-фреймворков объектно-ориентированы. Убедитесь, что вы понимаете такие концепции, как классы, объекты, наследование, методы, черты и модификаторы доступа.

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

Понимание модели объектно-реляционного сопоставления (ORM) полезно. ORM — это метод доступа к данным базы данных с использованием объектно-ориентированного синтаксиса вместо использования SQL. Это означает, что вы можете писать запросы к базе данных на знакомом PHP, хотя могут быть случаи, когда вы захотите использовать SQL.

Многие PHP-фреймворки имеют собственный встроенный ORM. Например, Laravel использует Eloquent ORM. Другие используют ORM с открытым исходным кодом, например Doctrine.

Полезно понять, как работают веб-серверы, такие как Apache и Nginx. Возможно, вам потребуется настроить файлы на сервере, чтобы ваше приложение работало оптимально.

Вы, вероятно, будете выполнять большую часть своей разработки локально, поэтому вам также нужно знать о localhost. Другой вариант — создать и протестировать ваше приложение в виртуальной среде с помощью Vagrant и VirtualBox.

Архитектура контроллера представления модели

Фреймворки

PHP обычно следуют шаблону проектирования Model View Controller (MVC).Эта концепция отделяет манипулирование данными от их представления.

Процесс контроллера представления модели (Источник изображения: Wikimedia Commons)

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

Вкратце, Модель — это данные, Представление — это внешний вид, а Контроллер — это поведение.

Аналог шаблона MVC — заказ коктейля в баре.

Пользователь — это посетитель, который приходит в бар (Вид), нуждаясь в освежении. Пользователь отдает заказ на напитки бармену (контролеру).

Контроллер формирует заказ от Модели — рецепт, ингредиенты и оборудование. В зависимости от коктейля они могут использовать любые из следующих или других предметов:

  • Спирт
  • Фруктовый сок
  • Лед
  • Лимон
  • Стекло
  • Шейкер для коктейлей
  • оливковое
  • Мешалка

Готовый коктейль помещается на стойку, чтобы Пользователь мог насладиться им.Если пользователь хочет еще выпить, он должен сначала поговорить с диспетчером. Им не разрешается доступ к модели и приготовление собственного напитка.

В терминах приложения PHP MVC может соответствовать следующему:

  • Модель : база данных
  • Просмотр : HTML-страница или страницы
  • Контроллер : функции для доступа и обновления базы данных

Комфортное использование интерфейса командной строки (CLI) помогает при использовании среды PHP.В Laravel есть собственный интерфейс командной строки Artisan Console. Используя команду make в Artisan, вы можете быстро создавать модели, контроллеры и другие компоненты для своего проекта.

Знакомство с командной строкой также является ключом к использованию менеджера пакетов Composer PHP. Yii Framework — одна из нескольких, использующих Composer для установки и управления зависимостями , пакетов, которые необходимы для запуска приложения.

Packagist — это основной репозиторий пакетов, которые вы можете установить с помощью Composer.Некоторые из самых популярных пакетов Composer работают с фреймворком Symfony.

Популярные упаковки Packagist

Что следует искать в среде PHP?

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

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

Далее, вам нужен фреймворк, который прост в использовании и экономит ваше время.

Фреймворк PHP должен соответствовать вашим техническим требованиям для проекта. Большинство фреймворков будут иметь минимальную версию PHP и определенные расширения PHP, с которыми они работают. Убедитесь, что ваша платформа поддерживает выбранные вами базы данных и что вы можете использовать платформу с веб-сервером, на котором вы хотите выполнить развертывание.

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

Некоторые желательные особенности:

Если вам нужно создать приложение, масштабируемое на , выберите платформу, которая поддерживает это.

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

Рекомендуемое чтение: Как улучшить ограничение памяти PHP в WordPress.

Какие фреймворки PHP станут лучшими в 2021 году?

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

Ранние PHP-фреймворки включают PHPlib, Horde и Pear. Большинство громких имен появилось в 2005 году или позже.

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

Laravel

Laravel

Laravel позиционируется как «PHP-фреймворк для веб-мастеров.Он был разработан Тейлором Отвеллом, которому нужен был фреймворк с элементами, которых не было в CodeIgniter, такими как аутентификация пользователя.

Краткие характеристики

Запущен: июнь 2011 г.

Текущая версия: 8, выпущена 8 сентября 2020 г.

Технические требования:

  • PHP> = 7.2.5 (или используйте Laravel Homestead)
  • Composer установлен
  • Поддержка баз данных

  • для MySQL 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+, SQL Server 2017+.
Плюсы Laravel

Начать работу с Laravel Homestead, готовой для вас виртуальной средой разработки, несложно.

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

Если вы пользователь Mac, у вас также есть выбор использовать Laravel Valet в качестве среды разработки. Между прочим, Laravel Valet поддерживает Symfony, CakePHP 3, Slim и Zend, а также WordPress.

Laravel использует шаблонизатор под названием Blade . Одно из его преимуществ перед другими шаблонизаторами заключается в том, что вы можете использовать PHP в Blade, чего нельзя сделать с другими.

Packalyst, коллекция пакетов Laravel, насчитывает более 15 000 пакетов, которые вы можете использовать в своих проектах.

Laravel предоставляет набор из функций безопасности, и методов, включая следующие:

  • Аутентификация
  • Авторизация
  • Подтверждение электронной почты
  • Шифрование
  • Хеширование
  • Сброс пароля

Laravel Eloquent ORM и Fluent Query Builder защищают от атак SQL-инъекций, поскольку они используют привязку параметров PDO.Защита от подделки межсайтовых запросов (CSRF), которая использует скрытый токен формы CSRF, также включена по умолчанию.

Инструмент командной строки Artisan Console , который есть в Laravel, ускоряет разработку, позволяя разработчикам автоматизировать повторяющиеся задачи и быстро генерировать скелетный код.

Когда мы проводили тестирование производительности PHP, Laravel был самым быстрым из PHP-фреймворков, которые мы пробовали.

В экосистеме Laravel есть несколько полезных инструментов, таких как Mix для компиляции ресурсов CSS и JS и Socialite для аутентификации OAuth.

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

  1. Laracasts: обучающий портал с курсами, блогом, подкастом и форумом.
  2. Laravel.io: портал сообщества с более чем 45 000 пользователей.
  3. Субреддит Laravel: дом 50 000 мастеров Laravel.
Кто использует Laravel?

Symfony

Symfony

Symfony — это и фреймворк PHP, и набор компонентов PHP для создания веб-сайтов.

Краткие характеристики

Спущен на воду: октябрь 2005 г.

Текущая версия: 5.1.4

Технические требования:

  • PHP> = 7.2.5
  • Composer установлен
Плюсы Symfony

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

Symfony поддерживает большинство баз данных из популярных фреймворков PHP:

  • Морось
  • MySQL
  • Оракул
  • PostgreSQL
  • SAP Sybase SQL Anywhere
  • SQLite
  • SQLServer

Лучший способ взаимодействия с вашими базами данных — это Doctrine ORM.Symfony использует преобразователи данных для сопоставления объектов с базой данных. Это позволяет разделить вашу объектную модель и схему базы данных, а это означает, что если вы меняете столбец базы данных, вам не нужно вносить много изменений в кодовую базу.

Отладка проектов Symfony проста с помощью встроенной панели инструментов.

Symfony использует шаблонизатор Twig , который прост в освоении, быстр и безопасен.

Packagist перечисляет более 4000 пакетов Symfony , доступных для загрузки и использования.

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

Разработчики Symfony могут обучаться и получать помощь по нескольким каналам:

Кроме того, сообщество Symfony огромное, в нем активно участвует более 600 000 разработчиков.

Кто использует Symfony?

Другие громкие имена используют компоненты Symfony в своих проектах, включая Drupal, Joomla и Magento.

CodeIgniter

CodeIgniter

Фреймворк

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

Краткие характеристики

Запущен: февраль 2006 г.

Текущая версия: 4.0.3

Технические требования:

  • PHP> = 7.2
  • Поддержка баз данных для MySQL, PostgreSQL, SQLite3
Плюсы CodeIgniter

CodeIgniter известен своей скоростью . Это была вторая по скорости из четырех PHP-фреймворков, которые мы опробовали в наших тестах PHP.

Легкость фреймворка (загрузка 1,2 МБ) означает отсутствие раздувания. Вы можете добавить именно те компоненты, которые вам нужны.

CodeIgniter — это гибкий : он поощряет разработку с архитектурой MVC, но вы также можете кодировать приложения, не относящиеся к MVC.

Структура включает защиту от атак CSRF и XSS, а также контекстно-зависимое экранирование и политику безопасности контента.

CodeIgniter поддерживает несколько методов кэширования , ускоряя работу ваших приложений.

Как отмечалось ранее, CodeIgniter отличается легкостью обучения по сравнению с другими фреймворками и достаточно расширяем.

Сообщество

CodeIgniter состоит из форума и группы Slack.

Кто использует CodeIgniter?

Zend Framework / Проект Laminas

Zend Framework

Zend Framework — это давно зарекомендовавший себя PHP-фреймворк, который сейчас переходит в Laminas Project. Настоятельно рекомендуется перейти на Laminas, так как Zend больше не обновляется.

Подпишитесь на информационный бюллетень

Мы увеличили наш трафик на 1187% с помощью WordPress.

Мы покажем вам, как это сделать.

Присоединяйтесь к 20 000+ другим, кто получает нашу еженедельную рассылку с инсайдерскими советами по WordPress!

Подпишись сейчас

Проект Laminas состоит из 3 частей:

  1. Компоненты ламината и MVC
  2. Меццио
  3. Инструменты API Laminas
Краткие характеристики

Запущен: март 2006 г.

Текущая версия: 3.0.0 (Zend) или 1.3.0 (Laminas)

Технические требования:

  • PHP> = 5.6 (Zend) или> = 7.3 (Laminas)
  • Composer установлен
  • Поддержка баз данных для MariaDB, MySQL, Oracle, IBM DB2, Microsoft SQL Server, PostgreSQL, SQLite и Informix Dynamic Server.
Плюсы Zend / Laminas

У Zend Framework было более 570 миллионов установок . Это также наиболее часто используемый PHP-фреймворк на предприятиях.

Zend следует стандартам PHP Framework Interop Group (PHP-FIG), что означает, что его код может быть легко перенесен на другие платформы.

Как и Symfony, вы можете использовать только те компоненты, которые вам нужны.

Вы можете использовать Zend для создания RESTful API.

Сообщество Laminas имеет форум и группу Slack для сотрудничества и поддержки.

Кто использует Zend / Laminas?

Согласно домашней странице Zend фреймворк использовался крупными компаниями, включая

Yii (Фреймворк)

Yii Framework

Название этой платформы, Yii, на китайском языке означает «простой и эволюционный».Это также означает «Да, это так!»

Краткие характеристики

Запущен: декабрь 2008 г.

Текущая версия: 2.0.35

Технические требования:

  • PHP> = 5.4.0, рекомендуется 7+
  • Composer установлен
  • Поддержка баз данных SQLite, MySQL, PostgreSQL, MSSQL или Oracle
Плюсы Yii

Вы можете начать работу с Yii за считанные минуты. Документация хорошо написана и проста в использовании.

Yii Framework имеет несколько мер безопасности, таких как хеширование паролей bcrypt, шифрование, аутентификация и авторизация. В документации предлагаются передовые методы предотвращения атак SQL-инъекций, XSS и CSRF.

Генератор кода Gii может быстро построить скелетный код для вас, экономя время.

Генератор кода Gii

Yii поддерживает четыре типа кэширования для ускорения работы веб-приложений: кэширование данных, кеширование фрагментов, кеширование страниц и кеширование HTTP.

Вы можете запустить сторонний код в проектах Yii.

Сообщество Yii предлагает живую поддержку через Slack или IRC. Также есть дискуссионный форум и каналы в социальных сетях. Сообщество награждает своих активных участников значками и записями в Зале славы.

Кто использует Yii?

ТортPHP

ТортPHP

CakePHP обеспечивает быструю и чистую разработку PHP.

Краткие характеристики

Спущен на воду: апрель 2005 г.

Текущая версия: 4.1,1

Технические требования:

  • PHP 7,2 (минимум), рекомендуется 7,4
  • HTTP-сервер с предпочтительным mod_rewrite
  • Поддержка баз данных

  • для MySQL 5.6+, MariaDB 5.6+, PostgreSQL 9.4+, SQLite 3.8, SQL Server 2012+.
Плюсы CakePHP

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

CakePHP имеет собственный встроенный ORM , который быстро и просто использовать.

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

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

Github содержит полезный список ресурсов и плагинов CakePHP.

Вы можете изучить CakePHP с помощью кулинарной книги (документации), онлайн-обучения и конференций CakeFest.

Вы можете найти дружелюбных пекарей CakePHP на их форумах, в Stack Overflow, IRC и Slack.Поддержка Pro также доступна в Cake DC, которым руководит основатель CakePHP Ларри Мастерс.

Кто использует CakePHP?

Тонкий

Тонкий каркас

Slim — это урезанная, гибкая платформа на микро-PHP, созданная Джошем Локхартом. Он ориентирован на получение HTTP-запроса, вызов обратного вызова и возврат HTTP-ответа.

Краткие характеристики

Запущен: сентябрь 2010 г.

Текущая версия: 4.5.0

Технические требования:

  • PHP 7.2 +
  • Веб-сервер с перезаписью URL
Плюсы Slim

Кодовая база

Slim является скудной , поскольку не имеет сторонних зависимостей. В результате это очень быстрый .

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

Slim — это , легко выучить и понять. Вы можете запустить приложение «Hello World» за считанные минуты.

Slim признан разработчиками лучшим фреймворком PHP на сайте сравнения Slant.

Какие фреймворки PHP самые лучшие?

Профессиональная поддержка Slim доступна от Tidelift.

Кто использует Slim?

Фалкон

Phalcon

Phalcon — это PHP-фреймворк, созданный для скорости. Он поставляется как расширение веб-сервера, написанное на Zephir и C. Знание C не требуется. Разработчики работают с классами PHP и пространствами имен, которые создает фреймворк.

Краткие характеристики

Запущен: ноябрь 2012 г.

Текущая версия: 4.0.6

Технические требования:

  • Удлинитель PSR
  • PHP 7.2 + (рекомендуется последняя версия)
Плюсы Phalcon

Phalcon разработан для быстрой работы , так как имеет следующие особенности:

  • Низкоуровневая архитектура.
  • Однократная загрузка Zephir, расширений C и PHP.
  • Код

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

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

Phalcon security компонент помогает с хешированием паролей и защитой от CSRF.

Шаблонизатор

Phalcon, Volt , чрезвычайно быстр и имеет вспомогательные классы для простого создания представлений.

Вы можете получить поддержку Phalcon через их документацию, форумы, чат Discord, Stack Overflow и различные платформы социальных сетей.

Кто использует Phalcon?

Согласно сайту Phalcon BuiltWith Phalcon используется:

ТопливоPHP

ТопливоPHP

FuelPHP — это PHP-фреймворк, управляемый сообществом, с более чем 300 участниками за время своего существования.

Краткие характеристики

Запущен: июнь 2011 г.

Текущая версия: 1.8.2

Технические требования:

Плюсы FuelPHP

FuelPHP использует MVC, но также поддерживает HMVC (Hierarchical Model View Controller) .Это добавляет еще один слой между контроллером и представлением. Преимущества шаблона проектирования HMVC:

  • Лучшая организация кода
  • Большая модульность
  • Более расширяемый
  • Призывает повторное использование кода

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

  • Кодировка вывода
  • Защита от CSRF
  • Фильтрация ввода, URI и XSS
  • Экранирование пользовательского ввода, переданного в операторы SQL

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

FuelPHP ORM мощный и легкий.

Вы можете присоединиться к сообществу FuelPHP на их форумах, а также в Facebook и Twitter.

Кто использует FuelPHP?
  • Wan Wizard — Харро Вертон, один из разработчиков FuelPHP
  • Ресепшн — система управления недвижимостью

Обезжиренный каркас

Обезжиренный фреймворк

Как и Slim, Fat-Free Framework (F3) — это микро-фреймворк. Его цель — найти баланс между полезными функциями, простотой, удобством использования и скоростью.

Краткие характеристики

Запущен: 2009

Текущая версия: 3.7.2

Технические требования:

  • PHP 5.4+
  • Любой веб-сервер
  • Поддержка баз данных для MySQL, SQLite, MSSQL / Sybase, PostgreSQL и MongoDB.
Плюсы безжирового фреймворка

Кодовая база составляет около 65 КБ, поэтому это быстро . Тем не менее, F3 по-прежнему обладает всеми ожидаемыми функциями. Вы можете расширить по мере необходимости с помощью дополнительных плагинов.

очень легко подобрать с помощью Fat-Free Framework. Для начала не нужно использовать Composer, curl или инжектор зависимостей. Вы можете создать приложение Hello World за считанные минуты.

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

Документация ясна, и проста для понимания, с множеством примеров.Fat-Free Framework предлагает выбор механизма шаблонов: вы можете использовать PHP, собственный механизм шаблонов F3 или другие, такие как Smarty или Twig.

разработчиков F3 общаются в Slack и Google Group Fat-Free Framework.

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

Хотите сократить объем кода, который вам нужно написать? 💡 PHP-фреймворк может быть именно тем, что вам нужно. Узнайте больше о лучших из них в этом руководстве! Нажмите, чтобы твитнуть

Какая PHP-фреймворк лучше всего подходит для начинающих?

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

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

Веб-приложение стран Yii

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

Ошибка Yii для неопределенной переменной

Каркас Slim устанавливается быстро и легко.У Slim есть руководство по первому приложению для версии 3 фреймворка. К сожалению, он не был обновлен до Slim версии 4, текущей версии.

Установка Slim 4 через Composer

Для Fat-Free Framework у вас есть выбор: установить через Composer или просто загрузить и разархивировать zip-файл. Фреймворк настраивается с помощью простой программы «Hello, world».

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

CodeIgniter также имеет довольно простую настройку с хорошей документацией. Их учебник по первому приложению создает простую CMS с функциями CRUD и новостями.

Архив новостей CodeIgniter, страница

Сводка

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

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

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

Теперь вернемся к вам: какой PHP-фреймворк вы предпочитаете и почему? Дайте нам знать в комментариях ниже!


Если вам понравилась эта статья, то вам понравится хостинговая платформа Kinsta WordPress.Ускорьте свой сайт и получите круглосуточную поддержку от нашей опытной команды WordPress. Наша инфраструктура на базе Google Cloud ориентирована на автоматическое масштабирование, производительность и безопасность. Позвольте нам показать вам разницу в Kinsta! Ознакомьтесь с нашими тарифами

angularjs — Должны ли мы использовать фреймворк php или создать свой собственный?

Общая информация

Я руководитель проекта в начинающей фирме. Эта фирма разрабатывает решение для парковки с помощью мобильного телефона.Для этого мы сотрудничаем с ИТ-фирмой, которая занимается программированием. Они разрабатывают приложение на php и приложение (я).

Я ученый инженер-программист, и это моя первая работа. Теперь разработка началась, я несу ответственность за то, чтобы ИТ-компания разработала программное обеспечение в соответствии с нашими пожеланиями. Я также отвечаю за управление качеством программного обеспечения.

Имею опыт работы с Android, HTML, CSS, C # и могу читать php от 50 до 75%. Я понимаю «рабочие процессы» сети (идея ответа на запрос и теория кода ответа), я также знаком с остальными API.


Информация о приложении

  • Мы ожидаем, что в следующие 2/3 года у нас будет более 1 000 000 активных пользователей
  • Приложение должно быть хорошо масштабируемым

Моя «проблема»

Теперь техническое подтверждение концепции почти готово. Я просматриваю код и задаю несколько вопросов об используемых методах, но некоторые вещи не соответствуют моей производительности.
— Они используют OneUI как интерфейсную платформу
— Написать собственный «кастомный» серверный фреймворк / приложение
— Смешайте PHP с HTML вместо использования MVC
— Не используйте ORM

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

  • На мой взгляд, нам нужно использовать существующий фреймворк, такой как Laravel, Symphony или Phalcon. Лично я предпочитаю Laravel или symphony. Это потому, что это заставляет вас использовать чистый способ разработки приложения. Код намного более чистый, и производительность может быть положительно увеличена при правильном использовании фреймворков. Фреймворки также всегда обновляются разработчиком фреймворков или сообществом, поэтому утечки безопасности будут исправлены.Это также упрощает редактирование приложения через год другим программистом, потому что код хорошо структурирован. Последний момент: когда приложение выйдет в первый раз, есть шанс, что мы прекратим сотрудничество с ИТ-фирмой и возьмем собственного программиста.

  • ИТ-компания не имеет опыта работы с подобными фреймворками. По их мнению, из соображений безопасности гораздо лучше создать собственный фреймворк. Они говорят, что во фреймворке часто обнаруживается утечка / ошибка.Все веб-сайты, построенные на этих фреймворках, можно отследить и взломать с помощью некоторых ошибок или утечек, чем. Это их единственный «сложный» момент, чтобы сказать «не используйте существующий фреймворк». Они также говорят, что когда вы создаете свой собственный фреймворк, вероятность того, что кто-то попытается найти утечки или проникнуть в вашу систему, очень мала, потому что никто не понимает ваш фреймворк.

Я думаю об этом иначе, потому что многие БОЛЬШИЕ приложения также используют существующие фреймворки. Когда они имеют больший риск для безопасности, зачем они тогда их используют?

Теперь я получил письмо, и они написали в нем: «Когда мы используем фреймворк, мы предпочитаем AnguarJS, потому что он отлично работает с OneUI». Я думал, что angularJS — это фреймворк пользовательского интерфейса? Он также не входит в топ-10 «лучших фреймворков» для разработки больших и масштабируемых приложений.

Я понимаю все технические детали, но у меня нет опыта в разработке приложений PHP, так что …


Мои вопросы:

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

Я уже провел небольшое исследование и ежедневно читал о фреймворках PHP, но времени для принятия решения мало, поэтому я прошу совета здесь.

4. Компоненты — современный PHP [Книга]

Композитор и частные репозитории

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

Composer может управлять частными компонентами PHP, репозитории которых требуют аутентификации.
Когда вы запускаете composer install или composer update , Composer запрашивает, если
репозиторий компонента требует учетных данных для аутентификации. Композитор также спрашивает, есть ли
вы хотите сохранить учетные данные для аутентификации репозитория в локальном auth.json
файл (создается рядом с файлом composer.json ). Пример auth.json выглядит так:

  {
      "http-basic"  :   {
          "example.org"  :   {
              "имя пользователя"  :   "ваше-имя пользователя"  , 
              "пароль"  :   "ваш-пароль" 
         } 
     } 
 }  

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

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

 конфигурация композитора http-basic.example.org ваше-имя-пользователя ваш-пароль 

В этом примере http-basic сообщает Composer, что мы добавляем детали аутентификации.
для данного домена. example.org Имя хоста определяет удаленный компьютер, который
содержит частный репозиторий компонентов. Последние два аргумента — это имя пользователя.
и учетные данные пароля. По умолчанию эта команда сохраняет учетные данные в текущем
файл проекта auth.json .

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

 конфигурация композитора --global http-basic.example.org ваше-имя-пользователя ваш-пароль 

Глобальные учетные данные сохраняются в файле ~ / .composer / auth.json . Если вы используете Windows,
глобальные учетные данные сохраняются в % APPDATA% / Composer .

Современный PHP без фреймворка

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

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

Это не о них. Это о тебе. Речь идет о том, чтобы дать себе возможность расти как разработчику.

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

Вполне возможно, что ваша следующая работа не даст вам роскоши начать новый проект в соответствии с вашими предпочтениями. Реальность такова, что большинство важных и важных для бизнеса заданий PHP связаны с существующими приложениями. И независимо от того, создано ли это приложение во фреймворке, пользующемся популярной поддержкой в ​​настоящее время, таком как Laravel или Symfony, фреймворке из прошлых времен, таком как CodeIgniter или FuelPHP, или даже в удручающе распространенном устаревшем приложении PHP, использующем «ориентированную на включение архитектуру», построение без фреймворк сейчас лучше подготовит вас к работе с любым PHP-проектом в будущем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *