2015-01-10 57 views
4

的如下我苗條項目組織:修身框架配置外修身

- app 
-- Acme 
--- Auth 
---- Auth.php (handles authentication) 
-- config 
--- development.php 
--- production.php 
-- routes 
-- views 
- public 
- vendor 

我通常的方式建立我的應用程序。

$app = new \Slim\Slim([ 
    'view' => new \Slim\Views\Twig(), 
    'mode' => 'development' 
]); 

並注入像這樣的依賴關係。

$app->auth = function($app) { 
    return new Codecourse\Auth\Auth($app->user); 
}; 

什麼是最正確的方式讓我的認證類看到我的配置?我本來打算在將它作爲扶養,但苗條的配置密鑰訪問像$app->config('key')所以我不得不在$app通過,這將是壞的。

我知道,我的身份驗證可以擔任中間件,但希望能有全球訪問配置。

難道也許是更好的使用包像noodlehaus /配置(https://github.com/noodlehaus/config)來處理修身之外配置?

+0

什麼是您的認證從配置需要什麼? – Craig

回答

1

後您實例Slim\Slim您可以通過靜態方法Slim\Slim::getInstance()從任何地方(例如,您Auth類中)訪問它的實例,然後用config('key')方法來訪問它的任何配置屬性(即您可以用修身作爲資源定位器get/set really any of the active instance's resources)。這樣就不需要傳遞應用程序對象。

但是,當然你總是可以有一個單獨的配置對象(比如noodlehaus/config包中的那個),並使用它來代替Slim的內置資源定位器功能......這種方式可以在不實例化的情況下訪問它斯利姆應用對象和有Auth庫從超薄框架是獨立的。

+0

我完全錯過了這個,感謝指出了這一點。最後,我通過使用該軟件包的全局配置,但這將在以後的參考中派上用場。謝謝。 –