PHPackages                             cr0/interceptor-php - 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. cr0/interceptor-php

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

cr0/interceptor-php
===================

Simple AOP interceptor with Dependency Injection Container.

1.0(2y ago)011MITPHP

Since May 5Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Cyber-Root0/interceptor-php)[ Packagist](https://packagist.org/packages/cr0/interceptor-php)[ RSS](/packages/cr0-interceptor-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Interceptor PHP - Documentação
------------------------------

[](#interceptor-php---documentação)

### Introdução

[](#introdução)

A Interceptor PHP é uma biblioteca para PHP que oferece um contêiner de injeção de dependência para a instância de classes, juntamente com a funcionalidade de interceptar objetos PHP. Baseada nos princípios do AOP (Aspect-Oriented Programming), permite a execução de métodos antes, após ou em substituição aos métodos originais das classes.

### Instalação

[](#instalação)

Você pode instalar a Interceptor PHP via Composer. Execute o seguinte comando no terminal:

`composer require cr0/interceptor-php`

### Uso Básico

[](#uso-básico)

Aqui está um exemplo básico de como utilizar a biblioteca :

```
use Interceptor\Kernel;
use SeuNamespace\Customer;
use SeuNamespace\AspectExample;
// Obtenha uma instância do Kernel
$kernel = Kernel::getInstance();
// Adicione um proxy para a classe Customer e seu aspecto
$kernel->addProxy(Customer::class, AspectExample::class);
// Construa o contêiner de injeção de dependência
$container = $kernel->build();
// Obtenha uma instância da classe Customer do contêiner
$customer = $container->get(Customer::class);
// Chame um método da classe Customer
echo $customer->getName('Bruno');
```

### Exemplo de Aspecto (Aspect)

[](#exemplo-de-aspecto-aspect)

Aqui está um exemplo básico de como definir um aspecto para interceptar métodos da classe Customer:

```
use SeuNamespace\Customer;
class AspectExample {
    public function beforeGetName(Customer $subject, string $name){
        echo "Calling before GetName Method";
        // Executa antes do método getName() e retorna um array com parametros      alterados
        return [             "Nome substituido"
        ];
    }
    public function aroundGetName(Customer $subject, string $name) : string     {
        echo "Calling around GetName Method";
        // Substitui o método getName() e retorna um valor personalizado
        return "Teste 123";
    }
    public function afterGetName(Customer $subject, $out)     {
        echo "Calling after GetName Method";
        // Executa após o método getName()
        echo $out;
        return $out;
    }
}
```

### Métodos Disponíveis

[](#métodos-disponíveis)

- `beforeMethodName(ObjetoClasse $objeto, ...$args)`: Executa antes do método `methodName()`.
- `aroundMethodName(ObjetoClasse $objeto, ...$args)`: Substitui o método `methodName()` e pode retornar um valor personalizado.
- `afterMethodName(ObjetoClasse $objeto, $retorno)`: Executa após o método `methodName()`.

### Considerações Finais

[](#considerações-finais)

A Interceptor PHP Lib oferece uma maneira elegante de adicionar lógica adicional aos métodos de suas classes, seguindo os princípios do AOP. Isso facilita a separação de preocupações e a reutilização de aspectos em várias partes do código. Experimente e descubra como ela pode melhorar sua estrutura de aplicativo PHP.

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity40

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

Unknown

Total

1

Last Release

744d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/77ad0f54ae5c4afcaf7f0e2e0294c6cda040a575a600ffe573b1f7ec0d184eab?d=identicon)[cr0](/maintainers/cr0)

---

Top Contributors

[![Cyber-Root0](https://avatars.githubusercontent.com/u/70926805?v=4)](https://github.com/Cyber-Root0 "Cyber-Root0 (9 commits)")

### Embed Badge

![Health badge](/badges/cr0-interceptor-php/health.svg)

```
[![Health](https://phpackages.com/badges/cr0-interceptor-php/health.svg)](https://phpackages.com/packages/cr0-interceptor-php)
```

###  Alternatives

[crescat-io/saloon-sdk-generator

Simplified SDK Scaffolding for Saloon

13130.9k7](/packages/crescat-io-saloon-sdk-generator)[infinum/eightshift-libs

WordPress libs developed by Eightshift team to use in modern WordPress.

63118.9k3](/packages/infinum-eightshift-libs)[drupal-code-builder/drupal-code-builder

Code generator for Drupal

27241.1k1](/packages/drupal-code-builder-drupal-code-builder)[okapi/aop

PHP AOP is a PHP library that provides a powerful Aspect Oriented Programming (AOP) implementation for PHP.

3812.0k](/packages/okapi-aop)

PHPackages © 2026

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