表題通り。Codeigniter3では、「get_instance()->load->vars($key, $data);」を利用することで、変数をどこからでも設定でき利用することができた。
これをCodeigniter4でも利用したい。というわけで色々調べる。get_instanceは利用できないため、Config/Appに変数を設定してそれを利用しようと思う。
参考。
Codeigniter3で使っていたアレをCodeigniter4で使う - Qiita
感謝。
Config/Appに次を追加。
public static $vars = [];
次にヘルパーを作る。セーブとロードの機能を追加する。
helper/load_helper.php
function set_vars($key, $data = null){
if(is_int($key)) return false;
if(is_string($key)){
Config\App::$vars[$key] = $data;
}elseif(is_array($key)){
foreach($key as $k => $v) set_vars($k, $v);
}
}
function get_var($key){
return Config\App::$vars[$key] ?? false;
}
set_varsで変数を追加し、get_varで呼び出す。keyに変数名、dataに変数だが、keyに配列が入るとそちらを優先して変数に組み込む。
これでどこからでも呼び出せる変数をつくることができた。
他に何か良い方法があったら教えてください。