Crazy lens

PHP 框架开发闲谈 [php 反射]
最近一段时间, 比较清闲没什么事情. 自己想搞点东西出来. 从业以来接触了很多 php 框架 印象最深的就是Yii...
扫描右侧二维码阅读全文
21
2017/07

PHP 框架开发闲谈 [php 反射]

最近一段时间, 比较清闲没什么事情. 自己想搞点东西出来.
从业以来接触了很多 php 框架 印象最深的就是Yii2.0 和 laravel 为什么呢?
因为一帮人说这两个框架设计模式多模多麽牛逼, 代码多模多麽优雅...
诶... 说啥呢. 我说句废话, 适合的才是最好的~!

相对初学者来说. CI 和 TP 框架的手册和在使用上的难易很适合初学者使用. 因为他不会来接设计模式的好处. 你就算告诉他怎么好也都是没用的因为根本理解不了.

本人最讨厌两样, 一个算法另一项是设计模式. but 最近发现设计模式的好处. 只要场景适合我们可以直接使用造好的轮子. 算法则是一个让人又爱又恨的东西! 跑题了..

我最近开始写自己的框架. 主要依据公司自己的框架为参考进行开发. 首先介绍一下参考框架:
框架本身功能非常少, 简单实现MVC 视图支持的并不好, 我们开发也多是写接口和脚本. 但最新开发项目中, 框架接入了反射机制. 也就是本文的正题了.

实际是构建了一个实例化类池, 让所有实例化的模型和第三方类存储在池子中防止重复实例化. pool数组中已类名为key 实例化的对象为value, 使用 反射机制 ReflectionClass 类反射php 类中的方法及属性等等.

$gen = new \ReflectionClass($class_name);
return $gen->newInstanceArgs($args);

从框架中代码 利用反射机制实例化类. 利用反射机制我们可以达到批量实例化类的效果. 将我们 想要保存的实例化类常驻于内存当中, 可以实现单例效果.

当然如果你不理解反射机制我可以举个栗子:

把php中的函数/方法/扩展等比作封闭的屋子, 我们看不到里面的什么样子, 而反射机制就是相当于屋子内我们装了个摄像头, 想看哪就看哪! 
也就是我封装好的类库, 你通过反射就可以知道我写了那些方法等等...

php -h
    ...
  --rf <name>      Show information about function <name>.
  --rc <name>      Show information about class <name>.
  --re <name>      Show information about extension <name>.
  --rz <name>      Show information about Zend extension <name>.
  --ri <name>      Show configuration for extension <name>.

上面是 php 命令行执行的评论, 上面的命令行都是利用反射机制实现的.

如果还不清楚反射机制可以看下 :
理解php反射机制-1
理解php反射机制-2

最后修改:2017 年 07 月 21 日 01 : 57 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论