Skip to content

Commit

Permalink
Seção 04 atualizada de acordo com original
Browse files Browse the repository at this point in the history
  • Loading branch information
Diana Arnos committed Aug 15, 2021
1 parent 143025c commit 3bab71c
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 46 deletions.
2 changes: 1 addition & 1 deletion _posts/03-06-01-XDebug.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,4 @@ gratuito tem o código fonte aberto uma GUI (Interface Gráfica do Usuário) sta

[xdebug-docs]: http://xdebug.org/docs/
[xdebug-install]: http://xdebug.org/docs/install
[macgdbp-install]: http://www.bluestatic.org/software/macgdbp/
[macgdbp-install]: http://www.bluestatic.org/software/macgdbp/
22 changes: 10 additions & 12 deletions _posts/04-01-01-Dependency-Management.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@ anchor: gerenciamento_de_dependencia

# Gerenciamento de Dependência {#gerenciamento_de_dependencia_title}

Existem toneladas de bibliotecas PHP, frameworks, e componentes para você escolher. Seu projeto provavelmente irá usar
muitos deles — eles são as dependências do projeto. Até recentemente, o PHP não possuía uma boa forma de gerenciar essas
dependências de projeto. Mesmo se você as gerenciasse manualmente, ainda assim teria que se preocupar com autoloaders.
Não mais.
Há uma tonelada de bibliotecas PHP, estruturas e componentes para escolher. Seu projeto provavelmente usará várias delas
- estas são dependências de projetos. Até recentemente, o PHP não tinha uma boa maneira de administrar estas
dependências de projeto. Mesmo se você as administrasse manualmente, ainda teria que se preocupar com os autoloaders.
Isso não é mais um problema.

Atualmente existem dois sistemas principais para gerenciamento de pacotes no PHP - o Composer e o PEAR. Qual deles é o
certo para você? A resposta é: ambos.
Atualmente existem dois grandes sistemas de gerenciamento de pacotes para PHP - [Composer] e [PEAR]. O Composer é
atualmente o gerenciador de pacotes mais popular para PHP, porém por muito tempo o PEAR foi o principal gerenciador de
pacotes em uso. Conhecer a história do PEAR é uma boa idéia, já que você ainda pode encontrar referências a ele, mesmo
que nunca o use.

* Use o **Composer** quando estiver gerenciando as dependências de um único projeto.
* Use o **PEAR** quando gerenciar dependências do PHP para o seu sistema inteiro.

Em geral, os pacotes Composer estarão disponíveis apenas em projetos que você especificar de forma explícita, enquanto
que um pacote PEAR estará disponível para todos os seus projetos PHP. Mesmo que o PEAR pareça ser o método mais fácil à
primeira vista, existem vantagens em usar uma abordagem projeto-por-projeto para suas dependências.
[Composer]: /#composer_and_packagist
[PEAR]: /#pear
67 changes: 41 additions & 26 deletions _posts/04-02-01-Composer-and-Packagist.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,49 +6,51 @@ anchor: composer_e_packagist

## Composer e Packagist {#composer_e_packagist_title}

O Composer é o gerenciador de dependências recomendado para PHP. Liste as dependências do seu projeto em um
arquivo `composer.json` e, com poucos comandos simples, o Composer irá fazer o download das dependências do seu
projeto automaticamente e configurará o autoloading para você. O Composer é semelhante ao NPM no mundo node.js ou o Bunder no mundo Ruby.
O Composer é o gerenciador de dependências recomendado para PHP. Lista as dependências de seu projeto em um arquivo
`composer.json` e, com alguns comandos simples, o Composer fará automaticamente o download das dependências de seu
projeto e configurará o autoloading para você. O Composer é semelhante ao NPM no mundo do node.js, ou Bundler no mundo
do Ruby.

Já existem várias bibliotecas PHP que são compatíveis com o Composer, prontas para usar no seu projeto. Esses "pacotes"
estão listados no [Packagist], o repositório oficial das bibliotecas PHP compatíveis com o Composer.
Há uma infinidade de bibliotecas PHP compatíveis com o Composer e estão prontas para serem usadas em seu projeto.
Estes "pacotes" estão listados no [Packagist], o repositório oficial para bibliotecas PHP compatíveis com o Composer.

### Como Instalar o Composer

