我必须声明在应用程序中任何地方都可用的常量。在 Zend Framework 1 中,我们曾经声明application.ini
为:
constants.NAME_TITLE = "User Name",
在 Zend Framework 2 中,我们在哪里以及如何做到这一点?
我必须声明在应用程序中任何地方都可用的常量。在 Zend Framework 1 中,我们曾经声明application.ini
为:
constants.NAME_TITLE = "User Name",
在 Zend Framework 2 中,我们在哪里以及如何做到这一点?
我在这里找到了解决方案。您必须在模型中创建存储类。在该类中,您可以根据需要创建任意数量的常量。
<?php
namespace Application\Model;
class Application {
const EMAIL = 'email@gmail.com';
}
现在可以通过以下方式在任何地方访问它:
NameOfModule\Model\NameOfModel::NAMEOFCONSTANT
因此,您可以例如在如下视图中打印常量:
<?php echo Application\Model\Application::EMAIL; ?>
对于 Zend Framework 2,一种替代解决方案。
你可以在 config/autoload/local.php 中定义你的全局变量
'array_name' => array(
'variable_name' => value,
),
并在任何地方使用它,就像:
$this->config = $obj->getServiceLocator()->get('config'); //create config object
$this->you_variable = $this->config['arrayname']['variable_name']; // fetch value
echo $this->you_variable; // print value
您还可以编写可以在应用程序的任何位置(如控制器、模型和视图)访问的函数和变量。
<?php
namespace Webapp;
class ControllerName
{
const EMAIL = 'email@gmail.com';
public static function myFunction()
{
echo "doing work well.";
}
}
您可以访问此类函数和属性,例如
<?php echo Webapp\ControllerName::EMAIL; ?>
和
<?php echo Webapp\ControllerName::myFunction(); ?>
您可以按如下方式定义、分配和访问 CONSTANT: 将这两个类与别名一起使用:
use Zend\Config\Config as Zend_Config;
use Zend\Config\Processor\Constant as Zend_Constant;
然后将以下代码用于控制器类的任何功能:
define ('TEST_CONST', 'bar');
// set true to Zend\Config\Config to allow modifications
$config = new Zend_Config(array('foo' => 'TEST_CONST'), true);
$processor = new Zend_Constant();
$processor->process($config);
echo $config->foo;
它将给出 o/p:
bar