Готовый перевод The Laravel Framework Documentation / Документация к фреймворку Laravel: Quickstart
# Laravel Быстрый старт
- [Установка](#installation)
- [Маршрутизация](#routing)
- [Создание представления](#creating-a-view)
- [Создание миграции](#creating-a-migration)
- [Eloquent ORM](#eloquent-orm)
- [Вывод данных](#displaying-data)
<a name="installation"></a>
## Установка
Фреймворк Laravel использует [Composer](http://getcomposer.org) для установки и управлением зависимостями. Если вы не сделали этого ранее, начните с [установки Composer](http://getcomposer.org/doc/00-intro.md).
Теперь вы можете установить Laravel выполнив следующую команду в командной строке:
composer create-project laravel/laravel your-project-name --prefer-dist
Эта команда скачает и установит последнюю версию Laravel в новую папку с именем `your-project-name` созданную в текущей директории.
Вы также можете самостоятельно скачать копию [репозитория Laravel на Github]. После этого выполните команду `composer install` в созданной Вами папке с проектом. Эта команда скачает и установит необходимые для фреймворка зависимости.
Разрешения
После установки Laravel, Вам может понадобиться дать веб-серверу разрешение на запись для папки `app/storage`. Смотрите документацию об [установке](/docs/installation) для более подробной информации о настройке.
<a name="directories"></a>
### Структура папок
После установки фреймворка ознакомьтесь с содержимым созданного Вами проекта, для того, чтобы понять структуру папок. Папка `app` содержит папки `views`, `controllers` и `models`. Большая часть кода Ваших приложений будет располагаться в этих папках. Вы также можете ознакомиться с содержимым папки `app/config`, чтобы узнать о доступных настройках.
<a name="routing"></a>
## Маршрутизация
Для начала давайте создадим на первый маршрут. В Laravel простейшим маршрутом является маршрут с функцией-замыканием. Откройте файл `app/routes.php` и добавьте в самом низу следующий код:
Route::get('users', function()
{
return 'Users!';
});
Теперь, если вы перейдете по адресу `/users` в своем веб-браузере, Вы увидите надпись `Users!`. Здорово! Только что Вы создали свой первый маршрут.
Маршрут может быть привязан также к классу контроллера. Например:
Route::get('users', 'UserController@getIndex');
Этот маршрут информирует фреймворк о том, что на запрос по адресу `/users` должен быть вызван метод `getIndex` класса `UserController`. Для дополнительной информации о контроллерах маршрута смотрите [документацию о контроллерах](/docs/controllers).
<a name="creating-a-view"></a>
## Создание представления
Далее мы создадим простейшее представление для вывода данных о пользователе. Представления располагаются в папке `app/views` и содержат HTML-код вашего приложения. Мы разместим два новых представления в этой папке: `layout.blade.php` and `users.blade.php`. Сперва, давайте создадим файл `layout.blade.php` со следующим содержимым:
<html>
<body>
<h1>Laravel Quickstart</h1>
@yield('content')
</body>
</html>
Затем создадим представление `users.blade.php`:
@extends('layout')
@section('content')
Users!
@stop
Часть представленного синтаксиса выгладит немного странно. Это связано с тем, что мы используем шаблонизатор Laravel: Blade. Blade очень быстр благодаря тому что он является просто набором регулярных выражений применяемых к Вашему шаблону для компиляции их в чистый php-код. Blade предоставляет мощную функциональность вроде наследования шаблонов, а также синтаксический сахар для типовых структур управления программой таких как `if` и `for`. Смотрите [документацию Blade](/docs/templates) для дополнительной информации.
На данный момент у нас есть наши представления. Давайте вернем их из нашего маршрута `/users`. Вместо возврата из маршрута строки `Users!`, вернем представление:
Route::get('users', function()
{
return View::make('users');
});
Замечательно! Теперь Вы имеете простое представление, которое расширяет базовый макет. Давайте приступим к работе со слоем базы данных.
<a name="creating-a-migration"></a>
## Создание миграции
Чтобы создать базу данных для хранения наших данных, мы используем систему миграций Laravel. Миграции позволяют однозначно определить изменения в Вашей базе данных, и легко поделиться ими с другими членами Вашей команды.
Сперва, давайте настроим соединение с БД. Вы можете настроить все Ваши соединения в файле `app/config/database.php`. По умолчанию Laravel настроен на использование MySQL, и Вам нужно только указать данные учетной записи для подключения к БД в файле с настройками БД. При необходимости, Вы можете установить значение опции `driver` равным `sqlite` после чего будет использоваться БД SQLite расположенная в папке `app/database`.
Далее, для создания миграции, мы используем [Artisan CLI](/docs/artisan). Выполните следующую команду в командной строке из корневой папки Вашего проекта:
php artisan migrate:make create_users_table
Далее, найдите сгенерированный файл миграции в папке `app/database/migrations`. Этот файл содержит класс с двумя методами: `up` и `down`. В методе `up`, Вы должны сделать необходимые изменения в таблицах Вашей БД, а в методе `down` - просто отменить их.
Давайте определим миграцию, которая выглядит так:
public function up()
{
Schema::create('users', function($table)
{
$table->increments('id');
$table->string('email')->unique();
$table->string('name');
$table->timestamps();
});
}
public function down()
{
Schema::drop('users');
}
Теперь мы можем выполнить нашу миграцию из коммандной строки используя команду `migrate`. Просто выполните эту команду в корневой папке Вашего проекта:
php artisan migrate
Если Вы захотите отменить(откатить) миграцию Вам надо выполнить команду `migrate:rollback`. Теперь, когда у нас есть таблицы в БД, давайте наполним её какими-нибудь данными!
<a name="eloquent-orm"></a>
## Eloquent ORM
Laravel поставляется с превосходным ORM: Eloquent. Если вы использовали фреймворк Ruby on Rails, Вам он покажется похожим, т.к. он следует принципам ActiveRecord ORM для взаимодействия с БД.
Сперва, давайте создадим модель. Eloquent-модель может быть использована для выполнения запросов к ассоциированной с ней таблицей, а также для получения отдельных строк из этой таблицы. Не беспокойтесь, сейчас все станет намного понятнее! Модели обычно расположены в папке `app/models`. Давайте создадим модель в этой папке в файле `User.php`:
class User extends Eloquent {}
Заметьте, что мы не задали для Eloquent какую таблицу необходимо использовать. Eloquent имеет ряд конвенций, одна из которых заключается в том, что множественная форма имени модели является именем таблицы БД. Удобно!
Используя свое любимое средство управлением БД вставьте несколько строк в таблицу `users`, чтобы мы могли использовать Eloquent для их извлечения и передачи в наше представление.
Теперь давайте изменим наш маршрут `/users` к следующему виду:
Route::get('users', function()
{
$users = User::all();
return View::make('users')->with('users', $users);
});
Давайте разберемся в этом маршруте. Сперва, метод `all` модели `User` извлекает все строки таблицы `users`. Затем, мы передаем эти строки в представление с помощью метода `with`. Метод `with` принимает в качестве параметров ключ и значение, и используется для задания значения переменных в представлении.
Потрясающе. Теперь мы готовы отобразить данные пользователей в нашем представлении!
<a name="displaying-data"></a>
## Отображение данных
Сейчас мы сделали `users` доступными внутри представления. Мы можем отобразить их следующим образом:
@extends('layout')
@section('content')
@foreach($users as $user)
<p>{{ $user->name }}</p>
@endforeach
@stop
Вам может быть интересно, куда подевались вызовы `echo`. Используя Blade, Вы можете вывести просто окружив имя переменной двойными фигурными скобками. Это удобно. Теперь Вы можете перейти по адресу `/users` и увидеть имена пользователей.
Это только начало. В этом руководстве Вы увидели азы Laravel, но существует еще очень много еще более интересных вещей которые стоит изучить. Продолжайте изучать документацию и погружайтесь глубже в мощные возможности доступные для Вас в [Eloquent](/docs/eloquent) и [Blade](/docs/templates). Или, может быть, Вас больше интересуют [Очереди](/docs/queues) и [Юнит-тестирование](/docs/testing). Впрочем, может быть Вы хотите размять извилины изучая [IoC-контейнер](/docs/ioc). Выбор за Вами!
Переведено на Нотабеноиде
http://notabenoid.org/book/50993/214052
Переводчики: likemusic
Настройки
Готово:
