エス技研

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でComposerでインストールできないプラグイン、外部ライブラリを vendorに入れて手動で読み込む方法
CakePHP3でシェルを作成しコマンドラインから実行・CakePHP2との違い
CakePHP3で生の SQLの実行はConnectionManagerを使う
CakePHP3でデータを保存する save()で発生するエラーを確認する方法を解説
CakePHP3のデバッグキット(DebugKit)を強制的に有効、無効に変更する方法
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
VirtualBoxにCakePHP3を設置。必要なCentOS、Apache、PHP、MySQL、Composerをインストールし設定する
CakePHP3にWYSIWYGエディタのCKEditor4を設置、カスタマイズ方法を解説
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3にデイトピッカー jQuery UI DatePickerを実装する手順の解説
 
その他の「CakePHP3」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定

CakePHP3の Authコンポーネントや CakeDC/Usersプラグインなどを利用したユーザ管理・認証システムにおいて、ログインしていなくても見ることができるページの設定方法を解説。

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

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

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法
CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法

CakePHP3で現在処理しているコントローラー名、アクション名を取得する方法を解説。複数の方法があるが、getParam()メソッドを使う方法が汎用性があって便利かも。

CakePHP3ログファイルの出力方法・$this->log()の解説
CakePHP3ログファイルの出力方法・$this->log()の解説

コントロール、モデルの変数の中身を見るときはログに出力する方法が有効です。$this->log()を利用すると変数だけじゃなく、連想配列、オブジェクトも簡単にログ出力ができます。

CakePHP 2.3でファイルのアップロード処理を作る

CakePHPでプラグインを使わないファイルアップロード処理を解説します。簡単です。DBにファイルを格納する方法も。

CakePHP 2.3 デバッグキット(DebugKit)超初心者向けフォロー講座

CakePHP初心者に向けてデバッグキット(DebugKit)のインストール方法、はまりポイントを解説。

CakePHP 2.x系 Viewでのコメントの記述方法など

CakePHPにおいて View、ctpファイルでコメントを記述する方法を解説。

CakePHP 2.3でファイルをアップロード・その2 ファイル名を乱数で設定

CakePHPのアップロードするファイル名を乱数で変更しセキュリティを高める方法を解説。

CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法
CakePHPで favicon.icoやapple-touch-icon-144-precomposed.pngが could not be foundのエラーが出るときの対処方法

CakePHPで「CakeDC/Users」などルーティングを行うプラグインを利用するときに、favicon.icoやapple-touch-icon-144-precomposed.pngがNotFoundエラーになることがある。その対処方法の解説。

CakePHP3でcomposerを利用してライブラリ・プラグインをインストールする方法

CakePHP3でcomposerを使ってパッケージ(ライブラリ、プラグイン)をインストールする方法の解説。PHPを使うのはCakePHP3が初めてというような方への使い方から解説。