Готовый перевод 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

Настройки

Готово:

100.00% КП = 1.0