アプリケーションのどこでも使用できる定数を宣言する必要があります。Zend Framework 1 では、 inapplication.ini
を次のように宣言していました。
constants.NAME_TITLE = "User Name",
Zend Framework 2 のどこで、どのようにこれを行うのでしょうか?
アプリケーションのどこでも使用できる定数を宣言する必要があります。Zend Framework 1 では、 inapplication.ini
を次のように宣言していました。
constants.NAME_TITLE = "User Name",
Zend Framework 2 のどこで、どのようにこれを行うのでしょうか?
Zend Framework 2 の場合、代替ソリューションの 1 つです。
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 を定義、割り当て、およびアクセスできます。これらの 2 つのクラスをエイリアスで使用します。
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