我必须声明应用程序中任何地方都可用的常量。
在Zend Framework 1中,我们曾在application.ini
中声明为:
constants.NAME_TITLE = "User Name",
在Zend Framework 2中我们在哪里以及如何做到这一点?
答案 0 :(得分:9)
我找到了解决方案here。您必须在Model中创建存储类。在该类中,您可以根据需要创建任意数量的常量。
<?php
namespace Application\Model;
class Application {
const EMAIL = 'email@gmail.com';
}
现在可以通过以下方式随处访问:
NameOfModule\Model\NameOfModel::NAMEOFCONSTANT
所以你可以在这样的视图中打印常量:
<?php echo Application\Model\Application::EMAIL; ?>
答案 1 :(得分:1)
对于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
答案 2 :(得分:0)
您可以按如下方式定义,分配和访问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
答案 3 :(得分:-1)
您还可以编写可以在应用程序的任何位置访问的函数和变量,如控制器,模型和视图。
<?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(); ?>