パス定数と変更方法や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);
関連記事
-
バリデーションエラーメッセージの取得
CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
-
CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。 導入 ダウンロード・解凍し
-
DebugKitを導入
定番のブログチュートリアルをこなして、定番のDebugKitを導入してみました。 2.3からはCakePHPインストール直後に以下のように導入を推奨するような警告メッセージが表示されるようになりまし
-
数値系バリデーション
CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること
-
テーブルからランダムにデータを取り出す(find)
CakePHPでテーブルから特定件数のレコードをランダムに取得するには以下のように指定するとできます。 $this->data = $this->Bulkdata->find( 'all',
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
checkボックスを実装
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA
-
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
-
日付・時間のバリデーション
日付や時刻に関するバリデーションは以下のルールがビルトインされています。 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