gpt4 book ai didi

zend-framework2 - 如何让 Zend Framework 2 beta4 中的服务管理器为专辑表创建一个实例?

转载 作者:行者123 更新时间:2023-12-03 23:38:05 25 4
gpt4 key购买 nike

这是 Rob Allen 的 Zend Framework beta4 快速入门教程。

错误消息:Zend\ServiceManager\ServiceManager::get 无法获取或创建专辑表的实例

似乎尝试建立与数据库的连接失败,但我还没有找到方法来判断。它使用闭包从 ServiceManager 返回一个实例,但会收到上述错误消息。

模块/相册/Module.php

命名空间专辑;

class Module
{
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}

public function getServiceConfiguration()
{

$albumTable = array(
'factories' => array(
'album-table' => function($sm) {
$dbAdapter = $sm->get('db-adapter');
$table = new AlbumTable($dbAdapter);
return $table;
},
),
);
return $albumTable;
}
}

命名空间应用程序;

使用 Zend\Db\Adapter\Adapter 作为 DbAdapter,
class Module
{
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getServiceConfiguration()
{
$factoryDBAdaptor = array(
'factories' => array(
'db-adapter' => function($sm) {
$config = $sm->get('config');
$config = $config['db'];
$dbAdapter = new DbAdapter($config);
return $dbAdapter;
},
),
);
return $factoryDBAdaptor;
}
}

配置\自动加载\global.php
return array(
'db' => array(
'driver' => 'PDO',
'dsn' => 'mysql:dbname=zf2tutorial;hostname=localhost',
'username' => 'user',
'password' => 'password',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
);

最佳答案

这与 Zend Framework 的 master 自 Beta 4 以来发生了变化有关,因此我的针对 beta 4 的教程不再适用于最新的 ZF master。

此外,SM 可能有以前的异常,因此您应该检查是否有任何以前的异常,因为这可能会显示潜在的错误。

更新
截至 2012 年 7 月 11 日,我的 tutorial现在已针对 Beta 5 进行了更新。它现在使用 Db Adapter 的 ServiceFactory 来创建适配器,因此您甚至不再需要修改 Application 的 Module 类。

关于zend-framework2 - 如何让 Zend Framework 2 beta4 中的服务管理器为专辑表创建一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355126/

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