gpt4 book ai didi

php - 如何捕获 php 中不存在的子对象引发的错误?

转载 作者:行者123 更新时间:2023-12-03 08:14:43 25 4
gpt4 key购买 nike

我正在努力思考如何在 php 中实现一个好的插件系统。我读了很多关于 Hook 系统和实现这些东西的不同方法的文章,但直到现在我还没有找到任何适合我需要的方法或现有系统。

我想要一个对象(让它成为 $plugins),其中所有使用的插件都可以作为子对象($plugin->$blog)。到目前为止,这没有问题。但是我怎么能捕捉到一个不存在的插件呢?

如果在代码中的某个地方我会使用 $plugin->$blog->loadArticle 或类似的东西调用插件 $blog 并且插件系统没有加载插件,则会引发 fatal error 。是否可以在调试类中捕获和处理这些错误?

谢谢你的想法!请原谅我的英语...... ;-)

最佳答案

好吧,您可以使用魔术 __get() 像这样实现您的 Plugin 对象

class Plugins {
private $plugins = array();

public function __get($name) {
if (!isset($this->plugins[$name]) {
throw new PluginNotInstalledException(); //this can be catched with try / catch
}
return $this->plugins[$name];
}

... //methods addPlugin() etc..
}

关于php - 如何捕获 php 中不存在的子对象引发的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com