PHPackages                             edilsonjrdev99/buscador-items-alura - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. edilsonjrdev99/buscador-items-alura

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

edilsonjrdev99/buscador-items-alura
===================================

Projeto teste referente a aula sobre composer da Alura, lib para buscar os items de um HTML de site

v1.4.0(1mo ago)05PHP

Since Apr 17Pushed 1mo agoCompare

[ Source](https://github.com/edilsonjrdev99/PHP-Composer-Scraping)[ Packagist](https://packagist.org/packages/edilsonjrdev99/buscador-items-alura)[ RSS](/packages/edilsonjrdev99-buscador-items-alura/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Buscador de items de um HTML da Alura
=====================================

[](#buscador-de-items-de-um-html-da-alura)

### Como iniciar o composer no projeto

[](#como-iniciar-o-composer-no-projeto)

- composer init
- responder quem está (distribuindo/nome-do-pacote)
- colocar descrição
- responder quem é o autor(es)
- se quer pacote em fase de teste ou estáveis (ex: stable, dev)
- tipo de pacote (geralmente library)
- tipo de licença (ex: mit)

### Entendendo o arquivo composer.json

[](#entendendo-o-arquivo-composerjson)

- `name` é o nome do pacote (vendor/nome)
- `description` descrição do pacote
- `type` tipo do pacote (library, project)
- `autoload` configuração de carregamento automático de classes
- `authors` autor/autores do pacote
- `require` dependências do pacote

```
{
    "name": "edilsonjrdev99/buscador-items-alura",
    "description": "Projeto teste referente a aula sobre composer da Alura, lib para buscar os items de um HTML de site",
    "type": "library",
    "autoload": {
        "psr-4": {
            "App\\": "src/"
        }
    },
    "authors": [
        {
            "name": "edilson junior",
            "email": "edilsonjrdev99@gmail.com"
        }
    ],
    "require": {
        "guzzlehttp/guzzle": "^7.10",
        "symfony/dom-crawler": "^8.0",
        "symfony/css-selector": "^8.0"
    }
}
```

### Onde buscar dependências

[](#onde-buscar-dependências)

***Atenção***: O `Packagist` é o repositório padrão para buscar dependências para o composer, mas podemos configurar ele para buscar do `github`

Basta acessar: [Packagist](https://packagist.org/)

### O que acontece quando instalamos uma dependência

[](#o-que-acontece-quando-instalamos-uma-dependência)

O composer vai no `Packagist`, vai verificar se o pacote existe, se existir no pacote tem a definição do código fonte, que é de onde ele vai buscar o código, por padrão ele busca do `github`

### Diferença entre comandos

[](#diferença-entre-comandos)

- `composer require pacote` Isso adiciona o pacote na dependência do `composer.json`, instala o pacote e atualiza o `composer.lock` também
- `composer update pacote` Isso vai atualizar o pacote já existente nas dependências do `composer.json`, respeitendo suas restrições `ex: "guzzlehttp/guzzle": "^7.10", vai baixar somente versão acima de 7.10` e atualizar também no `composer.lock`, ***é importante não usar apenas composer update***, isso vai atualizar todas as dependências e causar erro no projeto

### Entenendo o autoload

[](#entenendo-o-autoload)

O autoload é responsável por definir mapeamento de arquivos, ele está presente no `composer.json`. No autoload podemos utilizar duas PSRs, a `psr-0` que já está deprecida e a `psr-4` que é a convencional atual.

- `psr-4`: possui um vendor namespace que é namespace padrão da aplicação, o namespace representa a pasta principal do projeto. No exemplo abaixo definimos que `App` representa a pasta `src`.

```
"autoload": {
    "psr-4": {
        "App\\": "src/"
    }
},
```

Arquivo fica em `src/ClassExample.php`

```
