雅虎新闻|| BBC新闻|| CNN新闻|| 美元指数|| 中国期货指数|| 股票指数|| 黄金|| 外汇|| 英汉互译|| 昭放工具
163邮箱|| 126邮箱|| 新浪邮箱|| 企业邮箱|| 21cn邮箱|| tom邮箱|| 搜狐邮箱|| hotmail邮箱|| msn邮箱|| qq邮箱

用户登录

设为主页| 淘宝铺| 加入收藏|
您的IP:3.144.86.38您的操作系统:Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
个人便签
知识库
很多框架的基础

在框架中,第三方开发类A。

类A的初始化,采用框架提供的工厂模式Factory进行初始化。即提供类名的给Factory的instance方法,返回一个实例化的对象,而不是直接new。

在工厂instance中,将类名A传给类AOP的初始化方法,实例化类AOP。然后用AOP的实例,调用A的方法。因为A的方法并不存在于AOP中,所以会执行AOP的__call方法。

由于A在AOP的__construct中,将类名A传给AOP的__call,并在__call中利用method_exists判断A及其调用的方法是否存在。如果存在,就可以在这个方法的前后调用一些固定的方法,实现权限、日志、监控、debug等AOP功能,并用call_user_func_array实现该方法。

对于需要进行权限管理的类和方法,是要记录到数据库中的,所以还要把它们写到配置文件中。安装插件的时候,直接从配置文件中读取需要管理的类和方法。

 

采用这种方式,甚至只需要配置,就可以把类的方法执行了。但是大部分的PHP编辑器并不支持各类框架,所以为了方便编辑,有些框架还配了编辑器、IDE。

星期日, 03/08/2020 - 08:54 — 杨超