5 самых нужных дополнений к Laravel 4

image

Когда заходит речь о разработке, мы все пытаемся найти более эффективные и быстрые способы программирования, порой не замечая, что кто-то уже сталкивался с похожей задачей, и изящно её реализовал. Что вы скажете, если мы сократим на 3/4 наш говнокод, всего лишь добавив несколько простых и эффективных зависимостей?

Для тех, кто не знает что такое Laravel 4 — это PHP фреймворк для быстрой разработки. Этот фреймворк с открытым исходным кодом на github, сделан для настоящих ремесленников веб-программирования такими же ремесленниками. Как говорится, «для программистов от программистов». Но статья не о прелестях Laravel, и не о его преимуществах перед другими фреймворками, об этом я с удовольствием расскажу в других статьях. Здесь я расскажу о пяти наиболее значимых и важных дополнений к Laravel 4, которые сэкономят вам драгоценные минуты кодинга.



1. «cartalyst/sentinel»: «1.0.*» — На пути к безопасности.



Это невероятно простая, удобная в использовании, и в то же время масштабная по своим возможностям система аутентификации. Laravel 4 имеет встроенную систему, но её возможности скудны. Sentinel «из коробки» умеет управлять группами пользователей, ролями, сбросом пароля и напоминания, регистрация и авторизация, нативный (родной) фасад к Laravel 4.

