Maison développement back-end tutoriel 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
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie fonction ? Que signifie fonction ? Aug 04, 2023 am 10:33 AM

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

Analyse de la façon d'utiliser Source Insight dans le système Ubuntu Analyse de la façon d'utiliser Source Insight dans le système Ubuntu Jan 08, 2024 pm 11:49 PM

Je pense que de nombreux amis sont habitués à utiliser SourceInsight pour lire et analyser le code source sous Windows. Il existe effectivement des outils plus efficaces sous LINUX, mais il est difficile et fastidieux de les configurer. Je pense que beaucoup de gens espèrent vraiment pouvoir les utiliser. sous Linux. SourceInsight peut être utilisé. L'éditeur suivant vous donnera une explication détaillée de l'utilisation de SourceInsight dans Ubuntu ! Allons le voir ensemble ! Voici les informations de mon système : Linuxgavin-laptop2.6.32-40-generic#87-UbuntuSMPTueMar600:56:56UTC2012x86_64GNU/Li

Quel bouton est la source ? Quel bouton est la source ? Oct 10, 2023 pm 03:26 PM

Source est le bouton permettant de changer la source du signal d’entrée ou de sélectionner une source d’entrée différente. On le trouve généralement sur les téléviseurs, les projecteurs, les systèmes audio, les écrans d'ordinateur et d'autres équipements. Sur le téléviseur, le bouton source permet aux utilisateurs de basculer entre différentes sources d'entrée pour lire différents contenus sur le téléviseur. Sur un projecteur, le bouton source a une fonction similaire et peut connecter différents appareils au projecteur. Sur le système audio, le bouton source est utilisé pour basculer entre différentes sources d'entrée audio. Sur les écrans d'ordinateur, le bouton source fonctionne de la même manière que sur les téléviseurs et les projecteurs, etc.

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

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

Quel est le but de la fonction « enumerate() » en Python ? Quel est le but de la fonction « enumerate() » en Python ? Sep 01, 2023 am 11:29 AM

Dans cet article, nous découvrirons la fonction enumerate() et le but de la fonction « enumerate() » en Python. Qu'est-ce que la fonction enumerate() ? La fonction enumerate() de Python accepte une collection de données comme paramètre et renvoie un objet d'énumération. Les objets d'énumération sont renvoyés sous forme de paires clé-valeur. La clé est l'index correspondant à chaque élément, et la valeur est les éléments. Syntaxe enumerate(iterable,start) Paramètres iterable - Les données transmises dans la collection peuvent être renvoyées sous forme d'objet d'énumération, appelé iterablestart - Comme son nom l'indique, l'index de départ de l'objet d'énumération est défini par start. si nous ignorons

Explication détaillée du rôle et de la fonction de la table MySQL.proc Explication détaillée du rôle et de la fonction de la table MySQL.proc Mar 16, 2024 am 09:03 AM

Explication détaillée du rôle et de la fonction de la table MySQL.proc MySQL est un système de gestion de bases de données relationnelles populaire. Lorsque les développeurs utilisent MySQL, ils impliquent souvent la création et la gestion de procédures stockées (StoredProcedure). La table MySQL.proc est une table système très importante. Elle stocke les informations relatives à toutes les procédures stockées dans la base de données, y compris le nom, la définition, les paramètres, etc. Dans cet article, nous expliquerons en détail le rôle et les fonctionnalités de la table MySQL.proc

Quel bouton est la source ? Quel bouton est la source ? Jun 29, 2021 am 11:56 AM

La source est la touche de réglage du moniteur. La définition de la touche source du moniteur : 1. Confirmez la sélection du menu 2. Basculez le signal d'affichage actuel entre différentes sources de signal d'entrée (numérique/HDMI/DP, etc.).

L'utilisation et la fonction de la fonction Vue.use L'utilisation et la fonction de la fonction Vue.use Jul 24, 2023 pm 06:09 PM

Utilisation et fonction de Vue.use Function Vue est un framework frontal populaire qui fournit de nombreuses fonctionnalités et fonctions utiles. L'une d'elles est la fonction Vue.use, qui nous permet d'utiliser des plugins dans les applications Vue. Cet article présentera l'utilisation et la fonction de la fonction Vue.use et fournira quelques exemples de code. L'utilisation de base de la fonction Vue.use est très simple, il suffit de l'appeler avant que Vue ne soit instanciée, en passant le plugin que vous souhaitez utiliser comme paramètre. Voici un exemple simple : //Introduire et utiliser le plug-in

See all articles