Рубрики
Uncategorized

Обзор PHP Создает Ваш Пакет Composer

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

Для перепечатки, пожалуйста, укажите источник статьи: 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 Затем укажите на конкретный веб-сайт. В зависимости от местоположения склада обычно используются тип Необязательные значения:

  1. Композитор, склад размещения пакетов композитора, такой как полное зеркало упаковщика Китая;
  2. Vcs, система управления версиями, например адрес проекта на Github;
  3. Груша, упаковка на ГРУШЕ;
  4. Пакет, расположенный в Интернете;
  5. Артефакт, набор почтовых пакетов с кодом;
  6. Путь, указывающий на конкретное местоположение кода.

Склады в Интернете, тип Общими значениями являются 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 в Интернете:

  1. Упакуйте его в zip-файл и загрузите на любой общедоступный веб-сайт.
  2. Загрузка в хранилище кода с помощью программного обеспечения для управления версиями.
  3. Отправить в одноранговое сообщество;
  4. Отправить в частное хранилище композитора;
  5. Отправить упаковщику.

В первых четырех способах пользователям необходимо настроить информацию о складе для извлечения пакетов (сообщество PEAR почти мертво и незначительно). Если код с открытым исходным кодом, рекомендуется отправить его в Packagist, чтобы облегчить поиск и использование разработчиками PHP по всему миру и внести свой вклад в экосистему Composer.

Отправка пакета упаковщику проходит следующий процесс:

  1. Создавайте проекты на Github и отправляйте код;
  2. Введите адрес проекта в Packagist и отправьте пакет.
  3. В проекте конфигурации Github запустите автоматическое обновление пакета.

Первые два шага необходимы, а третий необязателен. В ответственном отношении к представленному пакету настоятельно рекомендуется завершить третий этап.

Процесс отправки пакетов включает в себя Github и упаковщика. Связь между Github и Packagist такова: на Github размещается фактический код и файлы; на Packagist размещается автор, имя пакета, номер версии, объем загрузки и другие метаданные. Короче говоря, Packagist-это индекс, а Github-поставщик контента.

Подробные инструкции можно найти на официальном веб-сайте или в онлайн-учебниках. В Интернете слишком много связанного контента, поэтому эта статья не будет повторяться.

резюме

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

Справочные ресурсы

  1. Справочные ресурсы
  2. Справочные ресурсы
  3. Справочные ресурсы