懒加载,我这样做对吗?

时间:2011-10-22 11:26:29

标签: php api lazy-loading

我正在编写API实现,而我的主API类具有__call()魔术方法:

public function __call($name, $params)
{
    if (in_array($name, $this->resources))
    {
        require_once APPPATH . 'resources' . DIRECTORY_SEPARATOR . $name . '.php';

        $class_name = ucfirst($name);

        return new $class_name($params);
    }
}

所以基本上在我的应用程序中,如果我写

$api->product()->get($product_id); 
// or
$api->product()->post($product); 
包含

resources / product.php文件,创建Product对象并调用适当的方法。这是否是一种正确的延迟加载方式,是否有更好的方法来实现API?

1 个答案:

答案 0 :(得分:0)

之后您可以添加自己的自动加载器。如果“第一”自动加载器找不到文件,你可能有第二个逻辑或第三个...... spl_autoload_register(); @http://www.php.net/manual/en/function.spl-autoload-register.php

在这种情况下,您不必关心框架/应用程序自动加载器。