SlideShare uma empresa Scribd logo
Disponibilizando
dependências PHP com
Composer, GitHub e Packagist
Thiago Henrique Poiani
Mestrando em Ciências da
Computação
Especialização em
Desenvolvimento de Software
para Web
Tecnologia em Análise e
Desenvolvimento de Sistemas
Thiago Henrique Poiani
Background
PHP, C#, Java
JavaScript, Node.JS, AngularJS
MySQL, PostgreSQL, MongoDB
HTML5, CSS3, SASS
Composer, Bower, npm
Grunt
Mocha, PHPUnit
Contatos
thpoiani.com.br
thpoiani@gmail.com
github.com/thpoiani
linkedin.com/in/thpoiani
Thiago Henrique Poiani
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Apresentações
http://bit.ly/
flisol-2015-disponibilizando-dependencias-php
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☐ Controle de Versão
☐ Git
☐ Gerenciamento de Dependências
☐ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☐ Controle de Versão
☐ Git
☐ Gerenciamento de Dependências
☐ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Controle de Versão
Concurrent Version System
Subversion
Mercurial
Git
Controle de Versão
Stack Overflow. Why Should I Use Version Control?. Disponível em: http://stackoverflow.com/a/1408464
Controle de Versão
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☐ Git
☐ Gerenciamento de Dependências
☐ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Controle de Versão - Git
http://git-scm.com/
Controle de Versão - Git
nvie.com. A successful Git branching model. Disponível em: http://nvie.com/posts/a-successful-git-branching-model/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Controle de Versão - Git
GitHub
Controle de Versão - Git
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Controle de Versão - Git
$ git clone https://github.com/thpoiani/flisol-2015.git
$ cd flisol-2015/
$ echo "<?php echo 'Hello World'; ?>" > index.php
$ php index.php
$ sudo apt-get install php5-cli
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Controle de Versão - Git
$ git status
$ git add index.php
$ git commit -m "Hello World"
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
$ git push origin master
git config --global push.default simple
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☐ Gerenciamento de Dependências
☐ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências
Controle da versão da dependência
Dependências apenas para desenvolvimento
Padronização da estrutura do projeto
Não reinventar a roda
Gerenciamento de Dependências
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☐ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
https://getcomposer.org/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar init
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
composer.json
{
"name": "thpoiani/flisol-2015",
"license": "MIT",
"authors": [
{
"name": "Thiago Henrique Poiani",
"email": "thpoiani@gmail.com"
}
],
"require": {}
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
composer.json
"require": {
"symfony/translation": "2.6.6"
}
$ php composer.phar install
$ php composer.phar update
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
vendor/
pasta com as dependências
vendor/autoload.php
função responsável por realizar o __autoload
vendor/composer/autoload_*
definição dos namespaces
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
Como uso a dependência instalada?
require("vendor/autoload.php");
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
index.php
<?php
require("vendor/autoload.php");
echo 'Hello World';
?>
Gerenciamento de Dependências - Composer
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
require("vendor/autoload.php");
use SymfonyComponentTranslationTranslator;
use SymfonyComponentTranslationLoaderArrayLoader;
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
$translator = new Translator(null);
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array',
array('Hello World' => 'Olá Mundo'), 'pt'
);
$translator->addResource('array',
array('Hello World' => 'Hola Mundo'), 'es'
);
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
echo $translator->trans('Hello World');
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$language = isset($argv[1]) ? $argv[1] : null;
$translator->setLocale($language);
echo $translator->trans('Hello World');
Gerenciamento de Dependências - Composer
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ php index.php
$ php index.php pt
$ php index.php es
Gerenciamento de Dependências - Composer
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ git status
Gerenciamento de Dependências - Composer
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Gerenciamento de Dependências - Composer
Deixe a pasta vendor/ fora do seu
repositório
.gitignore
vendor/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ git status
$ git add --all
$ git commit -m "i18n"
$ git push origin master
Gerenciamento de Dependências - Composer
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☐ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP
5.3
Namespace are a way of encapsulating
items.
PHP Manual. Namespaces overview. Disponível em: http://php.net/manual/en/language.namespaces.rationale.
php
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☐ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP - FIG
PHP Framework Interop Group
PSR-0 Autoloading Standard
PSR-1 Basic Coding Standard
PSR-2 Coding Style Guide
PSR-3 Logger Interface
PSR-4 Improved Autoloading
PHP-FIG — PHP Framework Interop Group. Disponível em: http://www.php-fig.org/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP - FIG
PHP Framework Interop Group
PSR-0 Autoloading Standard
PSR-1 Basic Coding Standard
PSR-2 Coding Style Guide
PSR-3 Logger Interface
PSR-4 Improved Autoloading
PHP-FIG — PHP Framework Interop Group. Disponível em: http://www.php-fig.org/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☒ FIG ☐ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP PSR-4
Namespace
<?php
<NamespaceName>(<SubNamespaceNames>)*<ClassName>
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP PSR-4
Namespace
<?php
<NamespaceName>(<SubNamespaceNames>)*<ClassName>
use SymfonyComponentTranslationTranslator;
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP PSR-4
Namespace
<?php
<NamespaceName>(<SubNamespaceNames>)*<ClassName>
use SymfonyComponentTranslationTranslator;
/vendor/symfony/translation/Symfony/Component/Translation/Translator.php
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
PHP PSR-4
Vamos desenvolver
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agência de Viagens
$ mkdir src/Funcionario -p
$ mkdir src/Utils -p
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
src/Utils/Dicionario.php
<?php
namespace AgenciaDeViagensUtils;
use SymfonyComponentTranslationTranslator;
use SymfonyComponentTranslationLoaderArrayLoader;
class Dicionario {
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
src/Utils/Dicionario.php
class Dicionario {
private $translator;
public function __construct($language) { }
public function consultar($texto) { }
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
src/Utils/Dicionario.php
public function __construct($language)
{
$this->translator = new Translator(null);
$this->translator->addLoader('array', new ArrayLoader());
$this->translator->addResource('array',
array('Hello World' => 'Olá mundo'), 'pt'
);
$this->translator->addResource('array',
array('Hello World' => 'Hola Mundo'), 'es'
);
$this->translator->setLocale($language);
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
src/Utils/Dicionario.php
public function consultar($texto)
{
return $this->translator->trans($texto);
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
src/Funcionario/Atendente.php
<?php
namespace AgenciaDeViagensFuncionario;
use AgenciaDeViagensUtilsDicionario;
class Atendente {
public function falar(Dicionario $dicionario, $texto)
{
return $dicionario->consultar($texto);
}
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
index.php
<?php
require("vendor/autoload.php");
require("src/Funcionario/Atendente.php");
require("src/Utils/Dicionario.php");
use AgenciaDeViagensUtilsDicionario;
use AgenciaDeViagensFuncionarioAtendente;
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
index.php
$language = isset($argv[1]) ? $argv[1] : null;
$atendente = new Atendente();
$dicionario = new Dicionario($language);
echo $atendente->falar($dicionario, 'Hello World');
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ php index.php
$ php index.php pt
$ php index.php es
PHP PSR-4
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ git status
$ git add --all
$ git commit -m "Agência de Viagens"
$ git push origin master
PHP PSR-4
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Autoloading com Composer
composer.json
"autoload": {
"psr-4": {
"AgenciaDeViagens": "src/"
}
}
PHP PSR-4
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ php composer.phar update
/vendor/composer/autoload_psr4.php
PHP PSR-4
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
require("vendor/autoload.php");
// require("src/Funcionario/Atendente.php");
// require("src/Utils/Dicionario.php");
use AgenciaDeViagensUtilsDicionario;
use AgenciaDeViagensFuncionarioAtendente;
index.php
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ git status
$ git add --all
$ git commit -m "Composer Autoload"
$ git push origin master
PHP PSR-4
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☒ FIG ☒ PSR-4
☐ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência
Exploring Data. npm Packages Dependencies Graph. http://exploringdata.github.io/vis/npm-packages-
dependencies/
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☒ FIG ☒ PSR-4
☒ Disponibilizar dependência
☐ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - GitHub
É possível disponibilizar a dependência
através do GitHub, usando o seguinte
atributo no composer.json
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - GitHub
composer.json
"repositories": [
{
"type": "git",
"url": "https://github.com/thpoiani/flisol2015"
}
],
"require": {
"thpoiani/flisol-2015": "dev-master"
}
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - GitHub
Mas, para isso é necessário uma chave SSH
Homework
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☒ FIG ☒ PSR-4
☒ Disponibilizar dependência
☒ GitHub ☐ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - Packagist
Repositório de dependências
Packagist - https://packagist.org
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - Packagist
Popular Packages
psr/log
monolog/monolog
symfony/event-dispatcher
symfony/console
swiftmailer/swiftmailer
phpunit/php-code-coverage
symfony/yaml
phpunit/php-token-stream
phpunit/phpunit
Disponibilizar dependência - Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Disponibilizar dependência - Packagist
https://github.com/thpoiani/flisol-2015/settings
WebHooks & Services
Services
User
Token
Test Service
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Agenda
☒ Controle de Versão
☒ Git
☒ Gerenciamento de Dependências
☒ Composer
☒ PHP
☒ FIG ☒ PSR-4
☒ Disponibilizar dependência
☒ GitHub ☒ Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
$ mkdir agencia-de-viagens
$ curl -sS https://getcomposer.org/installer | php
$ php composer.phar init
composer.json
"require": {
"thpoiani/flisol-2015": "dev-master"
}
$ php composer.phar install
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
index.php
<?php
require("vendor/autoload.php");
use AgenciaDeViagensFuncionarioAtendente;
echo get_class(new Atendente());
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Homework
Criar uma versão estável (tag) do código no GitHub
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Homework
Criar uma versão estável (tag) do código no GitHub
Mudar o require do seu código no composer.json para a
versão estável
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Homework
Criar uma versão estável (tag) do código no GitHub
Mudar o require do seu código no composer.json para a
versão estável
Desenvolver uma dependência que esteja no TOP 10 do
Packagist
FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani
Obrigado
http://bit.ly/
flisol-2015-disponibilizando-dependencias-php-final

Mais conteúdo relacionado

Destaque

Gerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o ComposerGerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o Composer
Andre Cardoso
 
Composer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - SeasonComposer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - Season
Rogerio Prado de Jesus
 
Composer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
Rafael Dohms
 
MongoDB Introdução
MongoDB IntroduçãoMongoDB Introdução
MongoDB Introdução
Thiago Poiani
 
Bluetooth
BluetoothBluetooth
Bluetooth
Thiago Poiani
 
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Thiago Poiani
 
Acesso direto à memória
Acesso direto à memóriaAcesso direto à memória
Acesso direto à memória
Thiago Poiani
 
Ebook vocabulary english_vocab_in_use_elementary
Ebook vocabulary english_vocab_in_use_elementaryEbook vocabulary english_vocab_in_use_elementary
Ebook vocabulary english_vocab_in_use_elementary
Nguyen Tam
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
Thiago Poiani
 
History of translstudies
History of translstudiesHistory of translstudies
History of translstudies
Muhmmad Asif
 
Translation
TranslationTranslation
Translation
nadiarivero
 
Part 1 cambridge preparation to the toefl ibt
Part 1   cambridge preparation to the toefl ibtPart 1   cambridge preparation to the toefl ibt
Part 1 cambridge preparation to the toefl ibt
Arthur Soares Pereira
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
Thiago Poiani
 
Translation theory
Translation theoryTranslation theory
Translation theory
Xyrille Yves Zaide
 
History of translation studies
History of translation studiesHistory of translation studies
History of translation studies
Department of English
 
Aula gerenciamento de arquivos e pastas
Aula   gerenciamento de arquivos e pastasAula   gerenciamento de arquivos e pastas
Aula gerenciamento de arquivos e pastas
Jeferson Machado Cordini
 

Destaque (16)

Gerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o ComposerGerenciamento de dependências em PHP com o Composer
Gerenciamento de dependências em PHP com o Composer
 
Composer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - SeasonComposer para Gestão de Dependências - Encontro PHP - Season
Composer para Gestão de Dependências - Encontro PHP - Season
 
Composer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRNComposer The Right Way - PHPUGMRN
Composer The Right Way - PHPUGMRN
 
MongoDB Introdução
MongoDB IntroduçãoMongoDB Introdução
MongoDB Introdução
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
Desenvolvimento colaborativo e publicação de Sistemas de Informações Geográfi...
 
Acesso direto à memória
Acesso direto à memóriaAcesso direto à memória
Acesso direto à memória
 
Ebook vocabulary english_vocab_in_use_elementary
Ebook vocabulary english_vocab_in_use_elementaryEbook vocabulary english_vocab_in_use_elementary
Ebook vocabulary english_vocab_in_use_elementary
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
History of translstudies
History of translstudiesHistory of translstudies
History of translstudies
 
Translation
TranslationTranslation
Translation
 
Part 1 cambridge preparation to the toefl ibt
Part 1   cambridge preparation to the toefl ibtPart 1   cambridge preparation to the toefl ibt
Part 1 cambridge preparation to the toefl ibt
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Translation theory
Translation theoryTranslation theory
Translation theory
 
History of translation studies
History of translation studiesHistory of translation studies
History of translation studies
 
Aula gerenciamento de arquivos e pastas
Aula   gerenciamento de arquivos e pastasAula   gerenciamento de arquivos e pastas
Aula gerenciamento de arquivos e pastas
 

Semelhante a Disponibilizando dependências PHP com Composer, GitHub e Packagist

PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
Er Galvão Abbott
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Johnathan Cardoso
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
Luís Cobucci
 
Php Gtk
Php GtkPhp Gtk
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
Vitor Mattos
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
Lucas Vegi
 
WP Composer
WP ComposerWP Composer
WP Composer
Eduardo Pittol
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
Thiago Paes
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
Getup Cloud
 
PHP Conference 2016
PHP Conference 2016PHP Conference 2016
PHP Conference 2016
Edison Costa
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
tdc-globalcode
 
Phpmagazine
PhpmagazinePhpmagazine
Phpmagazine
Jackie Costa
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
Felipe Ribeiro
 
Python 08
Python 08Python 08
Python 08
Bruno Catão
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
Renzo Nuccitelli
 
Ferramentas de Apoio ao Desenvolvimento de Software
Ferramentas de Apoio ao Desenvolvimento de SoftwareFerramentas de Apoio ao Desenvolvimento de Software
Ferramentas de Apoio ao Desenvolvimento de Software
Comunidade NetPonto
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
Ramon Ribeiro Rabello
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
magnunleno
 
Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQuery
Fabricio Nogueira
 

Semelhante a Disponibilizando dependências PHP com Composer, GitHub e Packagist (20)

PHP: Evolução
PHP: EvoluçãoPHP: Evolução
PHP: Evolução
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Muito prazer, eu sou PHP
Muito prazer, eu sou PHPMuito prazer, eu sou PHP
Muito prazer, eu sou PHP
 
Php Gtk
Php GtkPhp Gtk
Php Gtk
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Composer dependency manager - TDC - POA 2017
Composer   dependency manager - TDC - POA 2017Composer   dependency manager - TDC - POA 2017
Composer dependency manager - TDC - POA 2017
 
Desenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetosDesenvolvimento web: PHP orientado a objetos
Desenvolvimento web: PHP orientado a objetos
 
WP Composer
WP ComposerWP Composer
WP Composer
 
Alta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - NginxAlta Performance de Aplicações Web em PHP - Nginx
Alta Performance de Aplicações Web em PHP - Nginx
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
PHP Conference 2016
PHP Conference 2016PHP Conference 2016
PHP Conference 2016
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
 
Phpmagazine
PhpmagazinePhpmagazine
Phpmagazine
 
PHP para aplicações Web de grande porte
PHP para aplicações Web  de grande portePHP para aplicações Web  de grande porte
PHP para aplicações Web de grande porte
 
Python 08
Python 08Python 08
Python 08
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
 
Ferramentas de Apoio ao Desenvolvimento de Software
Ferramentas de Apoio ao Desenvolvimento de SoftwareFerramentas de Apoio ao Desenvolvimento de Software
Ferramentas de Apoio ao Desenvolvimento de Software
 
php4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHPphp4android: desenvolva aplicações android em PHP
php4android: desenvolva aplicações android em PHP
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Desenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQueryDesenvolvimento Web com Php e jQuery
Desenvolvimento Web com Php e jQuery
 

Disponibilizando dependências PHP com Composer, GitHub e Packagist

  • 2. Thiago Henrique Poiani Mestrando em Ciências da Computação Especialização em Desenvolvimento de Software para Web Tecnologia em Análise e Desenvolvimento de Sistemas
  • 3. Thiago Henrique Poiani Background PHP, C#, Java JavaScript, Node.JS, AngularJS MySQL, PostgreSQL, MongoDB HTML5, CSS3, SASS Composer, Bower, npm Grunt Mocha, PHPUnit
  • 5. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Apresentações http://bit.ly/ flisol-2015-disponibilizando-dependencias-php
  • 6. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☐ Controle de Versão ☐ Git ☐ Gerenciamento de Dependências ☐ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 7. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☐ Controle de Versão ☐ Git ☐ Gerenciamento de Dependências ☐ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 8. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Controle de Versão Concurrent Version System Subversion Mercurial Git
  • 9. Controle de Versão Stack Overflow. Why Should I Use Version Control?. Disponível em: http://stackoverflow.com/a/1408464
  • 11. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☐ Git ☐ Gerenciamento de Dependências ☐ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 12. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Controle de Versão - Git http://git-scm.com/
  • 13. Controle de Versão - Git nvie.com. A successful Git branching model. Disponível em: http://nvie.com/posts/a-successful-git-branching-model/
  • 14. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Controle de Versão - Git GitHub
  • 16. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Controle de Versão - Git $ git clone https://github.com/thpoiani/flisol-2015.git $ cd flisol-2015/ $ echo "<?php echo 'Hello World'; ?>" > index.php $ php index.php $ sudo apt-get install php5-cli
  • 17. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Controle de Versão - Git $ git status $ git add index.php $ git commit -m "Hello World" git config --global user.email "you@example.com" git config --global user.name "Your Name" $ git push origin master git config --global push.default simple
  • 18. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☐ Gerenciamento de Dependências ☐ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 19. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências Controle da versão da dependência Dependências apenas para desenvolvimento Padronização da estrutura do projeto Não reinventar a roda
  • 21. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☐ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 22. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer https://getcomposer.org/
  • 23. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer $ curl -sS https://getcomposer.org/installer | php $ php composer.phar init
  • 24. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer composer.json { "name": "thpoiani/flisol-2015", "license": "MIT", "authors": [ { "name": "Thiago Henrique Poiani", "email": "thpoiani@gmail.com" } ], "require": {} }
  • 25. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer composer.json "require": { "symfony/translation": "2.6.6" } $ php composer.phar install $ php composer.phar update
  • 26. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer vendor/ pasta com as dependências vendor/autoload.php função responsável por realizar o __autoload vendor/composer/autoload_* definição dos namespaces
  • 27. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer Como uso a dependência instalada? require("vendor/autoload.php");
  • 28. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani index.php <?php require("vendor/autoload.php"); echo 'Hello World'; ?> Gerenciamento de Dependências - Composer
  • 29. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer require("vendor/autoload.php"); use SymfonyComponentTranslationTranslator; use SymfonyComponentTranslationLoaderArrayLoader;
  • 30. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer $translator = new Translator(null); $translator->addLoader('array', new ArrayLoader()); $translator->addResource('array', array('Hello World' => 'Olá Mundo'), 'pt' ); $translator->addResource('array', array('Hello World' => 'Hola Mundo'), 'es' );
  • 31. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer echo $translator->trans('Hello World');
  • 32. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $language = isset($argv[1]) ? $argv[1] : null; $translator->setLocale($language); echo $translator->trans('Hello World'); Gerenciamento de Dependências - Composer
  • 33. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ php index.php $ php index.php pt $ php index.php es Gerenciamento de Dependências - Composer
  • 34. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ git status Gerenciamento de Dependências - Composer
  • 35. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Gerenciamento de Dependências - Composer Deixe a pasta vendor/ fora do seu repositório .gitignore vendor/
  • 36. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ git status $ git add --all $ git commit -m "i18n" $ git push origin master Gerenciamento de Dependências - Composer
  • 37. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☐ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 38. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP 5.3 Namespace are a way of encapsulating items. PHP Manual. Namespaces overview. Disponível em: http://php.net/manual/en/language.namespaces.rationale. php
  • 39. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☐ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 40. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP - FIG PHP Framework Interop Group PSR-0 Autoloading Standard PSR-1 Basic Coding Standard PSR-2 Coding Style Guide PSR-3 Logger Interface PSR-4 Improved Autoloading PHP-FIG — PHP Framework Interop Group. Disponível em: http://www.php-fig.org/
  • 41. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP - FIG PHP Framework Interop Group PSR-0 Autoloading Standard PSR-1 Basic Coding Standard PSR-2 Coding Style Guide PSR-3 Logger Interface PSR-4 Improved Autoloading PHP-FIG — PHP Framework Interop Group. Disponível em: http://www.php-fig.org/
  • 42. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☒ FIG ☐ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 43. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP PSR-4 Namespace <?php <NamespaceName>(<SubNamespaceNames>)*<ClassName>
  • 44. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP PSR-4 Namespace <?php <NamespaceName>(<SubNamespaceNames>)*<ClassName> use SymfonyComponentTranslationTranslator;
  • 45. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP PSR-4 Namespace <?php <NamespaceName>(<SubNamespaceNames>)*<ClassName> use SymfonyComponentTranslationTranslator; /vendor/symfony/translation/Symfony/Component/Translation/Translator.php
  • 46. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani PHP PSR-4 Vamos desenvolver
  • 47. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agência de Viagens $ mkdir src/Funcionario -p $ mkdir src/Utils -p
  • 48. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani src/Utils/Dicionario.php <?php namespace AgenciaDeViagensUtils; use SymfonyComponentTranslationTranslator; use SymfonyComponentTranslationLoaderArrayLoader; class Dicionario {
  • 49. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani src/Utils/Dicionario.php class Dicionario { private $translator; public function __construct($language) { } public function consultar($texto) { } }
  • 50. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani src/Utils/Dicionario.php public function __construct($language) { $this->translator = new Translator(null); $this->translator->addLoader('array', new ArrayLoader()); $this->translator->addResource('array', array('Hello World' => 'Olá mundo'), 'pt' ); $this->translator->addResource('array', array('Hello World' => 'Hola Mundo'), 'es' ); $this->translator->setLocale($language); }
  • 51. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani src/Utils/Dicionario.php public function consultar($texto) { return $this->translator->trans($texto); }
  • 52. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani src/Funcionario/Atendente.php <?php namespace AgenciaDeViagensFuncionario; use AgenciaDeViagensUtilsDicionario; class Atendente { public function falar(Dicionario $dicionario, $texto) { return $dicionario->consultar($texto); } }
  • 53. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani index.php <?php require("vendor/autoload.php"); require("src/Funcionario/Atendente.php"); require("src/Utils/Dicionario.php"); use AgenciaDeViagensUtilsDicionario; use AgenciaDeViagensFuncionarioAtendente;
  • 54. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani index.php $language = isset($argv[1]) ? $argv[1] : null; $atendente = new Atendente(); $dicionario = new Dicionario($language); echo $atendente->falar($dicionario, 'Hello World');
  • 55. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ php index.php $ php index.php pt $ php index.php es PHP PSR-4
  • 56. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ git status $ git add --all $ git commit -m "Agência de Viagens" $ git push origin master PHP PSR-4
  • 57. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Autoloading com Composer composer.json "autoload": { "psr-4": { "AgenciaDeViagens": "src/" } } PHP PSR-4
  • 58. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ php composer.phar update /vendor/composer/autoload_psr4.php PHP PSR-4
  • 59. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani require("vendor/autoload.php"); // require("src/Funcionario/Atendente.php"); // require("src/Utils/Dicionario.php"); use AgenciaDeViagensUtilsDicionario; use AgenciaDeViagensFuncionarioAtendente; index.php
  • 60. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ git status $ git add --all $ git commit -m "Composer Autoload" $ git push origin master PHP PSR-4
  • 61. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☒ FIG ☒ PSR-4 ☐ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 62. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência Exploring Data. npm Packages Dependencies Graph. http://exploringdata.github.io/vis/npm-packages- dependencies/
  • 63. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☒ FIG ☒ PSR-4 ☒ Disponibilizar dependência ☐ GitHub ☐ Packagist
  • 64. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - GitHub É possível disponibilizar a dependência através do GitHub, usando o seguinte atributo no composer.json
  • 65. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - GitHub composer.json "repositories": [ { "type": "git", "url": "https://github.com/thpoiani/flisol2015" } ], "require": { "thpoiani/flisol-2015": "dev-master" }
  • 66. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - GitHub Mas, para isso é necessário uma chave SSH Homework
  • 67. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☒ FIG ☒ PSR-4 ☒ Disponibilizar dependência ☒ GitHub ☐ Packagist
  • 68. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - Packagist Repositório de dependências Packagist - https://packagist.org
  • 69. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - Packagist Popular Packages psr/log monolog/monolog symfony/event-dispatcher symfony/console swiftmailer/swiftmailer phpunit/php-code-coverage symfony/yaml phpunit/php-token-stream phpunit/phpunit
  • 71. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Disponibilizar dependência - Packagist https://github.com/thpoiani/flisol-2015/settings WebHooks & Services Services User Token Test Service
  • 72. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Agenda ☒ Controle de Versão ☒ Git ☒ Gerenciamento de Dependências ☒ Composer ☒ PHP ☒ FIG ☒ PSR-4 ☒ Disponibilizar dependência ☒ GitHub ☒ Packagist
  • 73. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani $ mkdir agencia-de-viagens $ curl -sS https://getcomposer.org/installer | php $ php composer.phar init composer.json "require": { "thpoiani/flisol-2015": "dev-master" } $ php composer.phar install
  • 74. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani index.php <?php require("vendor/autoload.php"); use AgenciaDeViagensFuncionarioAtendente; echo get_class(new Atendente());
  • 75. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Homework Criar uma versão estável (tag) do código no GitHub
  • 76. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Homework Criar uma versão estável (tag) do código no GitHub Mudar o require do seu código no composer.json para a versão estável
  • 77. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Homework Criar uma versão estável (tag) do código no GitHub Mudar o require do seu código no composer.json para a versão estável Desenvolver uma dependência que esteja no TOP 10 do Packagist
  • 78. FLISol 2015 - Disponibilizando dependências PHP com Composer, GitHub e Packagist - Thiago Henrique Poiani Obrigado http://bit.ly/ flisol-2015-disponibilizando-dependencias-php-final