Применение и использование Composer для PHP

Composer

Composer

В настоящее время при разработки современных приложений используют пакетные менеджеры для управления зависимостями. При разработке на PHP используют Composer. Если вы PHP-разработчик то вы либо уже используете Composer, либо уже что-то слышали о нём. А если не слышали, то вам будет интересно и полезно прочитать данную статью. В статье будут показаны практические примеры с приложенными скриншотами и листингом кода.

Пакетные менеджеры упрощают установку и обновление сторонних библиотек, от которых зависит ваш проект. Они позволяют установить и подключить стороннюю библиотеку одной командой в консоли, после чего вы сразу же сможете использовать библиотеку (набор классов) в своем коде.

Composer — это пакетный менеджер, который предоставляет средства по управлению зависимостями и управлением автозагрузкой в PHP-приложении. Пакеты устанавливаются внутрь вашего проекта и доступны только в нём.

Установка Composer

Официальная страница, на которой вы можете найти информацию по установке Composer, находится здесь. Однако, если вы используете ОС на базе GNU/Linux, то проще всего установить Composer с помощью пакетного менеджера вашей операционной системы. Например для Ubuntu:

sudo apt install composer

Для Windows-пользователей придется воспользоваться инструкцией, ссылка на которую была дана выше.

Использование Composer

Если вы хотите использовать сторонние библиотеки, то при создании проекта на PHP или в уже готовом проекте вам необходимо инициализировать Composer для данного проекта. Инициализация всего лишь предполагает создание файла composer.json в корне вашего проекта с нужными вам параметрами. Проще всего это сделать в автоматизированном режиме командой composer init находясь в корневой директории вашего проекта

composer init

Далее вы перейдёте в интерактивный режим генерации package.json, в котором система вам задаст несколько следующих вопросов:

Package name — название вашего проекта(пакета). Обычно пишется в формате <vendor>/<package>, где vendor — название организации или разработчика, а package — название проекта или библиотеки.

Description — описание приложения.

Author — автор проекта. Обычно предлагает по умолчанию ваши данные из Git. примерный формат Nikolay Sergeychuk <nicknixer@gmail.com>

Далее задаст еще несколько вопросов, которые тоже можно просто пропустить, и предоставит листинг готового package.json.

Для примера я создам директорию для проекта и первым делом инициализирую в нём Composer

Пример инициализации Composer

Пример инициализации Composer

Теперь в проекте есть файл package.json, в который мы можем добавлять списо зависимостей.

Зависимости бывают двух типов: обычные и девелоперские.

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

Девелоперские зависимости — зависимости, которые нужны лишь на этапе написания кода и не нужны в продакшене. Например библиотеки для тестирования, на продакшене они совсем необязательны.

Для добавления зависимости к проекту можно использовать команду следующего вида

composer require somepackage/somepackage:someversion

Например нам необходимо в проекте сгенерировать файл для Excel, для этого нам нужно было бы разобраться как устроены такие файлы и написать код, который будет создавать такой файл — это всё очень долго. С Composer мы можем просто найти готовую билбиотеку, подключить её и использовать удобный API для создания таких файлов.

Давайте подключим такую библиотеку, для примера возмём PHPExcel. Найти библиотеки можно на сайте https://packagist.org/ 

composer require PHPOffice/PHPExcel

После чего Composer скачает данную библиотеку и пропишет зависимость в package.json

Установка пакета в Composer

Установка пакета в Composer

Содержимое package.json изменилось, а в корне проекта появилась директория vendor с файлами установленной библиотеки. При переносе исходного кода, например при использовании системы контроля версий (Git etc.), совсем необязательно тянуть с собой директорию vendor. Достаточно переностить проект без нее, а затем выполнять composer install в корне проекта. Composer скачает и установит пакеты, прописанные в package.json

Если вы хотите обновить ваши пакеты до совместимых версий выше, то используйте команду composer update

Использование подключенных пакетов

Для использования установленных Composer’ом библиотек, необходимо добавить автозагрузку. В современных приложениях используется паттерн front controller, он позволяет иметь единую точку доступа в приложение. То есть все запросы к приложению заходят в него, а он определяет каким контроллером должен формироваться респонс. Если в вашем приложении такого нет, то страшного нет ничего, вам просто придётся подключать файл автозагрузки во всех местах, где вы собираетесь использовать установленные библиотеки.

Например, у меня приложение состоит из одного файла — index.php, автозагрузку мне необходимо написать в нём.

index.php с подключенной автозагрузкой выглядит следующим образом

Всё, везде ниже можно теперь использовать подключенные библиотеки.

Давайте воспользуемся установленной библиотекой и напишем приложение, которое сгенерирует файл для Excel с записю Hello, world! в первой ячейке.

Вдаваться в подробни как работать с PHPExcel не будем, т.к. это уже было описано в статье использование PHPExcel библиотеки, поэтому сразу приведу код файла index.php

Как видите, в коде мы используем классы, предоставленные библиотекой PHPExcel.

Запустим скрипт командой

php index.php

Он отработает и создаст файл Hello.xls, открыв который, можно обнаружить следующее

Hello word в xls

Hello word в xls

 

Composer значительно упрощает разработку, вам нет необходимости скачивать откуда-то готовые библиотеки и скрипты, а затем подключать их с помощью include. Composer всё делает за вас сам. При этом, при переносе кода вашего проекта, вам не нужно тянуть готовые библиотеки, вы можете перенести только свой код, а затем просто установить эти библиотеки с помощью Composer.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *