エス技研

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でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
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」に関する記事一覧
 
 

 - CakePHP 2.x 3.x

GoogleAdwords

GoogleAdwords

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

Message

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

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

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

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

  関連記事

CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント
CakePHP3で「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」などのエラーが出たときの確認するポイント

CakePHP3の開発で発生する「SQLSTATE[23000]: Integrity constraint violation」「SQLSTATE[42S22]: Column not found」のエラーには特有の原因もあるため、その説明と対処方法の解説。

CakePHPを学ぶ際にはオブジェクト指向を学ぼう

CakePHPはオブジェクト指向で書かれていますので、CakePHPを学ぶにはオブジェクト指向も学びましょう。

CakePHP3のメール送信の処理・テンプレート使用・添付ファイル送信も解説
CakePHP3のメール送信の処理・テンプレート使用・添付ファイル送信も解説

CakePHP3からメールを送信する方法解説。基本的な記述方法を基にして、テンプレートを使う方法、ファイルを添付する方法へと拡張しながら解説。

CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法

CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングをする方法を解説。インストール方法、読み込み方法。および、具体的なスクレイピングを実行するサンプルソースも。

CakePHP 2.3でOn Duplicate Key構文を実装

CakePHPで On Duplicate Key構文を Queryを利用して実装する方法をサンプルソース付きで解説します。

CakePHP3で値を入力直後にバリデーションする方法解説
CakePHP3で値を入力直後にバリデーションする方法解説

CakePHP3でバリデーションの実行を保存する時から入力情報を受け取るときに変更する処理の解説。CakePHP3ではnewEntity()の処理でバリデートするため1行追加で対応可能。

CakePHP3の検索プラグイン「friendsofcake/search」の設置方法・CakePHP3.6対応
CakePHP3の検索プラグイン「friendsofcake/search」の設置方法・CakePHP3.6対応

CakePHP3で検索を担うプラグイン「friendsofcake/search」の紹介。基本的な設置方法の紹介のほか、処理の記述方法のバリエーション、エラーの解説など。CakeDC/searchより導入は簡単!

CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る
CakePHP3で他のテーブルのマスタテーブルからセレクトボックス(プルダウンリスト)を作る

他のテーブルのマスタのレコードからプルダウンリストを作成し、選択できるようにするサンプルプログラムと解説。ORMの設定によりデータベースの値を取得し、配列を作成し optionsに与える。

CakePHP 2.3 Search Pluginで検索処理 その3入力エリア一つで複数の項目を同時に検索する方法

CakePHPの検索プラグイン Search Pluginの検索処理の中で入力エリア一つで複数の項目を同時に検索する方法を解説。

CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順

CakePHP3で「1対多」の連携を中間テーブルを利用した「多対多」の連携に変更するときの手順のまとめ。中間テーブルの設定やModelの変更などを間違いやすい箇所を指摘しながらの解説。