В отличие от Sentry (предшествующая разработка Cartalyst'а) позволяет в качестве атрибутов логина передавать не только сам логин, но и любые другие поля, работать с несколькими системами разрешений сразу, и т.д. Мало того, модуль полностью кастомизируется, и легко дополняется, что делает его еще более гибким. Буду откровенным, я не понимаю, почему этот пакет не входит в базовый набор Laravel 4!

2. «way/generators»: "~2.0" — Экономьте время с умом, проектируя схемы баз данных.



Jeffery Ways, если быть откровенным, икона php-кодеров. Он создал колоссальное количетсво open-source проектов, и кучу бесплатных видео курсов по использованию Laravel 4 и 5. Я не знаю кем был Jeffery до того, как я начал использовать Laravel, но сейчас я отслеживаю все его работы, мысли и идеи. Ways generators представляет собой целую библиотеку artisan команд, таких как, например, generate:migration которая создаёт файл миграции с уже кастомизированной схемой, generate:resource который создаёт контроллер, модель, и даже представления, по стандартам REST! Теперь быстрое проектирование REST контроллеров стало реальностью.

3. «codesleeve/asset-pipeline»: «dev-master» — Сохраняет кучу нервных клеток при работе с sass



Codesleeve's Asset Pipeline придаёт всю мощь RoR (Ruby on Rails) в мир PHP. SaSS и ScSS очень популярны среди разработчиков, и уже стали обязательным стандартом для фронтэнда. Однако, и scss и sass нуждается в компиляции. Asset Pipeline не только компилирует ваш код, но и минифицирует его. Этот модуль работает также с javascript, и позволит избавиться от назойливых импортов многочисленных js файлов вашего проекта.

4. «way/database»: «dev-master» — Козырь в рукаве



Как уже было сказано, Jeffery Way настоящий мужик! Он перетащил валидацию из контроллера в модель, и теперь можно просто применять метод 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 нарушает некоторые конвенции парадигмы, а с этим модулем жизнь становится лучше, а фреймворк обретает еще большую мощь по сравнению со многими другими.

5. «codesleeve/laravel-stapler» — Незаменимый помощник при загрузках файлов



Я убеждён, что все сталкивались с ситуацией, когда клиенты просили при загрузке файлов делать превью этих файлов. Ну конечно сталкивались. И не всегда используются изящные решения. Но что, если мы выкинем из головы необходимость манипуляций с изображениями, отслеживание местоположения файлов, удаление файлов с диска, когда запись удаляется из базы данных? Этот модуль позволит сохранить фокус на разработке, так как все вышеперечисленное он умеет делать действительно великолепно! Всё что нужно — запустить команду artisan, добавить параметры изображений, потом просто -> save(), и всё. Остальное сделает этот модуль.

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

Вольный перевод статьи revoltvisual.com/journal/5-must-have-laravel-4-packages.
В оригинале первым пунктом у автора был обзор Sentry (https://cartalyst.com/manual/sentry/2.1#laravel-4), но на данный момент времени более актуальной разработкой всё-таки является Sentinel.

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 27

    0
    От себя добавлю, что активно использую три компонента: way/generators, way/database и codesleeve/laravel-stapler. Для меня большой радостью было, когда я нашёл информацию о Sentinel (до этого использовал встроенную авторизацию + много кастома). Я очень рад, что лично у меня интерес к PHP возродился как раз благодаря Laravel и многим нововведениям php 5.4 и 5.5. Laravel очень похож на рельсы, но как-то ближе, т.к. за плечами всё-таки много php кода. А рельсы как раз нравились скоростью разработки.
      +2
      Существуют ли какие-то подводные камни в адаптации этих библиотек под Laravel 5?
        0
        Я не в курсе, но подозреваю что нативнее будут работать модули от Jeffery Way. Я с пятёркой еще не работал.
          +1
          Ну аsset-pipeline в пятерке точно не нужен. Нативный эликсир съедает такие пакеты на завтрак.
            0
            Хм, по-моему asset-pipeline более нативный, чем этот эликсир. Разве нет?
              0
              Видимо, мы по-разному понимаем слово «нативный». Для меня нативный (буквально — родной), это то, что идет из коробки с основным ПО и/или рекомендовано к употреблению автором этого ПО.
                +1
                Эликсир использует node.js, а любой asset-pipline на PHP использует PHP, будь то codesleeve/asset-pipeline, kriswallsmith/assetic или альтернативный serafim/asset. Причём использование php решений более удобно и юзабельно в силу именно нативности решений для конкретного языка (в частности PHP).

                Именно это я и имел ввиду под нативностью.
                  0
                  Пятая версия содержит предопределенные задачи gulp, так что с node в любом случае придется иметь дело. По личному опыту — node версии julp/grunt и sass/scss/compassstyle намного удобнее, чем их php аналоги.

                  Но опять же — это личное мнение. Кому-то действительно удобнее чтобы всем заправлял php.
      +3
      Пробовал как-то этот codesleeve/asset-pipeline — очень глючный и забаженный пакет. Дабы не быть голословным — лично исправлял тучу косяков: github.com/CodeSleeve/asset-pipeline/pull/218 Помимо исправленных остаются ещё, начиная от использования устаревших компиляторов (scss там версии 0.0.9), заканчивая сборкой каждого файла отдельно (т.е. каждый файл должен быть самодостаточным — нельзя вынести переменные или миксины в один и использовать в другом).

      По теме — мой списочек «мастхев» пакетиков, можно взглянуть на что-нибудь:
      barryvdh/laravel-ide-helper
      barryvdh/laravel-debugbar
      fzaninotto/faker
      intervention/image
      serafim/asset
        +1
        Кстати, если я правильно понимаю, в Laravel 5 уже идет Laravel Elixir. И с помощью Gulp можно тоже удобно компилировать sass, scss.
        А вот за sentinel спасибо отдельное
          0
          По-моему sentinel платный. Поправьте меня, если это не так.
          +1
          Буду откровенным, я не понимаю, почему этот пакет не входит в базовый набор Laravel 4!

          Платный пакет в базовом наборе?
            0
            А где увидеть, что он платный? Никак не могу найти
              +1
              Наверху cartalyst.com/manual/sentinel/1.0 есть строчка с восклицательным знаком:
              This package requires a valid subscription.

              Демо тут: github.com/cartalyst/demo-sentinel
                0
                Ага, $25 в месяц.
                  0
                  Неплохо так :)
                    0
                    Для некоммерческих проектов можно пользоваться родными Laravel средствами авторизации + кастомные допиливания.
                    Для коммерческого продакшена 1300 рублей (если я не ошибся с курсом) не такие большие деньги, чтобы использовать эту библиотеку. Да и потом, подписка предусматривает не только использование одного Sentinel, а всех их пакетов, что значительно расширяет возможности Laravel.
                    А для поиграться — демо должно хватить с головой. Открою маленький секрет: можно обратиться к разработчикам с просьбами — они очень отзывчивые и хорошие ребята. Легко идут на контакт, и активно идут на встречу любым вопросам и предложениям. В своё время мне об этом «секрете» Джейсон Фрайд рассказал, когда я с ним начал переписываться после прочтения того же Rework. ))) Они же тоже люди, тоже программисты ))
                      0
                      Да, я видел, что там много пакетов и прочего. Для себя мне четко ясно, если мне нужен будет пакет — мне купить проще, чем просить )

                      А кстати, активная подписка нужна только для установки или для работы пакета?
                        0
                        я так понял они дают доступ на свой GitHub так как при регистрации просят указать свой аккаунт.
                        при обновлении композер тянет исходники в твой проект. Если не заплатишь за след.месяц обновляется не будет и все.
                        p.s
                        при регистрации просят 75$ за три месяца вперед.
              0
              Не очень понятно включение в «5 самых нужных дополнений к Laravel 4» way/database — там пара строчек не очень интересного кода
                +1
                кстати, насчёт авторизации, на реддите недавно было обсуждение пакетов для авторизации. небольшое, но там есть список популярных пакетов: www.reddit.com/r/laravel/comments/2n9u23/verifyl4_vs_authorityl4_vs_authoritycontroller_vs/
                    0
                    По мотивам этого коммента можно обзор сделать попозже :-) Спасибо большое
                      0
                      По мотивам этого коммента
                      От создателей «Титаник», «Аватар» и «хорошего коммента на хабре», читайте, «Крутые пакеты для Лары». Только в декабре этого года, во всех интернетах страны, не пропустите. =)
                    0
                    Jeffery Ways должен быть Jeffrey Way
                      0
                      1. «cartalyst/sentinel»: «1.0.*» — На пути к безопасности

                      Буду откровенным, я не понимаю, почему этот пакет не входит в базовый набор Laravel 4!

                      Ммм, потому что платный/лицензия?

                      Only users with full accounts can post comments. Log in, please.