краткое введение
Сейчас масштаб программного обеспечения становится все больше и больше, и режим разработки 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/