いくつかの場所で$variable
を使用したいだけです。ビューとコントローラーだけでなく、routes.php
およびその他の構成ファイルでも使用します。
次のようなものは必要ありません。構成ファイルを読み込むためにConfigクラスを使用します。 CIのget_instance
などを使用します。
私はただ与えられた$variable
(それは定数かもしれませんが、変数としてそれを必要とします)を宣言し、それをどこでも絶対に使いたいです。
実際... CIのどのPHPファイルかbootstrapは最初に解析されるものの1つであるため、そこにグローバル変数が...しかし、コア/システムまたは不適切なファイルではなく、この単純な要件に「最適な」配置。
/application/config
と呼ばれるconstants.php
というファイルがあります
私は通常、それらがどこにあるかを簡単に確認するためにコメントを付けてそこにすべてを入れます:
/**
* Custom defines
*/
define('blah', 'hello mum!');
$myglobalvar = 'hey there';
index.php
がロードされた後、/core/CodeIgniter.php
ファイルがロードされ、次に、共通機能ファイル/core/Common.php
がロードされ、その後/application/constants.php
がロードされます。ロードするファイル。
ヘルパーファイルで「Globals」クラスを静的メソッドとともに使用して、アプリのすべてのグローバル変数を管理します。ここに私が持っているものがあります:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
// Application specific global variables
class Globals
{
private static $authenticatedMemberId = null;
private static $initialized = false;
private static function initialize()
{
if (self::$initialized)
return;
self::$authenticatedMemberId = null;
self::$initialized = true;
}
public static function setAuthenticatedMemeberId($memberId)
{
self::initialize();
self::$authenticatedMemberId = $memberId;
}
public static function authenticatedMemeberId()
{
self::initialize();
return self::$authenticatedMemberId;
}
}
$autoload['helper'] = array('globals');
最後に、コード内のどこからでも使用できるように、変数を設定するためにこれを行うことができます。
Globals::setAuthenticatedMemeberId('somememberid');
そしてこれはそれを読むために:
Globals::authenticatedMemeberId()
注:Globalsクラスに初期化呼び出しを残した理由は、必要に応じてクラスの初期化子を使用して将来拡張できるようにするためです。また、セッター/ゲッターを介して設定および読み取りされるものを制御する必要がない場合は、プロパティをパブリックにすることもできます。
Constants_helper.phpファイルを作成して、そこに変数を配置することもできます。例:
define('MY_CUSTOM_DIR', base_url().'custom_dir_folder/');
次に、application/config/autoload.phpで、定数ヘルパーを自動ロードします
$autoload['helper'] = array('contstants');
ファイルapplication/conf/contants.php内:
global $myVAR;
$myVAR= 'http://'.$_SERVER["HTTP_Host"].'/';
ヘッダーファイルまたは関数内に配置します。
global $myVAR;
$myVAR= 'some value';
codeigniter
でglobal variable
を宣言するのに最適な場所は、constants.php
ディレクトリの/application/config
ファイルです
次のようにグローバル変数を定義できます
/**
* Custom definitions
*/
define('first_custom_variable', 'thisisit');
$yourglobalvariable = 'thisisimyglobalvariable';