有人可以给我一些关于如何将用户角色放入zf2工具栏的说明。
在我的zend-developer-toolbar中显示我的角色实体中的用户角色时遇到问题。 Normaly我解决了自己的问题,但在这种情况下,我没有想法。 我正在使用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.
在我的config / autoload / module.zenddevelopertools.local.php中,我确实将探查器设置为启用并且它也已安装,至少我使用我的composer.phar检查了它。
'profiler' => array(
'enabled' => true,
...
),
如果有人可以帮助我,那会很棒 THX!
答案 0 :(得分:3)
我通过搜索错误消息You have to install or enable @bjyoungblood's Zend\Db Profiler to use this feature
找到了这个帖子,因为当我第一次安装ByjProfiler时,我无法在开发人员工具栏中显示查询统计信息。
自述文件和文档在工具栏中激活分析器的代码略有不同,但经过一些游戏后我才开始工作。
在 config / autoload / 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;
}
),
),
);
我从 byj-profiler / config / module.config.php 中派生了大部分代码,但更改了它以检查BjyProfiler处于活动状态的已加载模块。如果不是,它将回退到常规Zend \ Db \ Adapter \ Adapter,否则尝试使用应用程序配置中的数据库设置配置BjyProfiler。
希望有所帮助!
编辑:
进一步详细说明,默认情况下让BjyProfiler工作的问题与AdapterServiceFactory
使用Zend\Db\Adapter\Adapter
有关。
如果我启用了BjyProfiler,但是从服务管理器中删除了数据库工厂,那么探查器会自动运行而无需额外的代码或配置,但如果我从application.config.php中删除BjyProfiler,那么我的数据库连接就会中断。
如果我在服务管理器中启用了AdapterServiceFactory
字符串并且启用了BjyProfiler,则它似乎会使用BjyProfiler作为数据库适配器覆盖,因此无法使工具栏中的分析器工作。