A forma mais segura é fazer o download do composer [seguindo as instruções oficiais](https://getcomposer.org/download/). Isso vai verificar se o instalador não está corrompido ou foi adulterado.
O instalador instala um arquivo binário `composer.phar` no seu _diretório atual_.
A forma mais segura de fazer o download do composer é [seguindo as instruções oficiais](https://getcomposer.org/download/).
Isso vai verificar se o instalador não está corrompido ou foi adulterado. O instalador gera um arquivo binário
`composer.phar` no seu _diretório atual_.

Nós recomendadmos instalar o Composer *globally* (por exemplo uma única cópia no diretório `/usr/local/bin`). Para fazer isso, rode o próximo comando:
Nós recomendamos instalar o Composer *globalmente* (por exemplo, uma única cópia no diretório `/usr/local/bin`). Para
fazer isso, rode o seguinte comando:

{% highlight console %}
mv composer.phar /usr/local/bin/composer
{% endhighlight %}

**Nota:** Se o comando falhar devido a permissão, use o comando `sudo` no início.
**Nota:** Se o comando falhar devido à permissão, use o comando `sudo` no início.

Para rodar o Composer instalado localmente, use o comando `php composer.phar`, e globalmente apenas `composer`.

#### Instalação no Windows

Para usuários Windows a forma mais fácil de obter e executá-lo é usar o instalador [ComposerSetup], que realiza uma
instalação global e configura seu `$PATH` de modo que você possa executar o comando `composer` de qualquer diretório
Para aqueles que usam Windows a forma mais fácil de obter e executá-lo é usar o instalador [ComposerSetup], que realiza
uma instalação global e configura seu `$PATH` de modo que você possa executar o comando `composer` de qualquer diretório
pela linha de comando.

### Como Definir e Instalar Dependências

O Composer mantém o controle de dependências do seu projeto em um arquivo chamado `composer.json`. Você pode
controlá-lo na mão se preferir ou usar o próprio Composer. O comando `composer require` adiciona uma dependência do
projeto e se você não tem um arquivo `composer.json`, ele será criado. Aqui está um exemplo que adiciona
o [Twig] como uma dependência do seu projeto.
O Composer mantém o controle de dependências do seu projeto em um arquivo chamado `composer.json`. Você pode alterá-lo
na mão se preferir ou usar o próprio Composer. O comando `composer require` adiciona uma dependência ao projeto e se
você não tem um arquivo `composer.json`, ele será criado. Aqui está um exemplo que adiciona o [Twig] como uma dependência
do seu projeto.

{% highlight console %}
composer require twig/twig:^2.0
{% endhighlight %}

Outra alternativa é o comando `composer init` que guiará a criação completa do arquivo `composer.json` para
seu projeto. De qualquer maneira, uma vez criado o arquivo `composer.json` você pode chamar o Composer para baixar suas
dependências para o diretório `vendor/`. Isto também se aplica para projetos baixados que fornecem um arquivo
`composer.json`:
Outra alternativa é o comando `composer init` que guiará a criação completa do arquivo `composer.json` para seu projeto.
De qualquer maneira, uma vez criado o arquivo `composer.json` você pode chamar o Composer para baixar suas dependências
para o diretório `vendor/`. Isto também se aplica para projetos baixados que fornecem um arquivo `composer.json`:

{% highlight console %}
composer install
Expand All @@ -67,32 +69,45 @@ Agora você pode usar as dependências do seu projeto, e elas serão carregadas
### Atualizando suas dependências
O Composer cria um arquivo chamado `composer.lock` que armazena a versão exata de cada pacote baixado quando você
executou `composer install`. Se você compartilhar seu projeto com outras pessoas, certifique-se que o o arquivo `composer.lock` está incluído, pois quando eles executarem o comando `composer install` eles receberão as mesmas versões que você possui. Para atualizar suas dependências, execute o comando `composer update`. Não use o comando `composer update` quando estiver fazendo deploy, use apenas `composer install`, senão você poderá terminar com versões de pacotes diferentes em produção.
executou `composer install` pela primeira vez. Se você compartilhar seu projeto com outras pessoas, certifique-se que o
arquivo `composer.lock` está incluído, pois quando executarem o comando `composer install` elas receberão as mesmas
versões que você possui. Para atualizar suas dependências, execute o comando `composer update`. Não use o comando
`composer update` quando estiver fazendo deploy, use apenas `composer install`, senão você poderá terminar com versões
de pacotes diferentes em produção.
Isso é muito útil quando você define as versões requeridascom flexibilidade. Por exemplo, uma versão requerida de `~1.8` significa "qualquer versão mais recente que `1.8.0`, mas menos recente do que `2.0.x-dev`". Você também pode usar o curinga `*` como `1.8.*`.
Agora o comando `composer update` atualizará todas as suas dependências para a versão mais recente
que se encaixa às restrições definidas.
Isso é muito útil quando você define as versões requeridas com flexibilidade. Por exemplo, uma versão requerida de `~1.8`
significa "qualquer versão mais recente que `1.8.0`, mas menos recente do que `2.0.x-dev`". Você também pode usar o
curinga `*` como `1.8.*`. Agora o comando `composer update` atualizará todas as suas dependências para a versão mais
recente que se encaixa às restrições definidas.
### Notificações de Atualização
Para receber notificações sobre novas versões você pode se inscrever no [libraries.io], um serviço web que pode
monitorar dependências e lhe enviar alertas de atualizações.
### Verificando suas dependências em busca de problemas de segurança
O [Local PHP Security Checker] é uma ferramenta de linha de comando, que examinará seu `composer.lock’ e informará se
você precisa atualizar alguma de suas dependências.
### Tratando dependências globais com Composer
O Composer também pode tratar dependências globais e seus binários. O seu uso é direto, tudo que você precisa é prefixar seu comando com a palavra `global`. Se por exemplo você quer instalar o PHPUnit e quer tê-lo disponível globalmente, você deve rodar o seguinte comando:
O Composer também pode tratar dependências globais e seus binários. O seu uso é direto, tudo que você precisa é prefixar
seu comando com a palavra `global`. Se por exemplo você quer instalar o PHPUnit e quer tê-lo disponível globalmente, você
deve rodar o seguinte comando:
{% highlight console %}
composer global require phpunit/phpunit
{% endhighlight %}
Isso irá criar uma pasta `~/.composer` onde suas dependências globais residem. Para ter os pacotes binários disponíveis em qualquer lugar, você deve adicionar a pasta `~/.composer/vendor/bin` para sua variável `$PATH`.
Isso irá criar uma pasta `~/.composer` onde suas dependências globais residem. Para ter os pacotes binários disponíveis
em qualquer lugar, você deve adicionar a pasta `~/.composer/vendor/bin` em sua variável `$PATH`.
* [Aprenda sobre o Composer][Learn about Composer]
[Packagist]: https://packagist.org/
[Twig]: https://twig.symfony.com/
[libraries.io]: https://libraries.io/
[Security Advisories Checker]: https://security.sensiolabs.org/
[Local PHP Security Checker]: https://github.com/fabpot/local-php-security-checker
[Learn about Composer]: https://getcomposer.org/doc/00-intro.md
[ComposerSetup]: https://getcomposer.org/Composer-Setup.exe
14 changes: 7 additions & 7 deletions _posts/04-03-01-PEAR.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@ anchor: pear

## PEAR {#pear_title}

Outro gerenciador de pacotes veterano e que muitos desenvolvedores PHP gostam é o [PEAR][1]. Ele se comporta da mesma
maneira que o Composer, mas possui diferenças notáveis.
Outro gerenciador de pacotes veterano e que muitas pessoas desenvolvedoras PHP gostam é o [PEAR][1]. Ele se comporta da
mesma maneira que o Composer, mas possui diferenças notáveis.

PEAR requer que cada pacote tenha uma estrutura específica, isso significa que o autor do pacote deve prepará-lo para
PEAR requer que cada pacote tenha uma estrutura específica, isso significa que quem mantém oo pacote deve prepará-lo para
ser usado com PEAR. Não é possível usar um projeto que não foi preparado para o PEAR.

PEAR instala pacotes de forma global, ou seja, uma vez instalados ficam disponíveis para todos os projetos no servidor.
Isto pode ser bom se muitos projetos dependem dos mesmos pacotes com as mesmas versões, mas isso pode gerar problemas se
Isto pode ser bom se muitos projetos dependem dos mesmos pacotes com as mesmas versões, mas pode gerar problemas se
houver conflitos de versões entre os projetos.

### Como instalar o PEAR

Você pode instalar o PEAR baixando o instalador phar e executando-o. A documentação do PEAR tem [instruções de
Você pode instalar o PEAR baixando o instalador `.phar` e executando-o. A documentação do PEAR tem [instruções de
instalação mais detalhadas][2] para todos sistemas operacionais.

Se você usa Linux, pode conferir no gerenciador de pacotes da sua distribuição. Debian e Ubuntu, por exemplo, tem um
Expand Down Expand Up @@ -57,7 +57,7 @@ manusear suas dependências PEAR. Este exemplo instalará um código a partir do
}
{% endhighlight %}

A primeira seção `"repositories"` será usada para o Composer saber que deve "inicializar" (ou "descobrir" a terminologia
A primeira seção `"repositories"` será usada para o Composer saber que deve "inicializar" (ou "descobrir" na terminologia
PEAR) o repositório pear. Em seguida, na seção `"require"` terá `pear` como prefixo no nome do pacote, como:

> pear-channel/Package
Expand Down Expand Up @@ -85,4 +85,4 @@ $request = new pear2\HTTP\Request();
[3]: http://pear.php.net/packages.php
[4]: http://pear.php.net/manual/en/guide.users.commandline.channels.php
[5]: /#composer_and_packagist
[6]: http://getcomposer.org/doc/05-repositories.md#pear
[6]: http://getcomposer.org/doc/05-repositories.md#pear

0 comments on commit 3bab71c

Please sign in to comment.