PHPackages                             luoyue/webman-aop - 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. luoyue/webman-aop

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

luoyue/webman-aop
=================

aop aspect 切片 for the webman plugin

2.0.5(1y ago)15241MITPHPPHP &gt;=8.1

Since Dec 31Pushed 1y agoCompare

[ Source](https://github.com/luoyue712/webman-aop)[ Packagist](https://packagist.org/packages/luoyue/webman-aop)[ RSS](/packages/luoyue-webman-aop/feed)WikiDiscussions main Synced 2mo ago

READMEChangelog (10)Dependencies (6)Versions (15)Used By (1)

webman-aop
==========

[](#webman-aop)

[![Packagist Version](https://camo.githubusercontent.com/2c3e4f88a2256dde2b19344269b673388610fd1f929c3b510bc6fd8241be3306/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c756f7975652f7765626d616e2d616f70)](https://camo.githubusercontent.com/2c3e4f88a2256dde2b19344269b673388610fd1f929c3b510bc6fd8241be3306/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c756f7975652f7765626d616e2d616f70)[![Packagist License](https://camo.githubusercontent.com/bbb887eed562c8ee01892c40196580ce3b1505d1bdd4f8f5905ddc47abcd128a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c756f7975652f7765626d616e2d616f70)](https://camo.githubusercontent.com/bbb887eed562c8ee01892c40196580ce3b1505d1bdd4f8f5905ddc47abcd128a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c756f7975652f7765626d616e2d616f70)[![Packagist Dependency Version](https://camo.githubusercontent.com/1f60c0d8edc11b7e1999217950ee4bc7ac7930116473470550f7ca0ee486df71/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6c756f7975652f7765626d616e2d616f702f706870)](https://camo.githubusercontent.com/1f60c0d8edc11b7e1999217950ee4bc7ac7930116473470550f7ca0ee486df71/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6c756f7975652f7765626d616e2d616f702f706870)[![Packagist Downloads](https://camo.githubusercontent.com/ce2d1f54c12ca490d063aa81a4e0fda33bc183ca151edb28feb99931902fedf4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c756f7975652f7765626d616e2d616f70)](https://camo.githubusercontent.com/ce2d1f54c12ca490d063aa81a4e0fda33bc183ca151edb28feb99931902fedf4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c756f7975652f7765626d616e2d616f70)[![Packagist Stars](https://camo.githubusercontent.com/48a01b1fe67107d9b47131adbf122f1476bcfe2c9b3a873f030a46b02ac35405/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6c756f7975652f7765626d616e2d616f70)](https://camo.githubusercontent.com/48a01b1fe67107d9b47131adbf122f1476bcfe2c9b3a873f030a46b02ac35405/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f73746172732f6c756f7975652f7765626d616e2d616f70)

> 注意：本插件依赖container容器，当切入点不在容器中时，aop无法生效

简介
--

[](#简介)

**AOP**（Aspect Oriented Programming）是面向切面编程，是一种编程思想，它允许开发者将业务逻辑与业务逻辑以外的代码分离，从而提高代码的可维护性、可扩展性、可测试性。

AOP核心概念
-------

[](#aop核心概念)

- **切面（Aspect）**：切面是封装横切关注点的模块。它定义了在何处以及如何应用这些关注点。
- **连接点（Join Point）**：连接点是程序执行过程中可以插入切面的点。例如，方法调用、方法执行、构造函数调用、字段访问等。
- **切入点（Pointcut）**：切入点定义了在哪些连接点上应用切面。它通常使用表达式来匹配特定的连接点。
- **通知（Advice）**：通知是在特定的切入点上执行的代码。通知可以在方法执行之前、之后或异常抛出时执行。常见的通知类型包括：
    - **前置通知（Before）**：在方法执行之前执行。
    - **后置通知（After）**：在方法执行之后执行。
    - **返回通知（After Returning）**：在方法成功返回之后执行。
    - **异常通知（After Throwing）**：在方法抛出异常之后执行。
    - **环绕通知（Around）**：包围方法的执行，可以在方法执行之前和之后自定义行为。
- **织入（Weaving**）：织入是将切面应用到目标对象的过程。织入可以在编译时、类加载时或运行时进行。

安装
--

[](#安装)

```
composer require luoyue/webman-aop

```

使用方法（php-di环境）
--------------

[](#使用方法php-di环境)

首先创建切入点

```
