zend框架2常量

时间:2013-05-09 18:19:32

标签: php zend-framework2 constants

我必须声明应用程序中任何地方都可用的常量。 在Zend Framework 1中,我们曾在application.ini中声明为:

constants.NAME_TITLE = "User Name",

在Zend Framework 2中我们在哪里以及如何做到这一点?

4 个答案:

答案 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(); ?>