パス定数と変更方法や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);
関連記事
-
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
-
-
Formヘルパーのinputタグのdiv/labelなどの設定
Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま
-
-
アップロードファイルのバリデーションルール
CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの
-
-
Cookieログイン
今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr
-
-
radioボタンを実装
Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ
-
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
-
CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。 導入 ダウンロード・解凍し
-
-
Markdown Plugin
「Markdown CakePHP Plugin」は、MarkDown書式をレンダリングしてくれるビューヘルパーです。MarkDownについて勉強しているうちに出会ったので試し打ちです。 ダウンロー
-
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
-
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(


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