O Symfony Flex possui 2 repositórios públicos onde ele busca os recipes. O primeiro é o repositório oficial onde ficam as recipes da própria equipe do Symfony. O segundo é o repositório contrib onde o pessoal da comunidade envia as recipes que são usadas para bundles públicos que não são oficiais.
Quando precisamos criar recipes para automatizar tarefas em bundles que serão usados apenas em projetos privados, os dois repositórios anteriores não são aplicáveis. Nesses casos podemos criar os nossos próprios repositórios privados para armazenar nossas recipes.
Curso Symfony - Gerenciando aplicações com Symfony Flex
Conhecer o cursoComo criar o repositório privado
O repositório privado do Symfony Flex, na verdade, é um repositório comum Git hospedado no GitHub e integrado ao robô de verificação da equipe do Symfony. O repositório no GitHub pode ser público ou privado, em ambos os casos o recipe será reconhecido, porém já que estamos criando um repositório privado do Flex faz mais sentido o repositório do GitHub também ser privado.
No início de 2019 o GitHub passou a permitir a criação de repositórios privados ilimitados nas contas pessoais gratuitamente, mais informações https://github.blog/2019-01-07-new-year-new-github/
Vamos criar um novo repositório privado no GitHub. Uma vez logado acesse o endereço https://github.com/new e preencha as informações conforme abaixo:
Integrando o repositório do GitHub com o Flex
Agora precisamos indicar ao Symfony Flex que ele deve validar e ler os recipes que colocamos dentro do repositório que acabamos de criar. Isso é feito através de uma integração com o GitHub, acesse o endereço https://github.com/apps/symfony-flex-server/installations/new e selecione a conta que está o repositório que criamos no passo anterior:
Ele vai confirmar sua senha do GitHub e perguntar se você deseja adicionar todos os repositórios da sua conta como repositório do Flex ou apenas 1. Aconselho indicar somente os repositórios que realmente serão usados como repositórios do Symfony Flex:
Depois de clicar em instalar ele apresentará uma tela de congratulations, vamos falar dos passos explicados nessa tela mais adiante.
Curso Symfony - Template Engine Twig
Conhecer o cursoComo liberar os projetos que podem acessar o repositório
Como nós temos um repositório privado é importante que apenas os projetos autorizados consigam utilizar nossos recipes. Para isso nós geramos um identificador único de cada projeto e configuramos dentro do nosso repositório.
Na aplicação Symfony que utiliza o Flex para gerenciamento, execute o comando abaixo:
composer symfony:generate-id
Esse comando não retorna nenhuma mensagem no console. Ele realiza a criação de um identificador do seu projeto dentro do arquivo composer.json
na sessão extra.symfony.id
:
"extra": {
"symfony": {
"allow-contrib": false,
"require": "4.3.*",
"id": "01DFEFJHVTGS3PAR3J1K2HB60T"
}
}
Agora precisamos configurar esse id no repositório junto com todos outros projetos que terão acesso aos recipes. Esse conteúdo é definido dentro do arquivo config.json
na raiz do projeto com o seguinte padrão:
{
"projects": {
"id1": "descriçao do projeto 1",
"id2": "descriçao do projeto 2",
"id3": "descriçao do projeto 3"
}
}
Crie o arquivo na raiz do repositório:
Como enviar os recipes
Precisamos enviar os recipes que vamos usar em nossos projetos para o repositório. Veja o processo para criação e envio do recipe do Synfony Flex neste artigo de continuação.