Php 在zend developer工具栏ZF2中激活BjyAuthorize时出现问题
有人能告诉我如何将用户角色放入我的zf2工具栏。 我无法从zend developer工具栏中可见的角色实体中获取用户角色。通常我自己解决问题,但在这种情况下,我没有想法。 我正在使用ZfcUser、BjyAuthorize和Doctrine2。 我找不到有关如何在工具栏上显示用户角色的任何说明。 我使用composer安装所有依赖项。我的composer文件如下所示:Php 在zend developer工具栏ZF2中激活BjyAuthorize时出现问题,php,zend-framework2,developer-tools,user-roles,bjyauthorize,Php,Zend Framework2,Developer Tools,User Roles,Bjyauthorize,有人能告诉我如何将用户角色放入我的zf2工具栏。 我无法从zend developer工具栏中可见的角色实体中获取用户角色。通常我自己解决问题,但在这种情况下,我没有想法。 我正在使用ZfcUser、BjyAuthorize和Doctrine2。 我找不到有关如何在工具栏上显示用户角色的任何说明。 我使用composer安装所有依赖项。我的composer文件如下所示: "require": { "php": ">=5.3.3", "zendframework/zendfr
"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"
}
在我的config/autoload/module.zenddevelopertools.local.php中,我确实将探查器设置为enabled,并且它也已安装,但至少我使用composer.phar if检查了这一点
'profiler' => array(
'enabled' => true,
...
),
如果有人能帮我就好了,
谢谢 我通过搜索错误消息找到了此线程
您必须安装或启用@bjyoungblood的Zend\Db Profiler才能使用此功能
,因为当我第一次安装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派生了大部分代码,但对其进行了更改,以检查加载的模块是否处于活动状态。如果不是,则返回常规的Zend\Db\Adapter\Adapter,否则尝试使用应用程序配置中的Db设置配置BjyProfiler
希望有帮助
编辑: 为了进一步说明,让BjyProfiler默认工作的问题似乎与使用
Zend\Db\Adapter\Adapter
的AdapterServiceFactory
有关
如果启用了BjyProfiler,但从服务管理器中删除了DB工厂,则探查器会自动工作,而无需额外的代码或配置,但如果从application.config.php中删除BjyProfiler,则我的DB连接会断开
如果我在服务管理器中启用了
AdapterServiceFactory
字符串并启用了BjyProfiler,它似乎覆盖了使用BjyProfiler作为DB适配器,因此无法在工具栏中运行探查器。在application.config.php中,是否激活了BjyProfiler?BjyProfiler与显示的用户角色无关。重要的是在BjyAuthorize之前加载ZendDeveloperToolbar。应该没有一个单一的配置需要有角色显示在您的工具栏-一切最新的版本?我仍然面临上述问题,而且BjyProfiler是不工作,而我已经安装并启用此模块。请帮助我,我也遇到了同样的问题,你在Wilt解决了吗?没有,还没有解决。我从来没有得到过有用的回答。我已经停止使用BjyAuthorize,所以我不太可能很快会带来一些东西。如果我总是在StackOverflow上发布我的解决方案,那么如果我发现了什么,你可以稍后在这里阅读。如果你发现一些有用的东西,请把它贴在这里!
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;
}
),
),
);