Вышел Laravel 4

    Состоялся долгожданный релиз четвертой версии замечательного фреймворка.
    Также обновился официальный сайт.

    Быстрая установка


    Для установки Laravel, скачать копию репозитория с Github.
    Далее, после установки Composer, запускаем composer install команду в корневой папке. Composer скачает и установит все зависимости.

    Мини обзор


    Роутинг

    Субдомены

    Route::group(array('domain' => '{account}.myapp.com'), function()
    {
    
        Route::get('user/{id}', function($account, $id)
        {
            //
        });
    
    });
    

    Префиксы

    для всех роутов начинающихся на /admin/
    Route::group(array('prefix' => 'admin'), function()
    {
    
        Route::get('user', function()
        {
            //
        });
    
    });
    


    Присвоение модели к параметру роута

    Route::model('user', 'User');
    

    Теперь определим роут с параметром {user}
    Route::get('profile/{user}', function(User $user)
    {
        //
    });
    

    Laravel сам загрузит модель User по pk

    Контроллеры

    Ресурс контроллеры

    Ресурс контроллеры позволяют легко создавать RESTful контроллеры. К примеру, вам может понадобиться создать контроллер который управляет «фотками» в вашем приложении. Используя controller:make через Artisan CLI

    Чтобы создать контроллер из под консоли, выполнить следующую команду:
    php artisan controller:make PhotoController
    

    Теперь мы можем определить ресурс роут:
    Route::resource('photo', 'PhotoController');
    

    Одно определение роута может обрабатывать множество разных RESTful действий нашего photo ресурса.

    Действия обрабатываемые ресурс контроллером
    Тип Путь Действие Роут
    GET /resource index resource.index
    GET /resource/create create resource.create
    POST /resource store resource.store
    GET /resource/{id} show resource.show
    GET /resource/{id}/edit edit resource.edit
    PUT/PATCH /resource/{id} update resource.update
    DELETE /resource/{id} destroy resource.destroy

    Rest контроллеры

    Назначение контроллера роуту
    Route::controller('users', 'UserController');
    

    controller метод принимает два аргумента. Первый — базовый URI который обрабатывает контроллер, а второй имя класса контроллера. Далее, просто добавим методы в контроллере, с префиксом соответствующим типу HTTP:
    class UserController extends BaseController {
    
        //GET /user/index
        public function getIndex()
        {
            //
        }
    
        //POST /user/profile
        public function postProfile()
        {
            //
        }
    
    }
    

    Если действие вашего контроллера содержит несколько слов, вы можете обращаться к ним через «тире» в URI. К примеру, текущее действие контроллера UserController будет обрабатывать users/admin-profile URI:
    public function getAdminProfile() {}
    


    Фасад

    Фасады предоставляют «статический» интерфейс к классам которые доступны через IoC контейнер. Laravel использует фасады повсеместно, и вы можете использовать их даже не зная об этом.
    Например, реализация класса Cache
    $value = Cache::get('key');
    

    Однако, если заглянуть в класс Illuminate\Support\Facades\Cache, вы заметите что там нет метода get
    class Cache extends Facade {
    
        /**
         * Get the registered name of the component.
         *
         * @return string
         */
        protected static function getFacadeAccessor() { return 'cache'; }
    
    }
    

    Класс Cache наследуется от Facade класса, и определяет метод getFacadeAccessor() который возвращает имя ключа в IoC контейнере.

    Альтернативная реализация Cache::get без использования фасада
    $value = $app->make('cache')->get('key');
    


    Если заинтересовало, можно пройти по ссылочкам.

    Документация
    Быстрый Старт
    Github

    Similar posts

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

    More
    Ads

    Comments 23

      +1
      Фасады — хитро! Не встречал раньше. Этот трюк уже использовался в каких-то фреймворках, кто имел дело, какие могут быть минусы? Первое что приходит в голову — для autocomplete в PhpStorm придётся описать все публичные методы в DocBlock перед классом-фасадом. Впрочем, при «честном» вызове сервиса из контейнера проблема autocomplete тоже есть.
      0
      А вот это интересно!.. Пару проектов делал на Laravel, очень простенький и шустрый движок.
        +1
        Фреймворк всё же.
          +4
          Здесь я должен был докопаться до какой-нибудь запятой, точки, или еще чего-то, но так как слишком мало букв, реквестирую дополнительный текст.
        +13
        На редкость малопонятная статья, я из нее понял чуть больше чем ничего. Можно было бы рассказать об особенностях, преимуществах фреймворка, отличиях от предыдущей версии, наконец. Показать полдесятка кусков кода, снабженных заголовками — это ну никак не обзор (даже учитывая слово «мини»).
          –8
          Особенностей очень много, все они есть в документации.
            +6
            Конечно, статьи на хабр для этого и пишут — чтобы можно было сказать «читайте документацию». Хотелось бы получить более-менее внятное представление, чтобы решать — стоит ли копать дальше документацию.
          +1
          Что-то странно как-то он вышел. Еще в конце февраля была статья по разработке с помощью Laravel 4: habrahabr.ru/post/170289/

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

            Laravel это такой очень простой и при этом очень мощный фреймворк, который начиная с четвертой версии наполовину использует сторонние библиотеки (навроде компонентов Symfony), причем все это делает через Composer. Имхо это очень крутая штука, которая по удобству разработки находится где-то рядом с RoR.

              +2
              Теперь осталось дождаться официального выхода Yii 2 и можно будет начинать дебаты)
                –1
                Можно только позавидовать силе духа людей, которые в наше время разрабатывают php фреймверки.
                  +1
                  А причем тут сила духа — просто имеющиеся не устраивают людей для их задач.
                    0
                    Ну, вот даже не знаю, что может не устраивать в этой массе фреймверков?
                    Для типовых задач используются CMS, для не типовых — фреймверки.
                    Если задача достаточно несложная, то практически всегда найдется подходящий фреймверк (начиная от микро и более сложные).
                    Если задача сложная и требует мощного инструмента, то есть монстры Symfony, Zend и тп, а если смотреть шире, то есть и Django со всем своим внутренним миром, и asp.net mvc и тп.

                    И если я вас правильно понял, вы хотите сказать, что на каком-то этапе людям не понравились имеющиеся фреймверки, и они стали кодить свой?

                    «— Парни, что-то нам не понравился ни один фреймверк, а давайте отложим все коммерческие проекты и будет разрабатывать свой фреймверк!»

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

                    И это еще не говоря о тенденциях усложнения клиента + rest или rpc.

                    В противном случае получится «еще один php framework».
                      +1
                      Не все в этом мире измеряется деньгами. Много людей работают просто потому что они хотят что-то создать.

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

                        Поэтому я и написал, что завидую их силе духа.

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

                        Не все в этом мире измеряется деньгами.

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

                        Также, если задача сложная и требует особого инструмента

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

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

                        Возьмем к примеру Laravel раз мы холиварим в посте о нем.
                        На оф. сайт я не нашел информации о том, что его разрабатывает, есть ли у этих людей фин. поддержка, не загнется ли все это дело «завтра». Немного погуглив нашел:
                        As I researched further, I found out that Laravel was the work of just one person, Taylor Otwell. He was working on it nights and weekends after his day job.
                        (http://www.ianlandsman.com/2012/02/22/laravel)

                        Опять же хочется сослаться на мое первое сообщение в треде и сказать, что далеко не все из нас являются Тейлорами Отуеллами и способны довести подобное дело до того, что он имеет сейчас.
                          +1
                          На что живут те люди, которые делают что-то просто потому, что хотят что-то создать? У них есть основная работа и они работают по вечерам? Не страдает ли от этого качество продукта, скорость разработки и тп?

                          Есть варианты. Я вот обеспечил себя инвестированием и теперь просто разрабатываю то, что мне интересно. Т.е. полностью все время свободно.
                            +1
                            Вы просто жжоте нонсансами :)
                            Действительно, обеспечить себя инвестирование и делать все, что вздумается, ну прям типичный российский кейс любого разработчика.

                        +1
                        Не устраивать может всё что угодно, от высокого входного порога до низкой производительности (зачастую обусловленной архитектурной избыточностью для конкретной задачи).

                        Зачастую особо ресурсы на «самодельные» фреймворки не тратятся, они получаются «сами собой» в процессе рефакторинга двух и более архитектурно схожих проектов, когда надоедает сначала копипастить, а потом синхронизировать «де-факто» совместно используемый ими код, который «де-юре» таковым не является (не выделен в отдельные сущности). А иной раз и на базе одного проекта можно сделать фреймворк, просто соблюдая принципы типа SOLID — управляющая логика и бизнес-логика разнесутся «автоматически» и для нового проекта достаточно будет скопировать файлы относящиеся конкретно управляющей, а для бизнес написать новые.
                          0
                          Это все понятно.
                          Но мы говорим об одном человеке, который по вечерам и выходным после основной работы кодит свой php фреймверк (т.е. он так начинал, как сейчас обстоят дела я не в курсе).

                          Это не компания, не группа людей, это один человек. Ему что-то не понравилось и он сел писать свой фреймверк по вечерам.
                          Что тут можно еще сказать кроме как позавидовать силе духа таких людей, а особенно таких как автор Laravel, который смог в одиночку развить свой продукт.
                          0
                          Здесь есть ответ на ваш вопрос habrahabr.ru/company/ibm/blog/168985/
                          Процитирую суть: «К 1990 году на каждый доллар, потраченный IBM на разработку карт с магнитной полосой, приходилось полторы тысячи долларов вырученных с продажи компьютеров».
                      0
                      Из меню убрали ссылку на bundles. А они сами-то остались в четвёртой версии?
                        +1
                        Нет. В четвёртой версии всё через composer, что является большим плюсом.

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