Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Se quiseres que uma coisa se faça, encarrega - a a uma pessoa ocupada. (Provérbio chinês)

Criando um Projeto no GitHub

Como Criar um Projeto hospedado no GitHub e no Packagist

Ainda tem um terceiro projeto envolvido, o Composer.
O Composer funciona de forma transparente entre ambos, usado pelo Packagist.

Criando um arquivo compojer.json

Projeto em PHP na dobradinha GitHub e Packagist

Ainda tem um terceiro projeto encolvido, o Composer.
O Composer funciona de forma transparente entre ambos

GitHub
- Criar conta
- Criar novo repositório
- Enviar código fonte para o repositório

1) Crie seu projeto em PHP
- Use um código existente
- Crie um novo
- Faça um fork de algum projeto do GitHub e customise

2) Criando a estrutura do seu projeto
2.1) cd /var/www/html
mkdir meu-projeto
cd meu-projeto
composer init

Responder as perguntas

Package name (<vendor>/<name>) [ribafs/meu-projeto]: (apenas tecle enter para aceitar)

Description []: Meu Primeiro projeto com o Packageist

Author [, n to skip]: Ribamar FS <Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.>

Minimum Stability []: dev
Opções: dev, alpha, beta, RC ou stable

Package Type (e.g. library, project, metapackage, composer-plugin) []: project

License []: MIT

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
(Nesta primeira etapa - no)

Would you like to define your dev dependencies (require-dev) interactively [yes]? no

{
"name": "ribafs/meu-projeto",
"description": "Meu Primeiro projeto com o Packageist",
"type": "project",
"license": "MIT",
"authors": [
{
"name": "Ribamar FS",
"email": "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
}
],
"minimum-stability": "dev",
"require": {}
}

Do you confirm generation [yes]?

Concluído

Referência sobre o composer - https://getcomposer.org/doc/04-schema.md

A estrutura do projeto deve ficar assim (sugestão/recomendação):

/meu-projeto
/src (código fonte do meu projeto)
/vendor (diretório criado pelo Composer para armazenar as dependências)
composer.json
README.md
index.php

3) Abrigar meu-projeto no GitHub
- Criar uma conta no GitHub - https://github.com/
- Criar um repositório para meu-projeto

Adicionar uma chave SSH

Em seu desktop Linux execute:

cd
ssh-keygen -t rsa -b 4096 -C "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
Enter
Enter
Enter

Checando a senha
ls -al ~/.ssh

Capturando o hash da senha

cat ~/.ssh/id_rsa.pub

Copie a chave mostrada desde ssh-rsa ... até seu e-mail, incluso.

Vá ate'o GitHub, faça login e clique acima em sua foto e Settings
SSH and GPG keys
New SSH key

Entre com um Title (Residência)

E cole na caixa Key abaixo

E clique em Add SSH key

Ao criar um repositório no GitHub ele recebe o estágio de desenvolvimento, com um nome:
master-dev

Nesta fase informamos no composer.json assim:
"minimum-stability": "dev",

Quando considerarmos que já está usável e queremos oferecer para o mundo, então

distribuimos assim:
composer require ribafs/cake-control:dev-master

Ou
editando o composer.json do raiz do aplicativo para adicionar a linha abaixo na seção require:
"ribafs/cake-control": "master-dev"

No Packagist ele aparece como
dev-master

Quando considerar que o projeto está estável crie um Release e dê um número para o mesmo.
Agora pode oferecer duas versões: a estável e a em desenvolvimento, assim:

Dev
composer require ribafs/cake-control:dev-master

Estável
composer require ribafs/cake-control-twbs

Depois que configuramos o Packagist e sincrinizamos as atualizações somente precisamos interagir com
nosso código no GitHub, o Packagist e o Composer ficam transparentes.

4) Enviar meu-projeto para o repositório do GitHub
cd /var/www/html/meu-projeto

git config --global user.email "Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo."
git config --global user.name "Ribamar FS"
git init
git add .
git commit -m "Primeiro commit"
git remote add origin Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.:ribafs/cake-control.git
git push -f origin master

Para enviar novamente após alterações
remover a pasta .git
e repetir os passos acima

O projeto está agora hospedado no GitHub e pronto para ser abrigado pelo Packagist.

5) Criando o Pacote no Packagist

Acesse https://packagist.org/
Crie uma conta
Faça login
Clique em Submit a Package

Cole a linha a seguir, lembrando que o nome do pacote deve ser em minúsculas, palavras compostas separadas por hífen:

Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.:ribafs/cake-control.git

E clique em Check

Se retornar correto aceite e faça o submit

6) Atualizações

Cada vez que atualizar o projeto no GitHub precisa atualizar no Packageist
- Vá para sua conta no packagist
- Settings
- My Packages
- Clique no projeto
- Clique em Update (botão verde)

Para tornar automáticas as atualizações
- Vá para seu repositório no GitHub
- Clique em Settings
- Integration & services
- Services - Add service - packagist
- User - ribafs
- Token - o token da sua API (Acesse o site do packagist - login - Profile e copie o token gerado e cole aqui)
- Domain - packagist.org
- Marque Active
Clique em Update service abaixo
Clique acima e à direita em Test service
Caso receba a mensagem "Okay, the test payload is on its way." já poderá ir ao Packagist e abrir seu projeto que não
mais aparecerá a mensagem de que precisa atualizar.

Agora as atualizações foram automatizadas.

Você está pronto para compartilhar seu projeto com o mundo.

Para instalar um plugin (ex.: cake-control), crie um aplicativo em Cake com composer

cd aplicativo
composer require ribafs/cake-control

Mas, desta forma somente será possível após criar um release do projeto no GitHub.
Enquanto não conclue satisfatoriamente seu projeto, poderá divulgar para testes assim:

Editar o composer.json:

Adicionar na seção require-dev a linha

"require-dev": {
"psy/psysh": "@stable",
"cakephp/debug_kit": "~3.2",
"cakephp/bake": "~1.1",
"ribafs/cake-control": "master-dev"
},

Depois executar:

composer update

Ou então diretamente para linha de comando:

composer require ribafs/cake-control:dev-master


Como remover plugin:

Removível somente se bem inicialmente.

composer remove cakephp/localized

Remover manualmente a linha no bootstrap.php e todo o código adicionado ao vendor
além da linha respectiva no composer.json

Referências:

Composer - https://getcomposer.org/doc/03-cli.md
http://blog.jgrossi.com/2013/creating-your-first-composer-packagist-package/
Markdown tutorial - http://www.markdowntutorial.com/ (a linguagem usada pelo GitHub)

Dicas úteis
https://gist.github.com/

Comments fornecido por CComment

Novo Testamento

E não perdoou ao mundo antigo, mas guardou a Noé, pregoeiro da justiça, com mais sete pessoas, ao trazer o dilúvio sobre o mundo dos ímpios;
(2Pe, 2:5)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper