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 упаковываются, только если параметр Другие варианты #
|