Моя сборка для разработки Laravel проектов

Приветствую! Хочу рассказать о моих “подготовительных работах” перед реализацией Laravel проектов. Здесь я изложу и кратко опишу почему использую некоторые пакеты. Некоторые я использую во всех проектах, другие – когда сочту нужным. Эта статья – мой личный опыт, может кто-нибудь знает лучшие альтернативы или что еще нужно для более удобной разработки – пишите в комментах – будем благодарны(я и читатели блога). В любом случаи эта статья будет полезна новичкам в данном фреймворке. Погнали!11

Debugbar for Laravel

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

APP_DEBUG=true

внизу страницы будет панель

Debugbar for Laravel
debug-bar

с информацией об ошибках, шаблонах, роуте и тд… Также, при помощи фасада Log можно писать собственную инфу в панель. И что не мало важно – она отображает и ajax(к API) запросы.

IDE Helper Generator for Laravel

Еще один пакет, того же автора, предназначенный для удобства и скорости разработки. Он генерирует phpDocs, которые анализируются IDE и видны в виде подсказок, что позволяет избежать опечаток и постоянной инспекции других классов. Работает для моделей и фасадов. Прежде чем генерировать доки для моделей, нужно настроить связь с БД и иметь соответствующие таблицы.

Associate users with permissions and roles

Ни одного проекта без разделения но ролям я еще не делал и этот пакет делает это – позволяет пользователю дать роль.

Associate users with permissions and roles
permissions and roles

Эта зависимость содержит возможности создавать роли, давать права а также содержит мидлвары(что это – расскажу позже, но очень важная и крутая вещь). Даже если рядовому пользователю не нужно регистрироваться на сайте, все равно а сайте всегда есть админка с супер-админами, менеджерами и тд.

Laravel-Modules

Пакет, который я не везде использую, но в проектах он помогает организовать модульную архитектуру. Он содержит команды создающие набор папок и файлов(по структуре подобных к структeре каталога app). Как по мне базовая архитектура лучше всех, однако если над проектом работает команда – проекты с базовой превращаются в адок. Обьяснение почему я недолюбливаю модульность: допустим ,есть модуль Account на лице сайта, который имеет модель User; есть модуль Admin, где также есть модель User. Вопрос: как поступить – дублировать код(тк поля почти идентичны), делать общие трейты и фасады или вне модулей делать абстрактную модель User, и наследоваться от нее(нарушая идею модульности в моем понимании)? Возможно , я еще не достаточно опытен и чего то не понимаю, но в базовом исполнении, прибегая к использованию лара-фасадов таких дилемм не возникает.

Easy AdminLTE integration with Laravel

Небольшой пакет для построения админ-панели, содержащий набор шаблонов и стилей, основанных на Bootstrap css. Код самых виджетов можно глянуть в AdminLTE Demo.

Заключение

Это все рекомендации, однако они, я уверен, сделают разработку, и что важнее, развитие проекта проще , быстрее и понятнее…

PHP и его фреймворки

Фреймворк(дословный перевод – рабочая рамка) – это набор функционала, который используется с проекта в проект. В современном мире знания языка недостаточно для звания “программист”, еще нужно уметь хотя б в один популярный фреймворк. В этой статье я кратко опишу самые популярные для php фреймворки.

Symfony

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

Достоинства:
  • Конфигурация и настройка фреймворка легко производится с помощью встроенного инструмента – Symfony Console.
  • Имеет готовый набор библиотек для работы с БД, тестирования и других операций.
  • Шаблонизатор Twig позволяет создавать качественный HTML-код с меньшими усилиями.
  • Внутренняя команда Symfony использует реактивный подход к программированию, что позволяет улучшить производительность приложения.
Недостатки:
  • Для начала работы с Symfony требуется изучение дополнительных инструментов и концепций.
  • Фреймворк имеет большой размер, что может замедлять работу приложения в случае недостаточных ресурсов сервера.

Laravel

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

Достоинства:
  • Фреймворк имеет интуитивно понятный синтаксис, что делает его простым для использования.
  • Инструмент artisan позволяет быстро генерировать различные компоненты и структуры приложения.
  • Огромное сообщество разработчиков Laravel, которые поддерживают и развивают этот фреймворк.
  • Шаблонизатор Blade удобен для создания HTML-кода.

Статьи:

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

CodeIgniter

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

Достоинства:
  • Легкий и быстрый фреймворк, который позволяет создавать веб-приложения любой сложности.
  • Множество полезных функций и компонентов, включая систему маршрутизации и библиотеку для работы с базами данных.
  • Интуитивно понятный синтаксис, который делает его простым для использования.
  • Поддержка различных модулей, которые расширяют функциональность фреймворка.
Недостатки:
  • Отсутствие стандартной ORM библиотеки может усложнить работу с базами данных.
  • Не имеет встроенной поддержки для многопоточности и асинхронности, что может быть неудобно для создания приложений с большой нагрузкой.

Yii2

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

Достоинства:
  • Простота и интуитивно понятный синтаксис.
  • Мощные инструменты для создания сложных приложений.
  • Высокая производительность и оптимизированная работа с базами данных.
  • Активное сообщество пользователей и разработчиков.
  • Поддержка RESTful API.
Недостатки:
  • Относительно небольшое сообщество по сравнению с Symfony и Laravel.
  • Некоторые функции могут быть сложными для понимания для начинающих разработчиков.

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

Заключение

“На вкус и цвет…” – каждый сам в праве выбирать фреймворк для проекта и работы. Но я, как хлебнувший нескольких, скажу что Laravel наиболее удобный – может это действительно так, а может я не распробовал прочие… Скажу, что Laravel был третьим по порядку в моей дегустации.