PHPackages                             johhnpablo/search-alura-courses - 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. [Search &amp; Filtering](/categories/search)
4. /
5. johhnpablo/search-alura-courses

ActiveLibrary[Search &amp; Filtering](/categories/search)

johhnpablo/search-alura-courses
===============================

Project that seeks PHP courses at Alura

v1.1.0(1y ago)04PHPPHP ^8.3

Since Oct 28Pushed 1y ago1 watchersCompare

[ Source](https://github.com/johhnpablo/search-alura-courses)[ Packagist](https://packagist.org/packages/johhnpablo/search-alura-courses)[ RSS](/packages/johhnpablo-search-alura-courses/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (7)Versions (3)Used By (0)

Projeto de Busca de Cursos da Alura
===================================

[](#projeto-de-busca-de-cursos-da-alura)

Este projeto tem como objetivo criar uma aplicação PHP que busca cursos no site da Alura utilizando uma classe CSS específica. Durante o desenvolvimento, adquiri diversos conhecimentos relacionados ao Composer e boas práticas em PHP.

Sumário
-------

[](#sumário)

- [Instalação do Composer](#instala%C3%A7%C3%A3o-do-composer)
- [Tipo Padrão de um Projeto Composer: Library](#tipo-padr%C3%A3o-de-um-projeto-composer-library)
- [Funcionamento do Composer vs Apt/Yum](#funcionamento-do-composer-vs-aptyum)
- [Nomenclatura do Projeto](#nomenclatura-do-projeto)
- [Gerenciamento de Dependências e Packagist](#gerenciamento-de-depend%C3%AAncias-e-packagist)
- [Utilização do GuzzleHTTP e DomCrawler do Symfony](#utiliza%C3%A7%C3%A3o-do-guzzlehttp-e-domcrawler-do-symfony)
- [Princípio da Responsabilidade Única](#princ%C3%ADpio-da-responsabilidade-%C3%BAnica)
- [Autoload no Composer](#autoload-no-composer)
- [PSRs do PHP-FIG](#psrs-do-php-fig)
- [Classmap no Composer](#classmap-no-composer)
- [Ferramentas de Qualidade de Código em PHP](#ferramentas-de-qualidade-de-c%C3%B3digo-em-php)
- [Automatização de Scripts no Composer](#automatiza%C3%A7%C3%A3o-de-scripts-no-composer)
- [Publicação de um Pacote PHP](#publica%C3%A7%C3%A3o-de-um-pacote-php)
- [Conclusão](#conclus%C3%A3o)

Instalação do Composer
----------------------

[](#instalação-do-composer)

Iniciei o projeto aprendendo a instalar o Composer, o gerenciador de dependências padrão para PHP. A instalação correta é fundamental para o gerenciamento eficiente de pacotes e bibliotecas no projeto.

Tipo Padrão de um Projeto Composer: Library
-------------------------------------------

[](#tipo-padrão-de-um-projeto-composer-library)

Descobri que o tipo padrão de um projeto no Composer é **library**. Isso significa que, por padrão, o Composer trata o projeto como uma biblioteca que pode ser compartilhada e reutilizada em outros projetos.

Funcionamento do Composer vs Apt/Yum
------------------------------------

[](#funcionamento-do-composer-vs-aptyum)

Entendi que o Composer funciona de maneira diferente de gerenciadores de pacotes como **Apt** ou **Yum**. Enquanto esses gerenciadores instalam dependências globalmente no sistema, o Composer armazena as dependências diretamente no projeto. No entanto, é possível instalar dependências globais se necessário.

Nomenclatura do Projeto
-----------------------

[](#nomenclatura-do-projeto)

Aprendi sobre a importância da nomenclatura no `composer.json`. Seguir o padrão `vendor/package` ajuda na organização e facilita a identificação do pacote no **Packagist**.

Gerenciamento de Dependências e Packagist
-----------------------------------------

[](#gerenciamento-de-dependências-e-packagist)

Explorei como gerenciar dependências e buscar pacotes no [Packagist](https://packagist.org/), o repositório padrão para o Composer. Isso inclui adicionar, atualizar e remover pacotes conforme as necessidades do projeto.

Utilização do GuzzleHTTP e DomCrawler do Symfony
------------------------------------------------

[](#utilização-do-guzzlehttp-e-domcrawler-do-symfony)

Implementei o uso do **GuzzleHTTP** para realizar requisições HTTP de forma eficiente e do **DomCrawler** do Symfony para navegar e extrair dados do DOM das páginas web.

Princípio da Responsabilidade Única
-----------------------------------

[](#princípio-da-responsabilidade-única)

Estudei o **Princípio da Responsabilidade Única** (SRP - Single Responsibility Principle), que prega que uma classe deve ter apenas uma única responsabilidade. Isso melhora a manutenibilidade e a clareza do código.

Autoload no Composer
--------------------

[](#autoload-no-composer)

Aprendi sobre o **autoload** no Composer, que automatiza o carregamento de classes sem a necessidade de `require` ou `include`. Isso é configurado no `composer.json` e segue padrões como PSR-4.

PSRs do PHP-FIG
---------------

[](#psrs-do-php-fig)

Conheci as **PSRs (PHP Standards Recommendations)** do **PHP-FIG**, que são recomendações de padrões para melhorar a interoperabilidade entre frameworks e bibliotecas em PHP. Algumas PSRs estudadas incluem:

- **PSR-1**: Padrões básicos de codificação.
- **PSR-4**: Autoloading de classes baseado em namespaces.

Classmap no Composer
--------------------

[](#classmap-no-composer)

Entendi como utilizar o **classmap** no Composer para mapear classes que não seguem padrões de autoload, permitindo que o Composer as carregue automaticamente.

Ferramentas de Qualidade de Código em PHP
-----------------------------------------

[](#ferramentas-de-qualidade-de-código-em-php)

Explorei ferramentas essenciais para garantir a qualidade do código:

- **PHPUnit**: Framework para testes unitários.
- **PHPCS (PHP CodeSniffer)**: Análise de conformidade com padrões de codificação.
- **PHPStan**: Análise estática de código para encontrar erros potenciais.

Automatização de Scripts no Composer
------------------------------------

[](#automatização-de-scripts-no-composer)

Aprendi a automatizar tarefas utilizando scripts no Composer:

- Adicionar scripts personalizados no `composer.json`.
- Compor scripts para executar múltiplas tarefas.
- Descrição de scripts para melhor documentação.
- Criar scripts que executam outros scripts.
- Utilizar eventos do Composer para executar scripts automaticamente em determinadas ações.

Publicação de um Pacote PHP
---------------------------

[](#publicação-de-um-pacote-php)

Concluí o projeto publicando um pacote PHP:

- Aprendi sobre **versionamento semântico** para gerenciar versões do pacote.
- Configurei o **binário** no `composer.json` para permitir a execução de comandos via linha de comando.
- Publiquei o pacote no Packagist para compartilhamento com a comunidade.

Conclusão
---------

[](#conclusão)

Este curso proporcionou um aprofundamento significativo no uso do Composer e nas boas práticas de desenvolvimento em PHP. Através da criação deste projeto, desenvolvi habilidades que serão fundamentais para projetos futuros.

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

561d ago

PHP version history (2 changes)v1.0.0PHP 8.3

v1.1.0PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/7b7d7b8f82e9d043ee915d89532047e868446e034989e43579b1129883216a23?d=identicon)[johhnpablo](/maintainers/johhnpablo)

---

Top Contributors

[![johhnpablo](https://avatars.githubusercontent.com/u/92765140?v=4)](https://github.com/johhnpablo "johhnpablo (10 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/johhnpablo-search-alura-courses/health.svg)

```
[![Health](https://phpackages.com/badges/johhnpablo-search-alura-courses/health.svg)](https://phpackages.com/packages/johhnpablo-search-alura-courses)
```

###  Alternatives

[algolia/algoliasearch-magento-2

Algolia Search &amp; Discovery extension for Magento 2

1881.8M16](/packages/algolia-algoliasearch-magento-2)[statamic-rad-pack/meilisearch

meilisearch search driver for Statamic

1661.7k](/packages/statamic-rad-pack-meilisearch)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
