- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
第一个 ZF2 应用程序,到达那里,但我认为在依赖注入(inject)和 ServiceManager 方面仍然缺少一两个想法。
目前我在编写一个新的数据库网关类时遇到了一个特殊问题。我不会注入(inject)数据库适配器,所以我实现了 AdapterAwareInterface。但是 setDbAdapter 方法从未在我的类里面被调用过。我想知道是否有人会好心地查看我的代码并提出可能出了什么问题(或者我错过了什么!)。
所以,这是我实现 AdapterAwareInterface 的类。
<?php
namespace Foo\Database;
use Zend\Db\Adapter\Adapter;
use Zend\Db\Adapter\AdapterAwareInterface;
use Zend\Log\LoggerAwareInterface;
use Zend\Log\LoggerInterface;
class Gateway implements AdapterAwareInterface, LoggerAwareInterface
{
protected $logger = NULL;
protected $db = NULL;
public function setDbAdapter(Adapter $adapter)
{
$this->db = $adapter;
}
public function setLogger(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function getServiceConfig()
{
return array(
'factories' => array(
....
),
'invokables' => array(
'FooDatabaseGateway' => 'Foo\Database\Gateway',
),
'abstract_factories' => array(
'AbstractFeedParserFactory' => 'Bookmakers\Odds\Feeds\AbstractFeedParserFactory',
),
);
}
gateway = $this->getServiceLocator()->get('FooDatabaseGateway');
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=kickoff_manager;host=localhost',
'username' => '****',
'password' => '****',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
最佳答案
好吧,今天早上对这个问题有一双新的眼睛。我认为这是写答案..至少可以说它对我有用。如果有人想提出一种完全不同的更好的方法,那么请这样做:-)。
所以缺少的一点是使用 initializer
在我的服务管理器配置中调用 setDbAdapter
在任何实现 AdapterAwareInterface
的类实例上运行.所以在数组中我从 getServiceConfig
返回在我的Module.php
文件,我添加了以下条目:
public function getServiceConfig() {
return array(
'initializers' => array(
'db' => function($service, $sm)
{
if ($service instanceof AdapterAwareInterface)
{
$service->setDbAdapter($sm->get('Zend\Db\Adapter\Adapter'));
}
}....
关于php - ZF2 - ServiceManager 和 'aware' 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13807884/
我会说服我的 friend ,在开发数据库应用程序时,在 Delphi 中使用数据库组件(DB Aware Controls)是迄今为止最好的选择。 这个争论从他很多年前就开始了:直到今天,他仍然相信
在谷歌 Awareness API 指南页面上,提到了上下文类型。 Contextual data includes sensor-derived data such as location (lat
我有一些用 Delphi 编写的业务对象,带有自定义的数据库持久性方案,最终满足了我的需求。太好了。现在是 GUI 实现的时候了。问题就从这里开始了。 如何将我的对象正确绑定(bind)到 GUI?
您如何在Hadoop中定义“机架感知”? 最佳答案 似乎机架感知意味着组件实际上可以区分托管在其上的物理机架服务器。如果您有兴趣,链接会更深入。 https://hadoop.apache.org/d
我很好奇我们许多从事设计或做出设计决策的人是否听说过这个问题。 我知道存在危险的颜色组合,例如绿色 + 红色。这可能是最常见的色盲案例之一。如果红色背景上有绿色文本,反之亦然,有些人将看不到任何内容。
我希望能够在我的 Android 应用程序中查看天气。我实现了它,但它似乎总是在返回条件:[2] 而不是别的,尽管这里已经下了将近一个小时的雨了。 这是它返回的内容: Temp=67.0F/19.44
我正在尝试在多个 session 中使用 Android 感知 API 注册多个位置围栏。但是每次我注册一个新的位置围栏时,它似乎会丢弃我的旧位置围栏并且不再触发它们。 String uniqueId
我认为标题说明了一切......但为了完整起见,这里是完整的问题。 问题 因此,我在 Visual Basic/C#/Anything.net 中有一个包含 Cell 实例的 2 列数组(矩阵或“网格
我想查看全新的 Awareness API。我正在使用 Play Services 9.0.2。文档有 this example : GoogleApiClient client = new Goog
我正在尝试找出一种在线算法,用于“时间感知”指数移动平均线,在不同时间进行采样。通过“时间感知”,我的意思是“给予在一天中相似时间采样的数据更多的权重”,但是(a)我将给出更精确的定义,并且(b)这只
在Struts2拦截器包中,我们可以看到很多XXXAware接口(interface),比如ApplicationAware、CookieAware等。 在Spring框架中,ApplicationC
我正在与 Java 团队一起使用 JavaFX WebView 开发 HTML+CSS+Javascript渲染器。我也想在普通浏览器中使用相同的 HTML+CSS+Javascript,但我希望在样
本文分享自华为云社区《有感知的 Aware Spring Bean》,作者:陈皮的JavaLib。 有感知能力的 Spring Bean 正常情况下,Spring 中的 Bean 对 Spring 是
我有一个带有 openocd 和 arm-none-eabi-gdb 的设置,我正在尝试调试 FreeRTOS fw。 我用以下命令启动 openocd: openocd -f /usr/local/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
遵循 official documentation 中的指南,我尝试使用以下语句将 Awareness API 添加为我的应用程序的依赖项: compile "com.google.android.g
我在手机上使用较低版本 (9.4.0) 的相同代码,但出于某种原因它不能在 RPi3 上运行?我的构建.gradle compile 'com.google.android.gms:play-serv
好吧,我正在测试如何编写一个 C++ 应用程序,它实际上可以读取(和更改)文本文件,同时遵守用于文本的编码。我希望(对于其他 API)将所有读取的文本显式转换为 UTF-8 以供内部使用。与文件中的实
我正在使用 Genesis LifeStyle Pro 子主题。网址:https://www.test.rainerklar.de/blog-fuer-verjuengung-und-gesundhe
我有一个关于在 C++ 中向 std::map 插入内容的问题。 这就是我的代码: stringutils.hh: ... unsigned long hashSDBM(char *strToHa
我是一名优秀的程序员,十分优秀!