Может войдёшь?
Черновики Написать статью Профиль

Основы Laravel 5: Встречайте Composer

перевод Основы Laravel 5 Laracasts

Это перевод видео-урока с Laracasts, серия Laravel 5 Fundamentals, урок №1Meet Composer от . Перевод обновлён . Опечатка? Выдели и нажми Ctrl+Enter.

(0:00)
Добро пожаловать в Основы Laravel 5, где мы предполагаем, что вы никогда не использовали фреймворк, но вы заинтригованы им и хотите копнуть глубже. Это моя задача. Однако, я также понимаю, что время ограничено, и нам нужно разобраться со всем как можно быстрее. Так что не переживайте – эти видео не заставят вас скучать. Мы будем двигаться достаточно живо, чтобы было интересно, но не так быстро, что вы не будете за мной поспевать.
Итак, если вы готовы, почему бы нам не начать прямо сейчас?

(0:30)
Одно из лучших нововведений в мире PHP за последние несколько лет – это появление Composer, менеджера зависимостей. В прошлом нам приходилось использовать поистине путанные инструменты типа PEAR, который никто вообще не понимал как использовать, или как минимум никто не любил с ним работать. Но сейчас Composer делает весь процесс бесконечно проще. Что же именно он делает? Он позволяет нам повторно использовать любой код.

(1:00)
Теперь не нужно заново изобретать велосипед — вместо этого мы можем очень быстро скачивать популярные пакеты.
И, фактически, сам фреймворк Laravel включает в себя пару дюжин пакетов, отлично используя экосистему PHP. Если вам любопытно и хочется полазить по всем доступным пакетам, то можете зайти на packagist.org. Например, возможно вас интересует аутентификация или работа с паролями.

(1:30)
Или может быть вы хотите использовать фреймворки типа Codeception, Behat или PhpSpec. Все эти вещи легко доступны через Composer. К слову, это касается и самого Laravel. Если вы посмотрите в документацию Laravel, то найдёте инструмент командной строки, который позволит вам сделать что-то типа:

shlaravel new my-blog

И это всё, что необходимо сделать. Так что это очень удобно.

(2:00)
Однако, если вы захотите поставить его через Composer, то вот как мы можем это сделать. Самый первый шаг – вы должны установить Composer на ваш компьютер, и, как я только что сделал – проверить его наличие, введя команду composer
Но, скорее всего, если вы никогда о нём раньше не слышали, то его у вас нет, и вам нужно его установить. Давайте так и сделаем. Идём обратно на сайт getcomposer.org, в Download. И, хотя он у меня уже поставлен, почему бы не сделать это еще раз... Итак, я копирую это, вставляю и запускаю:

shcurl –sS https://getcomposer.org/installer | php

(2:30)
(заметьте что мы скачиваем установщик и направляем его в php).
Вы заметите, что у нас появится файл composer.phar — если вы никогда не видели это расширение, то думайте о нём, как об архиве специально для PHP. Так что мы можем просто сделать:

shphp composer.phar

и вот у нас появился Composer.
Однако, по-правде говоря, я хочу просто набирать composer в любом месте на моей машине, и чтобы он работал.

(3:00)
Чтобы так сделать, я перенесу файл composer.phar в глобально-доступное место. Например, на моём Mac:

shmv composer.phar /usr/local/bin/composer

(я хочу ссылаться на него просто как composer, без .phar)
Итак, если вы откроете новую вкладку терминала и наберёте composer, то у вас должно быть всё готово.
Так вы справитесь с этой задачей на системах вроде Mac. Для пользователей Windows я не буду сильно углубляться.

(3:30)
Просто зайдите в Documentation → Introduction, затем Installation — Windows и следуйте шагам. Большой разницы там быть не должно.
Итак, давайте я быстро покажу, как это всё работает. Мы уже подробно осветили Composer на сайте Laracasts, так что не будем вдаваться в детали, но я хочу дать вам краткое изложение на пару минут.
Давайте создадим проект tmp:

shmkdir tmp
cd tmp

(просто что-нибудь для демонстрации).
Сейчас я собираюсь подключить какую-нибудь библиотеку к проекту, над которым работаю.

(4:00)
Это может быть тестовый фреймворк или любой другой тип компонента, который я не хочу писать самостоятельно.
Вместо этого мы позволим сообществу поработать за нас. Почему бы нам не взять фреймворк для тестирования phpSpec? Мне всего лишь нужно ввести:

shcomposer require phpspec/phpspec

Кстати, если вы задумываетесь, откуда я знаю, что здесь писать – если вы обратитесь к сайту packagist.org и посмотрите там, то вам будут даны инструкции. И обычно вы начнете запоминать их для тех пакетов, которыми часто пользуетесь.

(4:30)
Обратите внимание сюда – вот то, что нам нужно: имя автора (vendor) и название пакета (package), и, в данном случае, они совпадают. Так что если мы вернемся обратно и запустим ту команду – у нас скачается phpSpec для использования в этом конкретном проекте. Ждём всего минуту для загрузки. ОК, выполнено, теперь на что я хочу обратить ваше внимание – у phpSpec тоже есть несколько зависимостей, которые ему требуются. Это пакеты вроде symfony/yaml, doctrine/instantiator, symfony/finder и т.д.

