Codeigniter4 で VIEWPATH を取得したい
Codeigniter3では定数になっていたビューのパスを取得する VIEWPATH
。
これがCodeigniter4には存在しない。
参考: Global Constants
https://codeigniter4.github.io/userguide/general/common_functions.html#global-constants
そのため、動的にビューを利用していて存在チェックが入る場合に困るケースがある。
1. APPPATHから取得する
特に特殊な使い方をしていない場合は以下で問題ない。
$viewpath = APPPATH . 'Views';
2. Config\Path から取得する
app/Config/Paths.php
を書き換える可能性がある場合はこちらを利用
// どちらも同じ
$viewpath = config('Paths')->viewDirectory;
$viewpath = (new \Config\Paths())->viewDirectory;
/*
\Config\Paths には以下のようなプロパティが定義されている。
なお、viewDirectory, testsDirectory 以外はGlobal Constantsに存在する。
object(Config\Paths)#84 (5) {
["systemDirectory"]=>
string(76) "/path/to/root/app/Config/Paths/../../../vendor/codeigniter4/framework/system"
["appDirectory"]=>
string(36) "/path/to/root/app/Config/Paths/../.."
["writableDirectory"]=>
string(48) "/path/to/root/app/Config/Paths/../../../writable"
["testsDirectory"]=>
string(44) "/path/to/root/app/Config/Paths/../../../tests"
["viewDirectory"]=>
string(41) "/path/to/root/app/Config/Paths/../../Views"
}
*/
3. 自分で VIEWPATH
を定義する
上記を用いて app/Config/App.php
あたりのコンストラクタで定義してしまう。
利用頻度が高い場合には使えるかも。
public function __construct() {
parent::__construct();
defined('VIEWPATH') || define('VIEWPATH', config('Paths')->viewDirectory);
}
なお、viewDirectoryが変動しない場合は app/Config/Constants.php
に書いてしまっても良い。
defined('VIEWPATH') || define('VIEWPATH', APPPATH . 'Views');
以上、
恐らく設定のロード順の関係でハブられてしまったのだと推測されるが、個人的には入れてほしかった機能ではある。
Author And Source
この問題について(Codeigniter4 で VIEWPATH を取得したい), 我々は、より多くの情報をここで見つけました https://qiita.com/bananacoffee/items/c35b4dcf62def332a852著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .