29 May 2013

Вышел Laravel 4

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

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


Для установки 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
Tags:laravellaravel 4frameworkphp
Hubs: PHP Laravel
+23
14k 69
Comments 23