前回の記事で作成したように、FuelPHPのアプリケーションリポジトリは自前のGitlabでホストしているものとします。
今回はEclipseを利用します。
Eclipseの最新(Indigo)をインストール
Eclipseの最新のJ2EEをダウンロードします。
AptanaStudio3でも構いません。
アップデートサイトでEgitをインストール
Help > Install New Software...
から
Indigoのアップデートサイト
http://download.eclipse.org/releases/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:\Users\memorycraft\git\bookstoreに保存されるように設定しました。
また、「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をローカルで実行できるようにするために、以下のリンクからXAMPPをインストールします。
http://www.apachefriends.org/jp/xampp-windows.html
インストールしたらApacheとMySQLを起動しておきます。
シンボリックリンクの作成
FuelPHPはpublicディレクトリ以外がDocumentRoot配下にあることはセキュリティ上好ましくないので、基本はpublicディレクトリのシンボリックリンクをDocumentRoot配下に配置するのですが、ショートカットはApacheからはシンボリックリンクだと認識されません。
そこで、Windowsでシンボリックリンクを作成できるツールを使用します。
コマンドプロンプトを管理者権限で実行します。
DocumentRootに移動し、mklinkコマンドでFuelPHPのpublicディレクトリのシンボリックリンクをbookstoreという名前で作成します。
C:\Windows\system32>cd c:\xampp\htdocs c:\xampp\htdocs>mklink /d bookstore c:\Users\memorycraft\git\bookstore\public bookstore <<===>> c:\Users\memorycraft\git\bookstore\public のシンボリック リン クが作成されました
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にxampp¥mysql¥binを設定しておくとMySQLの実行に便利です。
mysql -u root mysql> create database bookstore; mysql> GRANT ALL PRIVILEGES ON bookstore.* TO 'bs_user'@localhost IDENTIFIED BY 'bs_pass';
oilコマンド
環境変数PATHにxampp¥phpを設定しておきます。
次に、oilコマンドで、Scaffoldをつくって、migrateしてみます。
cd C:¥Users¥memorycraft¥git¥bookstore 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の開発環境が整いました。
今回は以上です。