我制作了一个依赖于现有特定方法的 CodeIgniter 库。这种方法曾经是“隐藏的”(没有记录,但似乎有效)。最终 CodeIgniter 成功了protected
,所以我不能从库中调用它。在 GitHub 上的 CodeIgniter 开发版中,有一个我可以使用的新公共方法。
在我的库中,我is_callable
用来检测使用哪种方法,旧方法还是新方法。问题是,在当前稳定版本的 CodeIgniter 中,两者都不存在。因此,库将失败。有没有办法可以优雅地出错,或者从我的构造函数中抛出异常?目前,如果这两种方法都不可用,则脚本在尝试调用该方法时将崩溃。
我不知道 CodeIgniter 库由于缺少方法而无法正确加载的约定是什么。
编辑:这是我要问的那一行:
$this->func = is_callable(array($this->db, '_compile_select')) ? '_compile_select' : 'get_compiled_select';
如果这些都不存在(_compile_select
或get_compiled_select
),那么当库尝试调用$this->func
. 我不知道惯例,我可以show_error
从图书馆打电话吗?从库的构造函数中抛出错误的正确方法是什么?