share facebook facebook twitter menu hatena pocket slack

2012.03.13 TUE

FuelPHPってなんじゃ?(Eclipseとxamppでローカル開発編)

三浦 悟

WRITTEN BY 三浦 悟

今回は、WindowsでFuelPHPを開発する方法をまとめてみました。
FuelPHPってなんじゃ?(Capistranoでデプロイ編)の記事で作成したように、
FuelPHPのアプリケーションリポジトリは自前のGitlabでホストしているものとします。

今回はEclipseを利用します。

○Eclipseの最新(Indigo)をインストール

Eclipseの最新のJ2EEをダウンロードします。
(AptanaStudio3でも構いません)

○アップデートサイトでEgitをインストール

Help -> Install New Software…からIndigoのアップデートサイト
Collaboration -> Eclipse Egit を選択してインストールします。

○SSHの公開鍵を作成

Preference -> General -> Network Connections -> SSH2のGeneral のタブでSSHのディレクトリを
確認しておきます。
次に、「Key Management」タブで「Generate RSA Key..」ボタンをクリックして、出力された内容を
コピーしておきます。
また、「Save Private Key…」ボタンを押して、SSHのディレクトリに保存します。

○公開鍵をGitlabに登録

GitlabのMy ProfileのKeysで、先程コピーした内容に任意のタイトルを付けて保存します。
Githubでも同様です。

○Gitのユーザー設定

Preference -> Team -> Git -> ConfigurationのUserSettingタブで、「New Entry…」ボタンをクリックし、
以下の内容を入力します。

  • user.name:gitlabで登録したユーザー名
  • user.email:gitlabで登録したメールアドレス

○Gitのクローン

EclipseのProject Explorerで右クリック、Import -> Import… -> Git -> Projects From Git を選択します。

そして、リポジトリソースでURIを選択します。

URIに該当するプロジェクトのgit@IPアドレス:Git名を入力します。
そうすると、Hostやリポジトリパスやユーザー名に自動的に各項目が入力されますので、
「Next」ボタンをクリックします。

そして、ブランチを選択します。
ここでは、masterしかないのでそのまま「Next」ボタンをクリックします。

自動的にGitのデフォルトディレクトリにダウロードするように設定されており、適宜変更しても構いません。
ここではC:Usersmemorycraftgitbookstoreに保存されるように設定しました。
また、「Clone Submodules」にチェックを入れておきます。

「Next」ボタンをクリックすると、プロジェクトに関しての画面になるので、「Import existing project」を
選択します。
もしアプリケーションリポジトリがエクリプスプロジェクトでない場合は、「Import as general project」を
選択して、後でPHPプロジェクトに変更するか、「Use the New Project wizard」を選択します。

また、Mac版Eclipseではプロジェクトウィザードを選択すると正常終了しなかったので、
予めアプリケーションリポジトリに.projectをコミットしておくとスムースに進むと思います。

「Next」ボタンを押すと、リポジトリに含まれているEclipseプロジェクトが表示されるので、
そのまま「Finish」ボタンをクリックして、インポートを完了します。

そうすると、図のようにFuelPHPアプリがプロジェクトとして登録されているのが確認できました。

○XAMPPのインストール

FuelPHPをローカルで実行できるようにするために、apache friends – xampp for windowsのリンクから
XAMPPをインストールします。

インストールが完了したら、ApacheとMySQLを起動しておきます。

○シンボリックリンクの作成

FuelPHPはpublicディレクトリ以外がDocumentRoot配下にあることはセキュリティ上好ましくないので、
基本はpublicディレクトリのシンボリックリンクをDocumentRoot配下に配置するのですが、
ショートカットはApacheからはシンボリックリンクだと認識されません。
そこで、Windowsでシンボリックリンクを作成できるツールを使用します。

コマンドプロンプトを管理者権限で実行します。

DocumentRootに移動し、mklinkコマンドでFuelPHPのpublicディレクトリのシンボリックリンクを
bookstoreという名前で作成します。

C:Windowssystem32>cd c:xampphtdocs
c:xampphtdocs>mklink /d bookstore c:Usersmemorycraftgitbookstorepublic
bookstore > c:Usersmemorycraftgitbookstorepublic のシンボリック リン
クが作成されました

そうすると、GUIでは以下のようにショートカットのようなアイコンでbookstoreという項目が
作成されていることが確認できます。

○FuelのローカルDB設定

DB設定ですが、デフォルトではdevelopmentモードで動作します。
例として、developmentモードのDB設定(fuel/app/config/development/db.php)で、
localhostのDBを設定している場合はそのままdevelopmentモードでローカル実行すれば問題ありません。

また、開発サーバーでアプリケーションとは別のホストのDBを参照していて、ローカル実行ではXAMPPのMySQLを
使用したい、もしくは、開発サーバーではlocalhostのDBを参照していて、ローカル実行ではXAMPPのDBを使わずに、
開発サーバーのMySQLを利用したい場合等は、developmentモードとは別にローカルホスト用の環境設定をする
必要があります。
その場合は、以下の手順で設定を行います。

  • development/db.phpとは別にlocalhost/db.phpを用意する
  • Windowsの環境設定でFUEL_ENVという名前でlocalhostを登録する
  • XAMPPのhttpd.confでSetEnv FUEL_ENV localhostと設定する

ここでは、developmentモードがlocalhostのDBなので、XAMPPのMySQLを使用することにします。

○XAMPPのMySQLでデータベース作成

XAMPPのMySQLにデータベースとユーザーを作成します。
環境変数PATHにxamppmysqlbinを設定しておくとMySQLの実行に便利です。

mysql -u root
mysql> create database bookstore;
mysql> GRANT ALL PRIVILEGES ON bookstore.* TO 'bs_user'@localhost IDENTIFIED BY 'bs_pass';

○oilコマンド

環境変数PATHにxamppphpを設定しておきます。
次に、oilコマンドで、Scaffoldをつくって、migrateしてみます。

cd C:Usersmemorycraftgitbookstore
php oil generate scaffold book title:varchar[255] auther_id:int publisher_id:int
php oil refine migrate

○ブラウザで確認

上記のように、無事動作しました。

○リモートリポジトリにcommit, push

今まで変更した分をローカルのリポジトリにコミットします。
まず、プロジェクト自体を選択して、右クリック -> Team -> Add to Index

そうすると、変更ファイルがコミット候補になります。
次に、プロジェクトを選択して右クリック -> Team -> Commit …

コミットダイアログが表示されるので、コメントを記入して、「Commit」ボタンをクリックします。
そうするとローカルのリポジトリに変更が反映されます。

次に、リモートリポジトリに反映するには、プロジェクトを選択して、右クリック -> Team -> Push to Upstreamを
選択します。

そうすると、Gitlabのリポジトリツリーにも、変更が反映されました。

以上で、WindowsでのFuelPHPの開発環境が整いました。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。