エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数

      2018/07/28

DocumentRoot、tmp、webroot、logsなどのフォルダへのパスの定数

 
CakePHP3でファイルのアップロードや csvファイルの生成、エクセルファイルの生成などファイルを扱う処理を構築する際、そのファイルを保存する時などにフォルダを指定する必要があります。
 
ですが、フォルダをどうやって指定すればいいのか、その情報を見つけることができずに困っていましたが、それを発見しましたのでご紹介します。
 
 
ちなみに、CakePHP3でエクセルファイルを生成する方法や、ファイルをアップロードする方法は下記に記事を書いていますので、あわせて参考にしてみてください。
 CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法
 CakePHP3でファイルのアップロード処理を自作・解説付き・その1
 CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
 
また、ここで解説している定数は、サーバ上のパスが設定されています。
対して、プログラムが実行されているドメインや URLを取得したい場合は、下記に記事を書きましたので、こちらを参考にしてください。
 CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
 
 

CakePHP3の webroot、tmp、logs、config、cache、srcなどのパスの定数

 
CakePHP3でよく使う webroot、tmp、logs、config、cache、srcなどのパスの定数は、下記の「paths.php」ファイルに書いてあります。
 
/config/paths.php
 
 
具体的に「paths.php」ファイルに指定されている定数は以下の通りです。
 

ROOT

CakePHP3のアプリケーションを構築しているルートフォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\
 

APP_DIR

CakePHP3のアプリケーションの作成するソースファイルが入っているフォルダの名称です。この定数はパスではなくフォルダ名です。
具体的には、下記の値になります。
 src
 

APP

CakePHP3のアプリケーションの作成するソースファイルが入っているフォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/src/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\src\
 

CONFIG

設定情報が入っている「config」フォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/config/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\config\
 

WWW_ROOT

imgフォルダや CSSフォルダなどがある「webroot」フォルダのパスです。
画像ファイルのアップロード処理などを作る場合によく使うことになる定数ですね。
「webroot」のフォルダのパスになります。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/webroot/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\webroot\
 

TESTS

テストスクリプトが生成される「tests」フォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/tests/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\tests\
 

TMP

一時ファイルを保存するフォルダ「tmp」フォルダのパスです。
エクセルファイルのダウンロード処理や、公開しないファイルのアップロード先などに指定するときに使うことになるパスですね。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/tmp/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\tmp\
 

LOGS

ログファイルが保存される「logs」フォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/logs/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\logs\
 

CACHE

キャッシュファイルが保存される「cache」フォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/tmp/cache/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\tmp\cache\
 

CAKE_CORE_INCLUDE_PATH

CakePHP3のコアファイル「cakephp」フォルダへの絶対パスです。
下記の「CORE_PATH」との違いは、「CAKE_CORE_INCLUDE_PATH」には DS(ディレクトリセパレーター)がなく、「CORE_PATH」には DSがあります。
また、コンポーザーを使ってインストールする際はこの値が使われます。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/vendor/cakephp/cakephp
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\vendor\cakephp\cakephp
 

CORE_PATH

CakePHP3のコアファイル「cakephp」フォルダへのパスです。
「CAKE_CORE_INCLUDE_PATH」に DS(ディレクトリセパレーター)を追加したものになります。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/vendor/cakephp/cakephp/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\vendor\cakephp\cakephp\
 

CAKE

「CORE_PATH」の中の「src」フォルダのパスです。
具体的には、下記のパスになります。
(CakePHP3のフォルダ)/vendor/cakephp/cakephp/src/
 例:Windowsの XAMPPの場合:C:\xampp\htdocs\vendor\cakephp\cakephp\src\
 
 


 

realpath()関数

 
CakePHP3には、「realpath()」関数というフォルダのパスを取得するすることができる関数があります。
 
