パス定数と変更方法や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);
関連記事
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
バリデーションエラーメッセージの取得
CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.
-
CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。 導入 ダウンロード・解凍し
-
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
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