cr0/interceptor-php
Composer 安装命令:
composer require cr0/interceptor-php
包简介
Simple AOP interceptor with Dependency Injection Container.
README 文档
README
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
Você pode instalar a Interceptor PHP via Composer. Execute o seguinte comando no terminal:
composer require cr0/interceptor-php
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)
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
beforeMethodName(ObjetoClasse $objeto, ...$args): Executa antes do métodomethodName().aroundMethodName(ObjetoClasse $objeto, ...$args): Substitui o métodomethodName()e pode retornar um valor personalizado.afterMethodName(ObjetoClasse $objeto, $retorno): Executa após o métodomethodName().
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.
cr0/interceptor-php 适用场景与选型建议
cr0/interceptor-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 05 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 cr0/interceptor-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 cr0/interceptor-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 11
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-05-06