设计模式 - 如何用PHP实现一个类似插件中心的类?
PHP中文网
PHP中文网 2017-04-10 16:17:42
[PHP讨论组]

有个php的config文件,里面用保存了一些类名

怎么写一个类,把这个config文件中的类new出来,同时去调用他们的run方法(这些类还不存在,后期再陆续补充,但是所有类都有一个run方法)?

我想给这些类的run方法传一个值,所有的这些run方法执行完成后,返回给我处理完的一个值,这种怎么弄?

这个需求,有点像插件一样,插件有些规则,有个插件中心的类,专门处理这些插件的调用,传值

PHP中文网
PHP中文网

认证0级讲师

全部回复(1)
黄舟

你需要的是interfacespl_autoload_register,先设置一个interface,要求必须实现run方法,然后规定一个类命名规则比如必须Plugin结尾,以及类文件的加载规则比如必须都放置在plugin目录,然后通过spl_autoload_register注册加载逻辑即可

interface IPlugin {
    public function run();
}

class DemoPlugin implements IPlugin {
    public function run(){
        //do sth
        return 'this is demo';
    }
}

spl_autoload_register(function($class){
    if($class是Plugin结尾){
        include 'plugin/' . $class . '.php';
    }
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号