- PVSM.RU - https://www.pvsm.ru -

Когда заходит речь о разработке, мы все пытаемся найти более эффективные и быстрые способы программирования, порой не замечая, что кто-то уже сталкивался с похожей задачей, и изящно её реализовал. Что вы скажете, если мы сократим на 3/4 наш говнокод [1], всего лишь добавив несколько простых и эффективных зависимостей?
Для тех, кто не знает что такое Laravel 4 [2] — это PHP фреймворк для быстрой разработки. Этот фреймворк с открытым исходным кодом на github [3], сделан для настоящих ремесленников веб-программирования такими же ремесленниками. Как говорится, «для программистов от программистов». Но статья не о прелестях Laravel, и не о его преимуществах перед другими фреймворками, об этом я с удовольствием расскажу в других статьях. Здесь я расскажу о пяти наиболее значимых и важных дополнений к Laravel 4, которые сэкономят вам драгоценные минуты кодинга.
Это невероятно простая, удобная в использовании, и в то же время масштабная по своим возможностям система аутентификации. Laravel 4 имеет встроенную систему, но её возможности скудны. Sentinel «из коробки» умеет управлять группами пользователей, ролями, сбросом пароля и напоминания, регистрация и авторизация, нативный (родной) фасад к Laravel 4.
В отличие от Sentry (предшествующая разработка Cartalyst'а) позволяет в качестве атрибутов логина передавать не только сам логин, но и любые другие поля, работать с несколькими системами разрешений сразу, и т.д. Мало того, модуль полностью кастомизируется, и легко дополняется, что делает его еще более гибким. Буду откровенным, я не понимаю, почему этот пакет не входит в базовый набор Laravel 4!
Jeffery Ways, если быть откровенным, икона php-кодеров. Он создал колоссальное количетсво open-source проектов, и кучу бесплатных видео курсов по использованию Laravel 4 и 5. Я не знаю кем был Jeffery до того, как я начал использовать Laravel, но сейчас я отслеживаю все его работы, мысли и идеи. Ways generators представляет собой целую библиотеку artisan команд, таких как, например, generate:migration которая создаёт файл миграции с уже кастомизированной схемой, generate:resource который создаёт контроллер, модель, и даже предсавления, по стандартам REST! Теперь быстрое проектирование REST контроллеров стало реальностью.
Codesleeve's Asset Pipeline придаёт всю мощь RoR (Ruby on Rails) в мир PHP. SaSS и ScSS очень популярны среди разработчиков, и уже стали обязательным стандартом для фронтэнда. Однако, и scss и sass нуждается в компиляции. Asset Pipeline не только компилирует ваш код, но и минифицирует его. Этот модуль работает также с javascript, и позволит избавиться от назойливых импортов многочисленных js файлов вашего проекта.
Как уже было сказано, Jeffery Ways настоящий мужик! Он перетащил валидацию из контроллера в модель, и теперь можно просто применять метод save() в модели. А этот модуль будет проверять, есть ли какие либо ошибки errors() в то же время. А код в контроллере становится чистым.
public function store()
{
$dog = new Dog(Input::all());
if ($dog->save())
{
return Redirect::route('dogs.index');
}
return Redirect::back()->withInput()->withErrors($dog->getErrors());
}
Продолжение идеи MVC, ведь если приглядеться внимательно, Laravel нарушает некоторые конвенции парадигмы, а с этим модулем жизнь становится лучше, а фреймворк обретает еще большую мощь по сравнению со многими другими.
Я убеждён, что все сталкивались с ситуацией, когда клиенты просили при загрузке файлов делать превью этих файлов. Ну конечно сталкивались. И не всегда используются изящные решения. Но что, если мы выкинем из головы необходимость манипуляций с изображениями, отслеживание местоположения файлов, удаление файлов с диска, когда запись удаляется из базы данных? Этот модуль позволит сохранить фокус на разработке, так как все вышеперечисленное он умеет делать действительно великолепно! Всё что нужно — запустить команду artisan, добавить параметры изображений, потом просто -> save(), и всё. Остальное сделает этот модуль.
Я надеюсь, что эта статья приоткрыла глаза на метод ленивого программирования, так я называю метод «неповторения изобретения велосипедов», а использование тех технологий, которые позволят не отвлекаясь на рутинные и однообразные долгие действия быстро разрабатывать прототипы, или даже продакшн. Спасибо за внимание, оставайтесь с нами!
Вольный перевод статьи revoltvisual.com/journal/5-must-have-laravel-4-packages [9].
В оригинале первым пунктом у автора был обзор Sentry (https://cartalyst.com/manual/sentry/2.1#laravel-4), но на данный момент времени более актуальной разработкой всё-таки является Sentinel.
Автор: pandas
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/75914
Ссылки в тексте:
[1] говнокод: http://govnokod.ru/
[2] Laravel 4: http://laravel.com/
[3] github: https://github.com/laravel/laravel
[4] «cartalyst/sentinel»: «1.0.*»: https://cartalyst.com/manual/sentinel/1.0#laravel-4
[5] «way/generators»: "~2.0": https://github.com/JeffreyWay/Laravel-4-Generators
[6] «codesleeve/asset-pipeline»: «dev-master»: https://github.com/CodeSleeve/asset-pipeline
[7] «way/database»: «dev-master»: https://github.com/JeffreyWay/Laravel-Model-Validation
[8] «codesleeve/laravel-stapler»: https://github.com/CodeSleeve/laravel-stapler
[9] revoltvisual.com/journal/5-must-have-laravel-4-packages: http://revoltvisual.com/journal/5-must-have-laravel-4-packages
[10] Источник: http://habrahabr.ru/post/244597/
Нажмите здесь для печати.