Private Packagist #Private Packagist - это коммерческий пакет, предлагающий профессиональную поддержку и веб-управление частными и общедоступными пакетами, а также подробные разрешения доступа. Private Packagist обеспечивает зеркальное отображение ZIP-файлов пакетов, что делает установку более быстрой и независимой от сторонних систем - например,. Вы можете развернуть, даже если GitHub отключен, потому что ваши zip-файлы зеркально отражаются. Частный Packagist доступен как размещенное решение SaaS или как локальный пакет на месте, предоставляя простой интерактивный опыт настройки. Некоторые из доходов Private Packagist используются для оплаты разработки и хостинга Composer и Packagist.org, поэтому его использование является хорошим способом поддержки содержания этих проектов с открытым исходным кодом в финансовом отношении. Дополнительную информацию о том, как настроить собственный архив пакетов на сайте Packagist.com, можно найти здесь. Satis #Satis, с другой стороны, является открытым исходным кодом, но только генератором репозитория статического
Установка #Например, предположим, что у вас есть несколько пакетов, которые вы хотите повторно использовать в своей компании, но на самом деле не хотите открывать исходный код. Сначала вы должны определить конфигурацию Satis: файл json с произвольным именем, в котором перечислены ваши кураторские репозитории. Вот пример конфигурации: вы видите, что он содержит несколько репозиториев VCS, но это могут быть любые типы репозиториев. Затем используется По умолчанию файл Satis ищет файл { "name": "My Repository", "homepage": "http://packages.example.org", "repositories": [ { "type": "vcs", "url": "https://github.com/mycompany/privaterepo" }, { "type": "vcs", "url": "http://svn.example.org/private/repo" }, { "type": "vcs", "url": "https://github.com/mycompany/privaterepo2" } ], "require-all": true } Если вы хотите выбрать нужные вам пакеты, вы можете перечислить все пакеты, которые вы хотите иметь в вашем репозитории satis внутри классического composer-ключа { "repositories": [ { "type": "vcs", "url": "https://github.com/mycompany/privaterepo" }, { "type": "vcs", "url": "http://svn.example.org/private/repo" }, { "type": "vcs", "url": "https://github.com/mycompany/privaterepo2" } ], "require": { "company/package": "*", "company/package2": "*", "company/package3": "2.0.0" } } Как только вы это сделаете, вы просто запустите:
Когда вы сгладили этот процесс, то, что вы обычно делаете, запускает эту команду как задание cron на сервере. Затем он будет обновлять всю вашу информацию о пакете так же, как это делает Packagist. Обратите внимание, что если ваши частные пакеты размещены на GitHub, ваш сервер должен иметь ключ ssh, который дает ему доступ к этим пакетам, а затем вы должны добавить в команду флаг Настройте виртуальный хост, который указывает на эту папку Частичные обновления #Вы можете сказать Satis выборочно обновлять только определенные пакеты или обрабатывать только репозиторий с заданным URL. Это сокращает время, затрачиваемое на перекомпиляцию файла Чтобы перестроить только определенные пакеты, передайте имена пакетов в командной строке следующим образом:
Обратите внимание, что для этого все равно потребуется извлечь и проверить все ваши репозитории VCS, так как любой репозиторий VCS может содержать (в любой ветке) один из выбранных пакетов. Если вы хотите сканировать только один репозиторий и обновить все найденные в нем пакеты, передайте URL-адрес репозитория VCS в качестве необязательного аргумента:
Применение #В ваших проектах все, что вам нужно добавить сейчас, это ваше собственное репозитарий композиторов, использующий URL-адрес { "repositories": [ { "type": "composer", "url": "http://packages.example.org/" } ], "require": { "company/package": "1.2.0", "company/package2": "1.5.2", "company/package3": "dev-master" } } Безопасность #Чтобы обеспечить безопасность своего личного репозитория, вы можете разместить его через SSH или SSL, используя сертификат клиента. В своем проекте вы можете использовать Пример использования пользовательского репозитория с использованием SSH (требуется расширение PECL для SSH2): { "repositories": [{ "type": "composer", "url": "ssh2.sftp://example.org", "options": { "ssh2": { "username": "composer", "pubkey_file": "/home/composer/.ssh/id_rsa.pub", "privkey_file": "/home/composer/.ssh/id_rsa" } } }] } Совет. Для получения дополнительной информации см. Параметры контекста ssh2. Пример использования HTTP через SSL с использованием сертификата клиента: { "repositories": [{ "type": "composer", "url": "https://example.org", "options": { "ssl": { "local_cert": "/home/composer/.ssl/composer.pem" } } }] } Совет. Для получения дополнительной информации см. Параметры контекста ssl. Пример использования пользовательского поля заголовка HTTP для аутентификации токенов: { "repositories": [{ "type": "composer", "url": "https://example.org", "options": { "http": { "header": [ "API-TOKEN: YOUR-API-TOKEN" ] } } }] } Аутентификация #Когда ваши личные репозитории защищены паролем, вы можете сохранить данные аутентификации навсегда. В первый раз, когда Composer должен аутентифицироваться в отношении какого-либо домена, он запросит у вас имя пользователя/пароль, и тогда вас спросят, хотите ли вы сохранить его. Хранение может быть выполнено либо глобально в файле Вы также можете настроить их вручную с помощью команды config, если вам нужно настроить производственный компьютер, чтобы иметь возможность запускать неинтерактивную установку. Например, чтобы ввести учетные данные для example.org, можно ввести:
Это сохранит его в auth.json текущего каталога, но если вы хотите, чтобы он был доступен глобально, вы можете использовать флаг Загрузки #Когда репозитории GitHub, GitLab или BitBucket отражаются на вашем локальном сатисе, процесс сборки будет включать в себя местоположение загрузки, которое эти платформы предоставляют. Это означает, что репозиторий и ваша настройка зависят от доступности этих служб. В то же время это означает, что весь код, размещенный где-то в другом месте (на другой службе или, например, в Subversion), не будет загружать файлы, поэтому установка обычно занимает намного больше времени. Чтобы включить установку satis для создания загрузок для всех (Git, Mercurial и Subversion) ваших пакетов, добавьте следующее в файл { "archive": { "directory": "dist", "format": "tar", "prefix-url": "https://amazing.cdn.example.org", "skip-dev": true } } Разъяснение опций #
После включения все загрузки (включая файлы GitHub и BitBucket) будут заменены на локальную версию. prefix-url #Префикс URL-адреса другому узлу особенно полезен, если загрузка завершается в отдельном сегменте Amazon S3 или на хосте CDN. CDN значительно увеличит время загрузки и, следовательно, установку пакета. Пример: Веб-выходы #
Заброшенные пакеты #Чтобы включить вашу установку satis, чтобы указать, что некоторые пакеты были оставлены, добавьте следующее в файл { "abandoned": { "company/package": true, "company/package2": "company/newpackage" } } Значение Обратите внимание, что все пакеты, установленные как оставленные в их собственном файле Разрешение зависимостей #Можно сделать так, чтобы satis автоматически разрешал и добавлял все зависимости для ваших проектов. Это можно использовать с функцией загрузки, чтобы иметь полное локальное зеркало пакетов. Просто добавьте следующее в ваш { "require-dependencies": true, "require-dev-dependencies": true } При поиске пакетов satis попытается решить все необходимые пакеты из перечисленных репозиториев. Поэтому, если вам требуется пакет от Packagist, вам нужно определить его в вашем Зависимости Dev упаковываются, только если параметр Другие варианты #
|