gpt4 book ai didi

php - 在 zend-developer-toolbar ZF2 中激活 BjyAuthorize 的问题

转载 作者:搜寻专家 更新时间:2023-10-31 20:43:42 24 4
gpt4 key购买 nike

谁能给我一些关于如何将用户角色放入我的 zf2-toolbar 的说明。

我在从 zend-developer-toolbar 中可见的角色实体获取用户角色时遇到问题。通常我会解决自己的问题,但在这种情况下我没有想法。我正在使用 ZfcUser、BjyAuthorize 和 Doctrine2。我找不到任何关于如何使用户角色显示在工具栏上的说明。我使用 composer 来安装所有依赖项。我的 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 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 派生了大部分代码,但对其进行了更改以检查加载的模块是否 BjyProfiler 处于事件状态。如果不是,它会回退到常规的 Zend\Db\Adapter\Adapter,否则会尝试使用应用程序配置中的数据库设置来配置 BjyProfiler。

希望对您有所帮助!


编辑:

进一步详细说明,让 BjyProfiler 默认工作的问题似乎与使用 Zend\Db\Adapter\AdapterAdapterServiceFactory 有关。

如果我启用了 BjyProfiler,但从服务管理器中删除了数据库工厂,分析器会自动运行而无需额外的代码或配置,但是如果我从 application.config.php 中删除 BjyProfiler,那么我的数据库连接就会断开。

如果我在服务管理器中有 AdapterServiceFactory 字符串并启用了 BjyProfiler,它似乎会覆盖使用 BjyProfiler 作为 DB 适配器,因此不会让分析器在工具栏中工作。

关于php - 在 zend-developer-toolbar ZF2 中激活 BjyAuthorize 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16123881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com