Рубрики
Uncategorized

Композитор управляет зависимостями PHP

Автор оригинала: David Wong.

краткое введение

Сейчас масштаб программного обеспечения становится все больше и больше, и режим разработки PHP-проекта сильно изменился много лет назад. Когда я впервые изучил PHP, Блог был хорошим примером, почти представляющим модель разработки PHP-проектов. В то время версия PHP 5.x только начинала набирать популярность, и все еще существовало большое количество производственных сред, использующих PHP 4.x. ООП не так популярна в PHP-проектах из-за исторических проблем. С выпуском PHP 5.3 и расширением масштабов PHP-проектов в PHP также появилась модель разработки ООП, которая сыграла важную роль в других языковых областях.

Масштабные проекты не могут начинаться с нуля. Использование ресурсов, уже предоставленных сообществом, может принести большое удобство проекту. Однако интегрировать два проекта с открытым исходным кодом сложно из-за их раздельной упаковки и обработки зависимостей. Хотя Pear является официальным инструментом управления пакетами, поддерживаемым PHP, до сих пор не существует хорошего унифицированного подхода к управлению зависимостями. Пока не появился композитор.

Стиль управления зависимостями композитора больше похож на Java Maven. Компиляция и упаковка проекта, разрешение зависимостей могут быть легко реализованы. Больше не утруждайте себя поиском или обновлением сторонних библиотек или их интеграцией. Все это может быть сделано композитором.

Пример

Давайте начнем с примера, похожего на Hello world. Давайте сначала разберемся в композиторе с точки зрения восприятия.

Как включить Composer в PHP-проекте, очень просто. Просто создайте композитора . Файл JSON в корневом каталоге проекта. Он содержит следующее содержимое:

{
"require": {
"monolog/monolog": "1.2.*"
}
}

Поэтому мы добавили ссылку на библиотеку монологов. Да, все так просто. Однако вам также необходимо использовать composer для обновления пакетов зависимостей, открытия оболочки и переключения в каталог проекта для выполнения:

composer install

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

Затем вам нужно обратиться к загрузчику в общедоступном файле ввода вашей системы, чтобы автоматически загружать классы:

require 'vendor/autoload.php';

устанавливать

Приведенные выше примеры дают вам общее представление об использовании composer. Вот как установить composer в среде PHP. Среда Unix/Linux/OSX

К счастью, установка composer в среде Unix-это простой вопрос. Требуется только одна строка команды:

curl -sS https://getcomposer.org/installer | php

Это позволит установить композитора. файл phar для вас в текущем рабочем каталоге и запустите с помощью PHP composer. фар. Конечно, вы можете предпочесть сделать composer командой Unix, как и любую другую. Это просто, всего лишь еще один шаг:

mv composer.phar /usr/local/bin/composer

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

На этом этапе вы можете использовать composer, как в примере. окна环境

Композитор официально рекомендует устанавливать с помощью установочного пакета, который, как говорят, устанавливается в режиме мастера путем загрузки Composer-Setup.exe.

Для ручной установки, пожалуйста, обратитесь к http://getcomposer.org/doc/00-intro.md. Автоматическая загрузка

Для достижения необязательного использования классов PHP рекомендуется следовать определенным правилам определения пространства имен классов. Это правило может быть согласовано проектной группой. Однако, чтобы унифицировать библиотеки классов, проект PHP-FIG определяет спецификацию для пространств имен PHP, PSR-0, которая принята некоторыми популярными проектами PHP. Composer поддерживает этот стандартный загрузчик библиотеки классов, просто добавляя узлы автоматической загрузки в файл composer.json:

{
"autoload": {
"psr-0": {"Acme\": "src/"}
}
}

Что касается спецификации PSR-0, то существует несколько важных требований:

Namespace Specification Reference:  Vendor Name > (< Namespace >)* < Class Name >
Each namespace requires a top-level space, vendor name. Used to specify differences at package level.
Namespaces and paths to PHP files are one-to-one, and the final namespace separator will be converted to DIRECTORY_SEPARATOR
File name must be class name.php

Для получения этой спецификации обратитесь к http://blog.mosil.biz/2012/08/psr-0-autoload-standard/this статья. Для получения дополнительной информации о PSR-0 обратитесь к их официальному сайту: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md.

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

Примечание. Библиотека классов composer по умолчанию загружается автоматически с использованием спецификации PSR-0. Таким образом, нет необходимости в дополнительной настройке. Найдите необходимую библиотеку классов

Composer предоставляет “хранилище” библиотек классов, где вы можете сразу же найти библиотеки классов с открытым исходным кодом, которые вы хотите использовать, и добавить их в свой проект. Портал: https://packagist.org/Упаковка вашей собственной библиотеки классов

Чтобы предоставить вам свои собственные библиотеки классов, вам сначала необходимо настроить информацию об упаковке для ваших библиотек классов (во-первых, вам необходимо убедиться, что ваши библиотеки классов управляются composer). Набор в файле composer.json:

{
"name": "your-vendor-name/package-name",
"require": {
"php": ">=5.3.0",
"another-vendor/package": "1.*"
}
}

Затем вы можете отправиться в https://packagist.org/and отправьте свою библиотеку.

Для получения дополнительной информации о composer вы можете обратиться к:

Быстрый старт: http://getcomposer.org/doc/00-intro.md

Документы: http://getcomposer.org/doc/

Список пакетов: https://packagist.org/