2013-12-23 74 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