对Phalcon中的某些组件进行全球访问[英] Global access to some component in Phalcon

问题描述

如何从所有MVC层中访问一些类和对象?

例如,我想在全球范围内访问当前用户的配置文件和config.ini文件.

在Zend Framework 1.X I为此目的使用zend_registery.

推荐答案

您可以使用 di容器为此.

访问配置的一种简单方法是在引导程序中创建lambda功能:

$configFile  = require(ROOT_PATH . '/web/config/global.php');

// Create the new object
$config = new \Phalcon\Config($configFile);

// Store it in the Di container
$this->di['config'] = $config;

从控制器访问此对象很简单:

$config = $this->config;

从应用程序的任何其他部分,您可以随时抓住DI容器并从那里访问它:

$di = \Phalcon\DI\FactoryDefault::getDefault();
$config = $di->config;

请查看一个bootstrap示例在这里.它展示了如何在DI容器中注册的服务.

根据当前用户配置文件,您始终可以使用会话组件存储该信息并以与上面的配置相同的方式检索信息.

最后,您可以在Phalcon注册自己的注册表服务.我有一个示例在这里如果您有兴趣.

其他推荐答案

我为某些phalcon问题构建了一个扩展骨架.这是其中之一.

在此处查看项目:

但是,基本上可以从应用程序中的任何地方调用Cloud::app()->getPhalconDi()或Cloud::app()->getPhalconRouter()或Cloud::app()->getPhalconApplication()

其他推荐答案

值得一提的是,Phalcon包括内置注册表服务,我发现它很有帮助:

/phalcon_registry.html

本文地址:https://www.itbaoku.cn/post/1739795.html