パス定数と変更方法や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);
関連記事
-
ログインに追加の条件を付与する「scope」
ユーザ登録では、仮登録処理(status=1)から送付したメール内のリンクをクリックしてもらい本登録(status=0)を行ってもらう実装をしました。仮登録の状態ではログインできないように実装するには
-
ネストしたリストを出力「nestedList」
DBやJSONからデータを取得して、そのデータをもとにメニュー表示などネストしたリストを出力させたい場合に「nestedList」が便利です。 ヘルパーに渡すデータは連想配列である必要があります。(
-
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
-
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
-
FullCalendarを使用してカレンダーアプリケーション
カレンダーアプリケーションを作成するため、カレンダー表示できるプラグインを探索して出会ったFullcalendarを試してみました。シンプルに使用できる上に、オプションがかなり豊富です。ダウンロード
-
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
-
ユーザ登録(仮登録・メール・本登録)
以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU
-
Blowfishを使用してハッシュ化する
使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま
-
recursive設定によるfind()性能改善
CakePHPでは、モデルにアソシエーションを設定している場合、recursive(=>joinする階層)はデフォルトで0に設定されています。「recursiveゼロ」の意味するところとは、「1跨ぎま
-
Syslogログエンジン
2.4から「Syslog」ログクラスが追加され、簡単にSyslogを使用できるようになりました。 CakePHP側の設定はbootstrap.php内のCakeLogコンフィグのengineを'Sy
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