この「realpath()」関数は、先に説明した各フォルダを示す定数と合わせて使うことで、フォルダのパスを取得するときに威力を発揮してくれます。
 
 
例えば、定数「CAKE」のパスに対して、相対パス「../../cakephp」を追加して下記の様に記述すると、
realpath(CAKE . "../../cakephp/")
「(CakePHP3のフォルダ)/vendor/cakephp/cakephp」という「CAKE」からの相対パスになるフォルダの絶対パスを返してくれる、という関数です。
 
 
なので、定数として指定してあるフォルダの場所から相対パスを組み合わせて、その上で「realpath()」関数を使う方法で、おおよそ必要となるフォルダの場所は簡単に取得ができるようになります。
 
 
また、「realpath()」関数を通すと、パスの最後の DS(ディレクトリセパレーター)がなくなります。
 
そのため、本来の使い方ではないと思いますが、定数の最後に DS(ディレクトリセパレーター)があるのかないのか分からない場合は、とりあえず「realpath()」関数を通すと DSがなくなりますので、最後の DSを外す関数として使うのもありなんじゃないでしょうか。
 
 

CakePHP3の関連記事

CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3のOGPはHTMLヘルパーの$this->Html->meta()を使って設定
CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する
CakePHP3で環境変数を設定して本番環境と開発環境を分けて処理をする場合
CakePHP3でCookieを保存、呼び出し、削除の操作・CakePHP3.7対応
CakePHP3でアソシエーション先のカラムでデータをソートして取得したい
CakePHP3のdatetime型カラムの日時の扱い。秒まで正しく表示する方法
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法
CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法

CakePHP3でtitleタグ、h1タグのテキストをデフォルトから変更する方法を解説。テンプレートファイルに「$this->assign()」でテキストを指定して「/Layout/defult.ctp」で受け取る。

cakephp3 カスタムバリデーションを簡易的に実装する方法
cakephp3 カスタムバリデーションを簡易的に実装する方法

CakePHP3の独自のバリデーションをテーブルクラス内に簡単に記述する方法を解説。他のテーブルクラスでは使えないが、記述する量は少なく実装できるため、他で使わない処理を書くのには便利。

CakePHP3にデザインテンプレートBootstrapを導入する方法・friendsofcake/bootstrap-ui使用
CakePHP3にデザインテンプレートBootstrapを導入する方法・friendsofcake/bootstrap-ui使用

CakePHP3にプラグイン「friendsofcake/bootstrap-ui」、デザインテンプレート「Bootstrap」を設置する手順を解説。Bootstrapの簡単な使い方やデフォルトのデザインとの混在方法なども解説。

CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説

CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。

CakePHP 2.3で PDFを作成する方法を調査「mpdf」「TCPDF」「FPDF」

CakePHPで PDFを編集、出力するには「mpdf」「TCPDF」「FPDF」といったプラグインがあり、使い勝手を比較検討しました。TCPDFが一番良さそうでした。

CakePHP3で環境変数を設定して本番環境と開発環境を分けて処理をする場合
CakePHP3で環境変数を設定して本番環境と開発環境を分けて処理をする場合

CakePHP3で開発環境と本番環境とで違う設定ファイルを読み込ませて環境ごとに定数を切り替える方法を解説。Apacheのhttpd.confに環境変数を設定し、それを読み込み判別する。

CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得

URLやドメイン、フォルダへのパスの取得は、ビューではUrlHelperを使い、コントローラーではRouterクラスを使います。第2引数の指定でURLを取得することも可能。

URL短縮サービス「TTTオンライン(https://ttt.onl)」公開
URL短縮サービス「TTTオンライン(https://ttt.onl)」公開

URL短縮サービス「TTTオンライン(https://ttt.onl)」を公開。メールやSNSでは使いにくい長いURLを短いURLに変換するサービス。QRコードも。Google URL Shortenerが2019年3月にサービス終了。

CakePHP 2.3 Search Pluginで検索処理 その2表示件数を動的に変える方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で動的に表示件数を変える方法です。

CakePHP3でPHPExcelを使ってエクセルファイルを生成、出力する方法

CakePHP3でPHPExcelを利用してエクセルを編集、出力するサンプルソース+解説。PHPExcelのインストール方法の解説からファイル保存とダウンロードの方法なども解説。