Для перепечатки, пожалуйста, укажите источник статьи: https://tlanyan.me/php -обзор…
Каталог ретроспективных серий PHP
- Основа PHP
- веб-запрос
- печенье
- Веб-ответ
- сессия
- Работа с базой данных
- Шифрование и дешифрование
- Композитор
Предыдущий обзор PHP Composer кратко знакомит с соответствующими концепциями и использованием Composer, что не является препятствием для ежедневного развития. Чтобы лучше использовать Composer для совместной работы, необходимо научиться создавать свой собственный пакет Composer. В этой статье сначала объясняется концепция репозитория Composer, а затем даются инструкции по созданию и публикации пакетов Composer.
Хранилище
Хранилище-это распространенная концепция в разработке программного обеспечения, которая похожа на исходный код, в основном относящаяся к месту размещения ресурсов. Многие программы имеют концепции хранилища, такие как yum, npm, maven, Git и главный герой этой статьи, Композитор. Хранилище централизованно управляет ресурсами, что гарантирует нормальную работу программного обеспечения.
Packagist является центральным репозиторием Composer по умолчанию, и большинство пакетов Composer в сообществе PHP размещаются на сайте. Packagist предоставляет открытый бесплатный хостинг, и любой желающий может свободно регистрироваться и публиковать пакеты без аудита. Упаковщик размещается и поддерживается Частным упаковщиком. Основное различие между ними заключается в том, что официальная сеть упаковщиков является https://packagist.org>, хостинг…. Размещенный код не нуждается в открытом исходном коде, и сервер хранилища может быть расположен в интрасети для обеспечения более быстрых и эффективных услуг размещения кода пакета.
Можно настроить несколько репозиториев, и Composer автоматически определяет наиболее подходящие пакеты зависимостей для проекта. Процесс поиска пакетов выглядит следующим образом: сначала проверьте, есть ли в текущем проекте дополнительные склады, затем сначала выполните поиск на дополнительных складах; результаты не извлекаются вверх на дополнительные склады в глобальной конфигурации; без конфигурации или результатов поиска вернитесь на центральный склад упаковщика по умолчанию для извлечения. Если хранилище по умолчанию не отключено, пакеты в пакетах всегда извлекаются. По этой причине Composer рекомендует разработчикам PHP размещать пакеты на веб-сайтах упаковщиков для удобства поиска и ссылок.
Репозиторий конфигурации
Существует два способа настройки репозитория Composer: командная строка и редактирование файлов конфигурации. composer конфигурация Конфигурация композитора-это команда, которая может использоваться для настройки информации о проекте или глобальном хранилище, например:
composer config [-g] repo.packagist composer https://packagist.phpcomposer.com
Второй способ – отредактировать файл конфигурации. Редактирование проекта composer.json или ~/.config/composer/config.json Увеличение репозиториев Конфигурации, например:
"repositories": {
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
}
В приведенной выше конфигурации используется Полное зеркало упаковщика Китая Веб-сайт служит центральным складом по умолчанию. Для развертывания PHP-проектов на материке рекомендуется использовать каталог хранилища, который может ускорить загрузку зависимых пакетов.
Двумя наиболее важными параметрами конфигурации склада являются тип и url . тип Укажите тип склада. url Затем укажите на конкретный веб-сайт. В зависимости от местоположения склада обычно используются тип Необязательные значения:
- Композитор, склад размещения пакетов композитора, такой как полное зеркало упаковщика Китая;
- Vcs, система управления версиями, например адрес проекта на Github;
- Груша, упаковка на ГРУШЕ;
- Пакет, расположенный в Интернете;
- Артефакт, набор почтовых пакетов с кодом;
- Путь, указывающий на конкретное местоположение кода.
Склады в Интернете, тип Общими значениями являются composer и vcs Для локальных проектов общими значениями являются артефакт и путь . Для конкретных случаев использования обратитесь к официальной документации Composer.
Освоив концепцию и конфигурацию склада, мы создадим собственные пакеты.
Создайте свой собственный пакет композитора
Создание пакета Composer занимает всего два шага: 1. Заполнение информации о описании пакета; 2. Написание кода. В этой статье создается hello-композитор Пакет демонстрирует процесс создания. В пакете есть только одна функция: вывод строки” Привет, композитор! “。
Описание информация о пакете Composer хранится в composer.json Файлы могут быть созданы напрямую (или скопированы из других проектов) composer.json Файлы, которые вручную заполняют необходимую информацию поля; также доступны composer init Команда, информация о пакете интерактивного ввода, генерация composer.json Заполните другую информацию поля после файла. Мы редактируем документ напрямую, и мы редактируем документ напрямую. composer.json Введите следующее:
{
"name": "tlanyan/hello-composer",
"description": "Hello, Composer!",
"type": "library",
"require": {
"php": ">=7.0"
},
"license": "MIT",
"authors": [
{
"name": "tlanyan",
"email": "[email protected]"
}
],
"minimum-stability": "stable",
"autoload": {
"psr-4": {
"tlanyan\": "src/"
}
}
}
Вышеизложенное в основном является обязательным полем для пакета Composer. Другие поля можно указать в описании composer.json официального веб-сайта Composer. Следует обратить внимание на маркировку как только для корневых Полей, только для корневых Указывает, что текущий пакет не вступит в силу, пока он не станет основным проектом. например require-dev Поля, разработанные в текущем проекте, пакеты в полях будут загружены и помещены поставщиком В папку; если на проект ссылается другой проект, значение поля игнорируется, и указанный пакет не загружается.
Затем напишите код. оставайтесь src Новое в каталоге HelloComposer.php :
namespace tlanyan;
class HelloComposer
{
public static function greet()
{
echo "Hello, Composer!", PHP_EOL;
}
}
Стиль кода рекомендуется указывать в спецификации PSR-2, имя файла и путь к нему рекомендуется указывать в спецификации PSR-4. Также обратите внимание, что путь к файлу должен быть связан с composer.json в автозапуск Значения совпадают.
В два простых шага мы создали наш собственный пакет Composer. Затем на пакет ссылаются в других проектах.
Ссылка на пакет Composer
Создайте новый тестовый проект, обратитесь к пакету, созданному выше, и посмотрите эффект. Эти шаги заключаются в следующем:
1. Создайте новую тестовую папку, скопируйте или создайте новую composer.json Файл настроен следующим образом:
{
....
"require": {
"tlanyan/hello-composer": "*"
},
"minimum-stability": "dev",
"repositories": {
"local": {
"type": "path",
"url": "/path/to/hello-composer"
}
},
....
}
В файлах конфигурации необходимо обратить внимание на два момента: 1. Если hello-composer composer.json Нет документа версия Поля (или не стабильные версии) минимальная стабильность Значение, если dev (по умолчанию стабильный В противном случае он не может быть установлен; 2. Необходимо добавить пользовательский склад. тип Значение равно путь 。
2. реализация composer install-vvv Установите пакеты зависимостей и создайте их в каталоге поставщика после установки tlanyan/hello-composer Каталог.
3. Создайте новый test.php файл в тесте и обратитесь к классу Hello Composer:
namespace test;
require "vendor/autoload.php";
use tlanyan\HelloComposer;
class Test
{
public static main()
{
HelloComposer::greet();
}
}
Test::main();4. Выполните Test.php: php Test.php Вывод ” Привет, композитор! “。
Настроив репозиторий Composer, мы успешно ссылались на созданный hello-composer пакет. После того, как с тестом все будет в порядке, его можно будет разместить в Интернете для использования другими людьми. Ниже приводится краткое описание процесса выпуска.
Публикация пакетов композитора
Существует несколько способов публикации пакетов Composer в Интернете:
- Упакуйте его в zip-файл и загрузите на любой общедоступный веб-сайт.
- Загрузка в хранилище кода с помощью программного обеспечения для управления версиями.
- Отправить в одноранговое сообщество;
- Отправить в частное хранилище композитора;
- Отправить упаковщику.
В первых четырех способах пользователям необходимо настроить информацию о складе для извлечения пакетов (сообщество PEAR почти мертво и незначительно). Если код с открытым исходным кодом, рекомендуется отправить его в Packagist, чтобы облегчить поиск и использование разработчиками PHP по всему миру и внести свой вклад в экосистему Composer.
Отправка пакета упаковщику проходит следующий процесс:
- Создавайте проекты на Github и отправляйте код;
- Введите адрес проекта в Packagist и отправьте пакет.
- В проекте конфигурации Github запустите автоматическое обновление пакета.
Первые два шага необходимы, а третий необязателен. В ответственном отношении к представленному пакету настоятельно рекомендуется завершить третий этап.
Процесс отправки пакетов включает в себя Github и упаковщика. Связь между Github и Packagist такова: на Github размещается фактический код и файлы; на Packagist размещается автор, имя пакета, номер версии, объем загрузки и другие метаданные. Короче говоря, Packagist-это индекс, а Github-поставщик контента.
Подробные инструкции можно найти на официальном веб-сайте или в онлайн-учебниках. В Интернете слишком много связанного контента, поэтому эта статья не будет повторяться.
резюме
В этой статье представлена концепция репозитория Composer, создается полный пакет Composer и даются рекомендации по отправке пакетов в Packagist. Пользователи могут отправлять код для внесения вклада в сообщество после того, как они освоят соответствующие концепции и рабочие механизмы, а также могут отказаться от бесплатной ссылки на Packagist и установить пакеты зависимостей.
Справочные ресурсы
- Справочные ресурсы
- Справочные ресурсы
- Справочные ресурсы