PHPackages                             everton3x/librarian - 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. everton3x/librarian

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

everton3x/librarian
===================

Importador de bibliotecas PHP ao estilo do Python Import System.

06PHP

Since Mar 8Pushed 7y ago1 watchersCompare

[ Source](https://github.com/everton3x/librarian)[ Packagist](https://packagist.org/packages/everton3x/librarian)[ RSS](/packages/everton3x-librarian/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (2)DependenciesVersions (1)Used By (0)

Librarian
=========

[](#librarian)

Um importador de bibliotecas PHP no estilo [Python Import System](https://docs.python.org/3/reference/import.html).
-------------------------------------------------------------------------------------------------------------------

[](#um-importador-de-bibliotecas-php-no-estilo-python-import-system)

O que librarian faz?
====================

[](#o-que-librarian-faz)

**librarian** provê uma forma de "inclusão automática" de arquivos PHP com funções (ou qualquer outro código PHP, inclusive classes) de forma seletiva, a exemplo do [Python system import](https://docs.python.org/3/reference/import.html).

Ele aprimora o sistema de *include/require* do PHP possibilitando ao desenvolvedor economia de código evitando uma longa série de *include/require*.

librariam é igual ao Composer?
==============================

[](#librariam-é-igual-ao-composer)

Não! Inclusive é recomendado que se utilize **librarian** através do [Composer](https://getcomposer.org/).

Por que não utilizar o Composer então?
======================================

[](#por-que-não-utilizar-o-composer-então)

Porque o *Composer* foi construído para fazer o *autoloading* de classes PHP, entre outras coisas. Porém ele não fornece nesse ponto (*autoloading*) uma facilidade maior para quem precisa lidar com muitos *include/require*.

Embora o *Composer* disponibilize a diretiva [files](https://getcomposer.org/doc/04-schema.md#files), para utilizá-la, é preciso configurar manualmente todos os arquivos desejados e esses serão sempre carregados.

Com **librarian** você pode, em cada parte do código ou script, carregar apenas os que será utilizado.

Requisitos
==========

[](#requisitos)

Os requisitos do **librarian** são:

- PHP 7.1 ou superior
- Composer (se for instalar e utilizar conforme o tópico **Instalação**

Instalação
==========

[](#instalação)

O método de instalação recomendado é via *Composer*:

```
composer require everton3x/librarian
```

No arquivo *composer.json* coloque a seguinte diretiva de configuração:

```
{
    "autoload": {
        "files": ["vendor/librarian/src/librarian.php"]
    }
}
```

Depois, atualize o *Composer* com `composer update`.

Pronto, agora você já tem o **librarian** habilitado nos arquivos PHP que você utiliza `vendor/autoload.php`.

Uso:
====

[](#uso)

**librarian** trabalha com dois conceitos básicos: *módulo* e *pacote*.

Um *módulo* corresponde a um arquivo PHP com definições de funções (embora você possa ter qualquer coisa dentro do arquivo, já que **librarian** apensa importa o seu conteúdo através de `require_once()`).

*pacote* representa um caminho de diretório onde os arquivos *módulos* estão armazenados. É possível utilizar qualquer estrutura de diretório, porém, recomenda-se que se utilize o padrão [PSR-4](https://www.php-fig.org/psr/psr-4/) replicando a estrutura de *namespace* utilizado para as funções em cada módulo.

Tendo em vista que **librarian** é inspirado o *import* do *Python*, ele segue uma lógica semelhante.

Para importar um pacote inteiro, faríamos assim (é claro que existem outras sintaxes possíves):

```
from mypackage.subpackage import *
```

Com **librarian** fazemos desta forma:

```
librarian\import()->from('mypackage.subpackage');
```

Onde *mypackage.subpackage* representa uma estrutura de diretório *./mypackage/subpackage/*

Para importar apenas alguns módulos, fazemos assim:

```
librarian\import('module1', 'module2')->from('mypackage.subpackage');
```

Onde *module1* e *module2* correspondem aos arquivos *./mypackage/subpackage/module1.php* e *./mypackage/subpackage/module2.php*.

Também é possível buscar todos os módulos recursivamente:

```
librarian\import()->from('mypackage.subpackage.*');
```

Ou todos os módulos *module1* e *module2* recursivamente:

```
librarian\import('module1', 'module2')->from('mypackage.subpackage.*');
```

Licença
=======

[](#licença)

**librarian** é distribuído sob a licença [MIT](LICENCE.md)

Como contribuir
===============

[](#como-contribuir)

Para contribuir com o projeto, siga os seguintes passos:

1. Faça um fork;
2. Crie um branch específico para a sua contribuição;
3. Envie um pull request.

Changelog
=========

[](#changelog)

Utilizamos para as releases o [Versionamento Semântico](https://semver.org/lang/pt-BR/) conforme [Tom Preston-Werner](http://tom.preston-werner.com/).

Versão 0.1.0RC
--------------

[](#versão-010rc)

Versão inicial com a implementação básica.

Nessa versão, os testes foram feitos de forma primitiva e ainda não houve uso em produção, ou seja, tudo pode mudar no futuro.

Roadmap
=======

[](#roadmap)

Versão 0.2.0
------------

[](#versão-020)

1. Incluir suporte a caminho base para os pacotes.

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/582620?v=4)[Everton da Rosa](/maintainers/everton3x)[@everton3x](https://github.com/everton3x)

---

Top Contributors

[![everton3x](https://avatars.githubusercontent.com/u/582620?v=4)](https://github.com/everton3x "everton3x (2 commits)")

---

Tags

composerimportphp7pythonrequire

### Embed Badge

![Health badge](/badges/everton3x-librarian/health.svg)

```
[![Health](https://phpackages.com/badges/everton3x-librarian/health.svg)](https://phpackages.com/packages/everton3x-librarian)
```

###  Alternatives

[paragonie/blakechain

Hash chain using BLAKE2b

242.9k3](/packages/paragonie-blakechain)

PHPackages © 2026

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