2013-12-23 75 views
1
require ('dataclass.php'); 
$db = new DataClass(); 

$app = new \Slim\Slim(); 

$app->group('/api/v1', function() use ($app, $db) { 

    require('processingclass.php'); 
    $foo = new FooClass(); 

}); 

这以上显然是一个不完整的超薄例子。但是,如何从$ foo中调用$ db方法?访问类的内部渺茫实例?

我有一堆路由,并希望能够访问各个路由中使用的所有辅助类的DB类 - 不设置全局或在每个辅助类或路由中加载/实例化DB类。

回答

2

Slim framework结构上没有100%清除,或者是否有内置方法可以在Slim中处理这样的任务,但是不是最好的方式来传递它吗?

$foo = new FooClass($db); 

然后在FooClass()只是有一个调用设置在构造函数中$db?像这样?

class FooClass { 

    private $db = null; 

    function __construct($db) { 

    $this->db = $db; 

    } 

} 

再次我POV不同于一般的PHP类& OOP的知识来。不清楚Slim是否有更好的方法。如果有的话,欢迎进一步了解。

+0

我连的类型提示构造ARG,比如'__construct(数据类$ DB)' – Phil

+1

哇。好。是的,那肯定会奏效!谢谢杰克和菲尔! :) – Ahhk