パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
webroot/index.phpで設定する基本パス
- ROOT -- アプリケーションのディレクトリパス
- APP_DIR -- アプリケーションのディレクトリ名
- CAKE_CORE_INCLUDE_PATH -- Cakeライブラリへのパス
- WEBROOT_DIR -- webrootディレクトリ名
- WWW_ROOT -- webrootディレクトリ絶対パス
- DS -- PHPのDIRECTORY_SEPARATORの短縮系。Windowsの場合は\ (バックスラッシュ)、 Linuxの場合は/ (フォーワードスラッシュ)
ここで、「CAKE_CORE_INCLUDE_PATH」を変更することで、例えば、あるディレクトリに異なるバージョンのライブラリを配置しておいてアプリケーション側から読み込むライブラリパスを切り替えることが可能になります。また、1つのライブラリを複数のアプリケーションから使用することも可能です。
関連:CakePHP 2.x インストール
上記を元に設定されるパス
define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS); // CAKE_CORE_INCLUDE_PATH + ディレクトリセパレータ
define('CAKE', CORE_PATH . 'Cake' . DS); // CORE_PATH + 'Cake' + ディレクトリセパレータ
define('APP', ROOT . DS . APP_DIR . DS); // ROOT + APP_DIR + ディレクトリセパレータ
define('VENDORS', ROOT . DS . 'vendors' . DS); // Vendorディレクトリ
define('APPLIBS', APP . 'Lib' . DS);
define('TESTS', APP . 'Test' . DS); // Testディレクトリ
define('TMP', APP . 'tmp' . DS); // キャッシュやCakeログのベースディレクトリ
define('CACHE', TMP . 'cache' . DS); // キャッシュが保存されるディレクトリ
define('LOGS', TMP . 'logs' . DS); // Cakeログが保存されるディレクトリ
キャッシュやCakeログファイルの保存先を変更する場合は、webroot/index.php内で以下のように変更ができます。
// webroot/index.phpに追加
if (!defined('TMP')) {
define( 'TMP', "TMPディレクトリのパス");
}
// CACHE・LOGSもそれぞれ個別に設定も可能
関連:ログローテーション
CSS/JS/画像ファイルパス
define('CSS', WWW_ROOT . 'css' . DS); // 2.4から非推奨
define('CSS_URL', 'css/'); // 2.4から非推奨。App.cssBaseUrlを使用
define('IMAGES', WWW_ROOT . 'img' . DS); // 2.4から非推奨
define('IMAGES_URL', 'img/'); // 2.4から非推奨。App.imageBaseUrlを使用
define('JS', WWW_ROOT . 'js' . DS); // 2.4から非推奨
define('JS_URL', 'js/'); // 2.4から非推奨。App.jsBaseUrlを使用
App.cssBaseUrl、App.jsBaseUrlがそれぞれHtml->css、Html->scriptで使用されます。
関連:Js/Cssファイルの読み込みや出力する方法
URLを取得する
ベースURLとなるFULL_BASE_URLが使用可能です。
FULL_BASE_URL // http://kwski.net
コントロラー/アクションのURLは、Router::urlを使用して取得することができます。第2引数をfalseに設定するとFULL_BASE_URLが除外されたかたちで取得されます。
Router::url( '/', true); Router::url( '/controller/action/', true);
関連記事
-
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
-
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
-
-
recursive設定によるfind()性能改善
CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま
-
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
-
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
-
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
-
-
FormヘルパーのMagicOption (マジックオプション)
Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある
-
-
日付・時間のバリデーション
日付や時刻に関するバリデーションは以下のルールがビルトインされています。 date 日付 time 時刻 datetime 日時 (m:「月」を数字表記 / M:「月」を英語表記)


Comment
パス定数と変更方法やURLの取得 https://t.co/v0tYlrYmxG
[…] 他 Helper->css()とかのベースURLの変更は下記参考。 CakePHP 2.x – パス定数と変更方法やURLの取得 […]
CakePHP 2.x | パス定数と変更方法やURLの取得 http://t.co/5sDAv0u0En #web制作 #集客
#tech #テクノロジー
CakePHP 2.x | パス定数と変更方法やURLの取得:
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した.. http://t.co/52Vr8QvGif
【はてブ新着IT】 CakePHP 2.x | パス定数と変更方法やURLの取得 http://t.co/qqqdppUFrb
php: CakePHP 2.x | パス定数と変更方法やURLの取得 http://t.co/pkrlK9yeuK
CakePHP 2.x | パス定数と変更方法やURLの取得 http://t.co/idppG5LM0t
CakePHP 2.x | パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性を... http://t.co/WSK0ni55gt