CakePHP のプロジェクトを Eclipse に関連付ける

Posted by muchag | CakePHP,Eclipse |
初回投稿:2011-05-13 (金) 12:58:16 | 最終更新:2011-05-13 (金) 22:02:44

【環境】
[CakePHP] 1.3.8
[Eclipse] Pleiades All in One 3.6.2 PHP
ディレクトリ構成

左図は、CakePHP 1.3.8.zip を DL してきて展開し
フォルダ名を「CakePHP」とリネームした状態を
エクスプローラで見ている。

  • cake フォルダは、CakePHP の根幹ファイル群で
    基本的に我々が触ることはない
  • app(webroot を除く) フォルダは、これから作成するアプリ格納場所で
    基本的にここにファイルを作成していく
  • webroot フォルダは、公開用ディレクトリ

用途別に大きく分けると3つのディレクトリが存在する。
 

Eclipse プロジェクトの作成

セキュリティ面を考慮し、後々は webroot のみ公開エリアに配置し
残りは非公開エリアに配置するので
Eclipse プロジェクトも3つ用意すると便利。

というわけで
新規 PHP プロジェクト&ファイル および 既存 PHP サイトの読み込み
のようにして

  • cake – 必ず cake という名称にすること
  • myapp_app – 名称任意
  • myapp_webroot – 名称任意

という3つのプロジェクトを作成する。
 

CakePHP ファイル群の配置
cake プロジェクト

新規 PHP プロジェクト&ファイル および 既存 PHP サイトの読み込み
既存 PHP サイトの読み込み のようにして
CakePHP を展開したディレクトリから cake フォルダを読み込む。

 

myapp_app プロジェクト

cake プロジェクトと同様であるが、今回は読み込み指定先が
app フォルダ。
そして、app フォルダ1階層下の webroot フォルダを除外する。

  

myapp_webroot プロジェクト

先ほど除外した webroot フォルダを指定。
 

プロジェクトの関連付け
myapp_webroot プロジェクト\index.php

にて、ディレクトリ構成を再定義する。
 

Eclipse ワークスペース = CakePHP プロジェクトルート
J:\Eclipse_PDT\cakeprojects\myapp
  1. if (!defined('ROOT')) {
  2.     //define('ROOT', dirname(dirname(dirname(__FILE__))));
  3.     define('ROOT', 'J:' . DS . 'Eclipse_PDT' . DS . 'cakeprojects' . DS . 'myapp');
  4. }

39行目をコメントアウトし、上記環境に合うように再定義。
 

Eclipse myapp_app プロジェクト = CakePHP アプリディレクトリ
J:\Eclipse_PDT\cakeprojects\myapp\myapp_app
  1. if (!defined('APP_DIR')) {
  2.     //define('APP_DIR', basename(dirname(dirname(__FILE__))));
  3.     define('APP_DIR', 'benricho_app');
  4. }

(前の操作により、行番号はデフォルトからずれている)
46行目をコメントアウトし、アプリディレクトリを定義するのだが
先ほど CakePHP プロジェクトルートディレクトリを定義しているので
そこからの相対パスで書くことも可。
 

Eclipse cake プロジェクト = CakePHP 根幹ディレクトリ
J:\Eclipse_PDT\cakeprojects\myapp\cake
  1. if (!defined('CAKE_CORE_INCLUDE_PATH')) {
  2.     define('CAKE_CORE_INCLUDE_PATH', ROOT);
  3. }

(前の操作により、行番号はデフォルトからずれている)
ここの設定は、cake ディレクトリの親ディレクトリを指定するので
私の環境では、変更なし、となる。
 

Eclipse myapp_webroot プロジェクト = CakePHP 公開ディレクトリ
J:\Eclipse_PDT\cakeprojects\myapp\myapp_webroot
  1. if (!defined('WEBROOT_DIR')) {
  2.     define('WEBROOT_DIR', basename(dirname(__FILE__)));
  3. }

(前の操作により、行番号はデフォルトからずれている)

  1. basename(dirname(__FILE__));

この命令は、index.php ファイル自体からディレクトリ名を取得しているので
変更の必要はない。
 

Web サーバの設定

インストール
で、実践したように、VirtualHost の設定については
Eclipse と関連付ける前は

J:\Eclipse_PDT\cakeprojects\myapp

に設定すればよかったが、Eclipse 関連付け後は

J:\Eclipse_PDT\cakeprojects\myapp\myapp_webroot

こちらに設定しないといけないみたい。

よって

  1. # Be sure to only have this line once in your configuration
  2. NameVirtualHost 127.0.0.1:8080
  3. # This is the configuration for your project
  4. Listen 127.0.0.1:8080
  5. <VirtualHost 127.0.0.1:8080>
  6.     DocumentRoot "J:\Eclipse_PDT\cakeprojects\myapp\myapp_webroot"
  7.     DirectoryIndex index.php
  8.     <Directory "J:\Eclipse_PDT\cakeprojects\myapp\myapp_webroot">
  9.         AllowOverride All
  10.         Deny from All
  11.         Allow from 127.0.0.1
  12.     </Directory>
  13. </VirtualHost>

とすることで、以下のようにうまく表示できた。

CakePHP プロジェクトルートの index.php

webroot の index.php
との違いが分かり次第、記事を修正。
 

index.php の表示

http://localhost:8080/ にアクセス。
いぇーい!
無事に表示できた♪

 
参考元サイト:Awaresoft CakePHP + eclipse開発環境のセットアップ

Posted by muchag | CakePHP,Eclipse |
初回投稿:2011-05-13 (金) 12:58:16 | 最終更新:2011-05-13 (金) 22:02:44

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment