3

有人可以給我一些關於如何將用戶角色引入到我的zf2工具欄的說明。在Zend-developer-toolbar ZF2中激活BjyAuthorize激活的問題

我的角色實體中的用戶角色在我的zend-developer-toolbar中可見時出現問題。通常我解決自己的問題,但在這種情況下,我沒有想法。 我正在使用ZfcUser,BjyAuthorize和Doctrine2。 我找不到有關如何使用戶角色顯示在工具欄上的任何說明。 我用composer來安裝所有的依賴項。我的作曲文件看起來像這樣:

"require": { 
    "php": ">=5.3.3", 
    "zendframework/zendframework": "2.*", 
    "doctrine/common": ">=2.3-dev,<2.5-dev", 
    "zf-commons/zfc-user": "0.*", 
    "bjyoungblood/bjy-authorize": "1.2.*", 
    "doctrine/doctrine-orm-module": "0.*", 
    "zendframework/zftool": "dev-master", 
    "zendframework/zend-developer-tools": "dev-master", 
    "zf-commons/zfc-user-doctrine-orm": "dev-master", 
    "bjyoungblood/bjy-profiler": "dev-master" 
} 

在工具欄上我也仍然得到消息:

Error 
You have to install or enable @bjyoungblood's Zend\Db Profiler to use this feature. 

雖然我的配置/自動加載/ module.zenddevelopertools.local.php我沒設置分析器啓用,它也被安裝,至少我檢查與我的composer.phar如果。

'profiler' => array(
    'enabled' => true, 

    ... 
), 

如果有人能幫助我, Thx!

+1

在你的** application.config.php中**你有沒有激活** BjyProfiler **? – 2013-04-20 19:26:19

+1

BjyProfiler與正在顯示的UserRoles無關。重要的是在BjyAuthorize之前加載ZendDeveloperToolbar。應該沒有一個配置需要在您的工具欄中顯示角色 - 所有的最新版本? – Sam 2013-04-20 21:47:39

+1

我仍然面臨上述問題,BjyProfiler不能正常工作,而我已經安裝並啓用此模塊。 請幫幫我 – 2013-06-04 09:07:49

回答

3

我通過搜索錯誤消息You have to install or enable @bjyoungblood's Zend\Db Profiler to use this feature,因爲當我第一次安裝ByjProfiler我無法得到它顯示了開發人員工具欄中查詢統計發現這個線程。

自述文件和文檔有激活工具欄中的分析器的代碼略有不同,但一些玩過後,我得到了它的工作。

配置/自動加載/ global.php,我有以下已經設置:

return array(
    // ... 
    'service_manager' => array(
     'factories' => array(
      'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 
     ), 
    ), 
); 

要獲得ByjProfiler在ZDT工具欄上的工作,我把它改爲:

return array(
    //... 
    'service_manager' => array(
     'factories' => array(
      //'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory', 
      'Zend\Db\Adapter\Adapter' => function($sm) { 
       $config = $sm->get('Configuration'); 
       $modules = $sm->get('ModuleManager')->getLoadedModules(); 

       if (isset($modules['BjyProfiler'])) { // module is enabled in application.config.php 
        $adapter = new BjyProfiler\Db\Adapter\ProfilingAdapter($config['db']); 
        $adapter->setProfiler(new BjyProfiler\Db\Profiler\Profiler()); 
        if (isset($config['db']['options']) && is_array($config['db']['options'])) { 
         $options = $config['db']['options']; 
        } else { 
         $options = array(); 
        } 
        $adapter->injectProfilingStatementPrototype($options); 
       } else { 
        $adapter = new Zend\Db\Adapter\Adapter($config['db']); 
       } 

       return $adapter; 
      } 
     ), 
    ), 
); 

我派生自by j-profiler/config/module.config.php的大部分代碼,但將其更改爲檢查已加載的BjyProfiler處於活動狀態的模塊。如果不是,則返回到常規Zend \ Db \ Adapter \ Adapter,否則嘗試使用應用程序配置中的數據庫設置來配置BjyProfiler。

希望有幫助!


編輯:

爲了進一步闡述,它似乎越來越BjyProfiler默認工作問題曾與使用AdapterServiceFactoryZend\Db\Adapter\Adapter做。

如果我啓用了BjyProfiler,但刪除服務管理數據庫工廠,分析器自動工作,無需額外的代碼或配置,但如果我從application.config.php刪除BjyProfiler,那麼我的DB連接中斷。

如果我在服務管理器中啓用了AdapterServiceFactory字符串,並且啓用了BjyProfiler,它似乎會使用BjyProfiler作爲數據庫適配器進行覆蓋,因此無法使用工具欄中的分析器工作。