Cakephpのグローバル定数
Cakephpでサイトの多言語化や多部門化などを行いcakephpシステムをダイナミックに構成し出すと様々な場所を動的化する必要が生じてくる。例えば、cakephpのapp内に構成されるtmpディレクトリなどが良い例かなと考えている。
実は、tmpディレクトリのパスを変更する方法として、app内で設定を変えることで行う方法を私は知らない。というよりもapp内でtmpのパスを変更することはできないと考えている。ひょっとしたら出来るのかもしれないのでやり方が分かったら再度エントリーしたい。
以下の記す方法はcakephpのコア部分を変更しtmpのパスを変更するやり方なので参考にする場合は熟慮の上参考にしてほしい。
変更するファイルのパスは以下のとおり
(Cakephp1.2系の場合)
cake\config\paths.php
(Cakephp2.3系の場合)
lib\Cake\bootstrap.php
変更する箇所は以下の部分
//define('TMP', APP.'tmp'.DS); define('TMP', 'C:'.DS.'cakephp-tmp'.DS.$_SERVER["SERVER_NAME"].DS.'tmp'.DS);
上のコードにより
C:\cakephp-tmp\test.com\tmp
というディレクトリにtmpのパスは変更される。サイトを多チャネル化(多言語化や多部門化のこと)している場合には、
C:\cakephp-tmp\test.com\tmp
C:\cakephp-tmp\test.net\tmp
C:\cakephp-tmp\test.org\tmp
となりテンポラリファイルの管理がし易くなる。
Cakephpのtmpには、ページキャッシュした際のデータ格納先になっている。運用面のことを考えるとtmpディレクトリのパスに注意しておきたいところ。