8

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

constants.NAME_TITLE = "User Name",

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

4

4 回答 4

9

我在这里找到了解决方案。您必须在模型中创建存储类。在该类中,您可以根据需要创建任意数量的常量。

<?php  
namespace Application\Model;
class Application {
    const EMAIL = 'email@gmail.com';
}

现在可以通过以下方式在任何地方访问它:

NameOfModule\Model\NameOfModel::NAMEOFCONSTANT

因此,您可以例如在如下视图中打印常量:

<?php echo Application\Model\Application::EMAIL; ?>
于 2013-05-25T23:57:58.283 回答
2

对于 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
于 2016-06-14T14:13:27.310 回答
0

您还可以编写可以在应用程序的任何位置(如控制器、模型和视图)访问的函数和变量。

<?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(); ?>
于 2013-06-04T10:48:20.257 回答
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
于 2016-12-06T07:11:44.887 回答