Zend Framework 3 如何访问 Globle.php 文件
Zend Framework 3 How Access Globle.php file
在 Zend Framework 3 中,我在 Config/autoload/myconfig 中创建了文件。globle.php
return [
"myvariable" => [
"key" => "value"
]
];
我可以通过这个访问
$config = $this->getServiceLocator()->get('Config');
给出以下错误:
在插件管理器中找不到名为 "getServiceLocator" 的插件 Zend\Mvc\Controller\PluginManager
现在我如何在 Zend Framework 3 的 Controller 中访问这个文件。
这里有很多东西:
首先,服务定位器已被删除。因此,您必须为您的控制器创建一个工厂,或者使用 configuration based abstract factory.
然后,您的文件必须遵循 application.config.php
中定义的模式,即 global.php
、*.global.php
、local.php
或 *.local.php
。在您的消息中,您的配置被命名为 myconfig.globle.php
而不是 myconfig.global.php
.
那么:
final class MyController extends AbstractActionController
{
private $variable;
public function __construct(string $variable)
{
$this->variable = $variable;
}
public function indexAction()
{
// do whatever with variable
}
}
你还需要一个配置:
return [
'controllers' => [
'factories' => [
MyController::class => MyControllerFactory::class,
],
],
];
最后,让我们MyControllerFactory
class:
final class MyControllerFactory
{
public function __invoke(Container $container) : MyController
{
$config = $container->get('config');
if (!isset($config['myvariable']['key']) || !is_string($config['myvariable']['key'])) {
throw new Exception(); // Use a specific exception here.
}
$variable = $config['myvariable']['key']; // 'value'
return new MyController($variable);
}
}
应该差不多了:)
在 Zend Framework 3 中,我在 Config/autoload/myconfig 中创建了文件。globle.php
return [
"myvariable" => [
"key" => "value"
]
];
我可以通过这个访问
$config = $this->getServiceLocator()->get('Config');
给出以下错误:
在插件管理器中找不到名为 "getServiceLocator" 的插件 Zend\Mvc\Controller\PluginManager
现在我如何在 Zend Framework 3 的 Controller 中访问这个文件。
这里有很多东西:
首先,服务定位器已被删除。因此,您必须为您的控制器创建一个工厂,或者使用 configuration based abstract factory.
然后,您的文件必须遵循 application.config.php
中定义的模式,即 global.php
、*.global.php
、local.php
或 *.local.php
。在您的消息中,您的配置被命名为 myconfig.globle.php
而不是 myconfig.global.php
.
那么:
final class MyController extends AbstractActionController
{
private $variable;
public function __construct(string $variable)
{
$this->variable = $variable;
}
public function indexAction()
{
// do whatever with variable
}
}
你还需要一个配置:
return [
'controllers' => [
'factories' => [
MyController::class => MyControllerFactory::class,
],
],
];
最后,让我们MyControllerFactory
class:
final class MyControllerFactory
{
public function __invoke(Container $container) : MyController
{
$config = $container->get('config');
if (!isset($config['myvariable']['key']) || !is_string($config['myvariable']['key'])) {
throw new Exception(); // Use a specific exception here.
}
$variable = $config['myvariable']['key']; // 'value'
return new MyController($variable);
}
}
应该差不多了:)