(5:00)
Взять к примеру, symfony/yaml — у сообщества уже есть готовый пакет для загрузки и разбора YAML-файлов, так что нам не нужно изобретать велосипед. Вместо этого мы просто включаем этот пакет в наш проект, и можем сразу же пользоваться всем его функционалом.
Хорошо, теперь посмотрим список файлов:

shls

(5:30)
И здесь вы увидите, что у нас появился файл composer.json.
Считайте, что это файл конфигурации, в котором записаны все пакеты, которые мы используем. С его помощью, если я дам этот проект кому-либо еще, то он может просто сделать:

shcomposer install

и это подтянет всё, что я записал тут.
Далее, если мы заглянем в папку vendor:

shls vendor

Любые пакеты, которые мы подтянем через Composer, будут помещены здесь. Сейчас, когда у нас уже есть phpSpec, там расположен он сам и его зависимости.

(6:00)
Теперь давайте заглянем в папку bin:

shls vendor/bin

Все запускаемые файлы по умолчанию будут здесь. Значит теперь я могу сделать так:

shvendor/bin/phpspec

и phpSpec запустится. Круто, не правда ли?
Теперь осталось только упомянуть тот факт, что Composer включает очень полезный автозагрузчик.

(6:30)
Это и есть то, чем пользуется Laravel и большинство современных проектов. То есть, используя автозагрузчик в Composer, мы можем следовать общепринятому соглашению, которое позволяет нам с легкостью импортировать, например, необходимые классы PHP взамен многократных PHPrequire. Но не беспокойтесь, мы копнём эту тему чуть глубже в будущих уроках.
Пока что, вернёмся к моему рабочему столу и поставим сам Laravel. В этом примере нам не потребуется пакет, а мы создадим новый проект при помощи Composer.

(7:00)
Для этого мы можем воспользоваться командой shcomposer create-project.
Давайте вернемся и снова выберем Laravel (нам нужно подтянуть вот этот пакет – laravel/laravel). Опять названия автора-вендора и пакета совпали. Далее мы можем задать имя папки, в которую будем его устанавливать (как насчёт learning-laravel-5?), и теперь, только на своей машине, я укажу, что хочу ветку для разработчиков:

shcomposer create-project laravel/laravel learning-laravel-5 dev-develop

(7:30)
Я это делаю лишь потому, что от момента этой записи и до официального запуска Laravel 5 еще несколько недель. У себя вам не нужно это указывать, а я делаю это, поскольку хочу development-ветку, а не production-ветку, которая всё еще соответствует Laravel 4.
Хорошо, мы запустили команду и нам нужно подождать до окончания загрузки всего порядка 30 секунд. Так, теперь нас спрашивают, хотим ли мы убрать действующий контроль версий. Да, хотим. И вот, всё готово!

(8:00)
Итак, давайте заглянем туда:

shcd learning-laravel-5

отобразим список файлов (ls), и вот перед нами свежеустановленный Laravel.
Сейчас мы посмотрим, для чего все эти разные файлы и папки, так что не паникуйте. Мы разберем всё по частям. Однако, чтобы закончить это видео, давайте по-быстрому загрузим сервер и посмотрим на страницу приветствия Laravel.
Так, у меня в системе уже установлен PHP, так что я воспользуюсь его встроенным сервером.

(8:30)
Он будет доступен на localhost, через порт 8888. Нам всегда нужно устанавливать корень каталога документов (document root) в папку public внутри Laravel . Итак, запустим:

shphp –S localhost:8888 –t public

и готово!
Если мы видим красивую и лаконичную страницу приветствия, значит Laravel 5 установлен и готов к работе. Так что если вы, работая параллельно, достигли такого же результата – поздравляю, отличная работа!

(9:00)
Однако возможно и то, что по ходу процесса что-то не сработало. Например, частой причиной сбоя установки является отсутствие расширения Mcrypt. Так что если вы увидите что-нибудь подобное, то это всего лишь сигнал: «Эй! Мне нужно установить данное расширение для работы, но оно отсутствует в твоей версии PHP, так что тебе нужно это исправить».

(9:30)
Если вы используете систему вроде Linux, то это очень легко исправить. Доустановите его через менеджер пакетов и вперёд!
Однако если вы на Mac или Windows и пользуетесь инструментом всё-в-одном типа WAMP или MAMP и его версия не содержит расширения Mcrypt, то как же быть? Тут вещи немного усложняются. И в следующем видео мы рассмотрим один из подходов к решению этой проблемы – использование Laravel Homestead.

Как вы считаете, полезен ли этот материал? Да Нет

Комментарии (2)

Mefistofel

Отличный перевод, осталось свое видео снять с своим звуком

neil

уже сняли https://www.youtube.com/watch?v=SpeO9kevARY :)

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.