首页 后端开发 php教程 PHP一个种AOP的实现

PHP一个种AOP的实现

Jun 13, 2016 am 11:35 AM
function name source wrapper

PHP一个类AOP的实现

由于项目有一个需求,需要在原来的代码上做一个封装.?由于不想修改原有代码,?查了一下,?PHP没有方便的支持AOP的方法,于是参考了网上一些文章,写了个包装器,?可以在不修改原有代码的基础上为函数添加before和after实现.

?
标签:
?

代码片段(3)[全屏查看所有代码]

1.?[代码]核心类?????

01 <?php
02 ?
03 /**
04 ?* 包装器(Wrapper).
05 ?* Wrapper是一个AOP_LIKE的实现. 也可以看作监听者模式的实现.
06 ?* 一个Wrapper报装了一个对象(source). source可以是任意对象(不包括数组及原子类型),甚至是一个Wrapper.
07 ?*
08 ?* 包装器可以任意添加饰品(Decoration).通过Wrapper调用source的函数的流程将是:
09 ?*? unpacking --> teardown --> open --> setup --> packing.
10 ?*
11 ?*? 例如调用source->doXX(),各个流程将是:
12 ?*? unpacking:? 解包. 这是调用任意source的函数都会调用的方法;
13 ?*? teardown:?? 撕掉饰品. 对于Wrapper中的每个Decoration,调用其before()函数;
14 ?*? open:?????? 真正调用source->doXX()函数;
15 ?*? setup:????? 重新贴上饰品. 对于Wrapper中的每个Decoration,调用其after()函数;
16 ?*? packing:??? 重新打包.? 这是调用任意source的函数都会调用的方法;
17 ?*
18 ?*/
19 class?Wrapper{
20 ????private?$source;
21
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

function是什么意思 function是什么意思 Aug 04, 2023 am 10:33 AM

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果,其目的是封装一段可重复使用的代码,提高代码的可重用性和可维护性。

Source Insight在Ubuntu系统中的使用方法解析 Source Insight在Ubuntu系统中的使用方法解析 Jan 08, 2024 pm 11:49 PM

相信很多朋友在Windows下都习惯用SourceInsight来阅读分析源代码了,对于LINUX下面的工具,确实有比较高效的,配置起来起对比较麻烦,也比较繁琐,相信很多人肯定希望能在Linux下面也能用到SourceInsight,下面小编将为大家带来Ubuntu中SourceInsight的使用详解!一起去看看吧!这是我的系统信息:Linuxgavin-laptop2.6.32-40-generic#87-UbuntuSMPTueMar600:56:56UTC2012x86_64GNU/Li

source是什么按键呢 source是什么按键呢 Oct 10, 2023 pm 03:26 PM

source是切换输入信号源或选择不同的输入源的按键。通常出现在电视、投影仪、音响系统、电脑显示器等设备上。在电视上,source按键可以让用户切换不同的输入源,从而在电视上播放不同的内容。在投影仪上,source按键的作用类似,可以将不同的设备连接到投影仪上。在音响系统上,source按键用于切换不同的音频输入源。在电脑显示器上,source按键的作用与电视和投影仪类似等等。

'enumerate()'函数在Python中的用途是什么? 'enumerate()'函数在Python中的用途是什么? Sep 01, 2023 am 11:29 AM

在本文中,我们将了解enumerate()函数以及Python中“enumerate()”函数的用途。什么是enumerate()函数?Python的enumerate()函数接受数据集合作为参数并返回一个枚举对象。枚举对象以键值对的形式返回。key是每个item对应的索引,value是items。语法enumerate(iterable,start)参数iterable-传入的数据集合可以作为枚举对象返回,称为iterablestart-顾名思义,枚举对象的起始索引由start定义。如果我们忽

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

MySQL.proc表的作用和功能详解 MySQL.proc表的作用和功能详解 Mar 16, 2024 am 09:03 AM

MySQL.proc表的作用和功能详解MySQL是一种流行的关系型数据库管理系统,开发者在使用MySQL时常常会涉及到存储过程(StoredProcedure)的创建和管理。而MySQL.proc表则是一个非常重要的系统表,它存储了数据库中所有的存储过程的相关信息,包括存储过程的名称、定义、参数等。在本文中,我们将详细解释MySQL.proc表的作用和功能

Vue.use函数的用法和作用 Vue.use函数的用法和作用 Jul 24, 2023 pm 06:09 PM

Vue.use函数的用法和作用Vue是一款流行的前端框架,它提供了许多有用的功能和功能。其中之一就是Vue.use函数,它可以让我们在Vue应用中使用插件。本文将介绍Vue.use函数的用法和作用,并且提供一些代码示例。Vue.use函数的基本用法非常简单,只需在Vue实例化之前调用它,并传入要使用的插件作为参数。下面是一个简单的示例://引入并使用插件

source是什么按键 source是什么按键 Jun 29, 2021 am 11:56 AM

source是是显示器的调节键,显示器source键的定义:1、确认菜单选择;2、当前显示信号在不同输入信号源(数字/HDMI/DP等)间切换。

See all articles