首页 > Web开发 > 详细

PHP中的反射模拟框架中控制器的调度

时间:2018-10-04 23:39:18      阅读:141      评论:0      收藏:0      [点我收藏+]
<?php

class IndexAction {

    public function index() {
        echo ‘index‘;
    }

    public function indexBefore() {
        echo ‘indexBefore‘;
    }

    public function indexAfert() {
        echo ‘indexAfert‘;
    }

    public function sayHello($name) {
        echo "{$name}helloword!";
    }

}

if (class_exists(‘IndexAction‘)) {
    $ReflectObj = new ReflectionClass(‘IndexAction‘);

    if (!$ReflectObj->hasMethod(‘index‘)) {
        throw new Exception(‘不存在index‘);
    }
    $ReflectIndex = $ReflectObj->getMethod(‘index‘);
    if (!$ReflectIndex->isPublic()) {
        throw new Exception(‘index不是共有方法‘);
    }

    if ($ReflectObj->hasMethod(‘indexBefore‘)) {
        $ReflectIndexBefore = $ReflectObj->getMethod(‘indexBefore‘);
        $ReflectIndexBefore->invoke($ReflectObj->newInstance());
    }

    if ($ReflectObj->hasMethod(‘sayHello‘)) {
        $ReflectSayHello = $ReflectObj->getMethod(‘sayHello‘);
        $ReflectSayHello->invoke($ReflectObj->newInstance(), ‘小明‘);
    }

    if ($ReflectObj->hasMethod(‘indexAfert‘)) {
        $ReflectindexAfert = $ReflectObj->getMethod(‘indexAfert‘);
        $ReflectindexAfert->invoke($ReflectObj->newInstance());
    }
}

利用反射获取类中的信息,来对类进行制定规则。

PHP中的反射模拟框架中控制器的调度

原文:https://www.cnblogs.com/homehym/p/9743720.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!