我正在将项目从Zend framework 1.4迁移到2.4,我在" vendor / custom / classes / User.php"
中有一个类<?php
namespace Classes;
use Zend\Db\TableGateway\TableGateway;
use Zend\ServiceManager\FactoryInterface;
use Zend\ServiceManager\ServiceLocatorInterface;
use Zend\Db\Adapter\Adapter;
class User
{
public function getItemById($id)
{
//$config = $this->getServiceLocator()->get('config');
//This only work in controller
$configs = array();
$adapter = new Adapter($configs);
$projectTable = new TableGateway('project', $adapter);
$rowset = $projectTable->select(array('type' => 'PHP'));
echo 'Projects of type PHP: ';
foreach ($rowset as $projectRow) {
echo $projectRow['name'] . PHP_EOL;
}
}
}
?>
我需要在&#34; config / autoload&#34;中的文件中加载合并配置。 ,global.php和local.php。 $config = $this->getServiceLocator()->get('config');
有人可以指导我如何从自定义类中获取这些配置。基本上我要做的是在模型之外编写像User,Project,Customer这样的类,并在CMS,管理面板,网站等所有模块中使用它们。感谢您的指导。
答案 0 :(得分:0)
一种方法可能是使用工厂。
您创建了一个类UserFactory implementing Zend\ServiceManager\FactoryInterface
。此类将包含createService
参数的$serviceLocator
方法。您可以使用此服务定位器来检索您的依赖项并将它们传递给User
类。
在User
类中,您需要使用一个控制器来接受您需要传递给它的依赖项作为参数
答案 1 :(得分:0)
由于没有直接的方式来访问这些配置。我在config / autoload中的本地和全局php文件中编写了带有DB访问信息的常量,并在我的课程中使用它。
Event