昨日の@nojimageさんのCakePHPで使えるテンプレートエンジンまとめ (CakePHP Advent Calendar 2011 17日目)に続いて、CakePHP Advent Calendar 2011の18日目の記事です。TALよさそうですよね!
こんにちは、@junichi_11です。はじめてのAdvent Calendar参加です。
PlanlessのままCakePHP Advent Calendarに参加してしまったので、ネタがありません。
NetBeansについては過去に書いているのですが、NetBeansで動く環境をつくってBlog Tutrialを実行してみたいと思います。
IDEです。ここからダウンロードすることができます。こういうのって人によって使いやすいものが違うでしょうから、自分に合うものを使えばいいと思います。NetBeansなんて使わなくて、他のIDEやエディタを使う人の方が多いかもしれません(;´Д`)
そんな方には、@EGMCさんのAdvent Calendar 11日目の記事を参考にしてください。
メンテナンスはされていないかもしれませんが、pluginとしてはCake Pâtissierというのを作られている人もいます。
そういう人には、@yuhei_kagayaさんのcake.vimを!使い方はここ([vim][cakephp]cake.vim使い方まとめ)を参照
さて、話をNetBeansに戻します。
ZendFrameworkやSymfonyはNetBeansで公式にサポートされていますが(そして7.1からはSmartyが公式にサポートされたのかな???)、CakePHPは公式にはサポートされていません。
しかし、githubにcakephp-netbeansなるpluginがあります。少し前にこれをforkして少し機能を付け加えました。中身は多分汚いです。
CakePHP1.xと2.0で使えるようにしましたが、CakePHP2のプラグインとして別のものにしたほうが良かったのかもしれません(^_^;)
このプラグンを使うと何ができるかというと、cakephpプロジェクトの作成、コマンドの実行などです。このプラグインはツンツン系の仕様になっています。
Clear Cacheを実行しても、「実行したって教えてあげないんだからねっ」といった感じに何も反応がありません。
Bake…の部分を実行しても「そんなの押しても、何も実行されないんだからねっ」といった感じです。
cakephp-netbeansの主な機能
参考記事:CakePHP + NetBeans cakephp-netbeans plugin
今回はNetBeansを使って3つのパターン
- アーカイブのダウンロード
- Git プラグインからclone
- ターミナルから直接git clone
でCake Projectを作成して、その後にBlog Tutrialを実行してみたいと思います。
実行環境
- Windows 7
- XAMPP 1.7.?
- NetBeans 7.0.1
- CakePHP 2.0.4
準備
- XAMPPのインストール
- MySQLの設定(文字コード)
- JDKのインストール
- NetBeansのインストール
- cakephp-netbeansのインストール(cakephp用のプラグイン)
- NetBeansの設定
Xamppのインストール
インストールの説明は省略します。ここではC:直下にインストールしたものとします。
文字コードの設定をしておきます。
C:\xampp\mysql\bin\myに以下を追記します。
JDKのインストール
ダウンロード:jdk-7u2
NetBeansのインストール
ダウンロード:NetBeans IDE
今回は7.0.1をインストールします。12月14日に7.1がリリースされる予定(現在7.1はRC2です)だったのですが、まだリリースされていないようです。
cakephp-netbeans puginのインストール
ダウンロード:cakephp-netbeans (Plugin Portal)
インストール:アーカイブをDL & 解凍後NetBeansのプラグインの追加([ツール] > [プラグイン])でnbmフォルダ内のorg-cakephp-netbeans.nbmファイルを指定します。警告メッセージが出ますが、構わずインストールします。
NetBeansの設定
PHPのパスを追加
[ツール] > [オプション] > [PHP | 一般]
キーマップの設定
[ツール] > [オプション] > [キーマップ]
ここでは次のように指定しました。登録したい部分をクリックして登録したいショートカットのキーをそのまま押せば大丈夫です。検索のところにphpと入力すればすぐに見つかると思います。
- コマンドの実行: Alt + R
- アクションまたはビューに移動: Alt + A
ここからCakePHPをインストールして使います。
以下ににダラダラと書いていますが、動画にしました。
ControllerからView側に切り替わっているのはAlt + Aを実行しています。
CakePHPのインストール(プロジェクトの作成)
アーカイブからインストール
これが一番気軽にCakePHPをインストールして使えると思います。
通常は次のような手順をとります。
- githubにアクセス
- 使用したいバージョンをダウンロード
- 任意の場所に解凍
- netbeans projectを作成
プラグインを使うといきなり4から始めることができます。(ただしインターネットが使える環境が必要です)プロジェクトを作成時にバージョンを選ぶだけで終わります。
[ファイル]
> [新規プロジェクト]
> [プロジェクトを選択](カテゴリ:PHP、プロジェクト:PHPアプリケーション)
> [名前と場所] プロジェクト名:cake2.0.4 ソースフォルダ:C:\xampp\htdocs\cake2.0.4
>[実行構成](あとで変更できるのでそのままでも大丈夫です)
>[PHPフレームワーク]Cake PHP Web Frameworkにチェック
>使いたいバージョンを選んで完了
参考:NetBeans CakePHP2.0を動かす環境を簡単につくる
Git プラグインを使ってインストール
[チーム] > [Git] > [Clone]
url: git://github.com/cakephp/cakephp.git
masterブランチの選択
master以外だとエラーになるような気がします。。。
プロジェクトディレクトリとクローン名を指定します
あとは通常のプロジェクトの作成です。
7.0.1だとmasterブランチを選択しないと何故かエラーになってしまいます。下記に書くターミナルからのインストールの方が問題なくインストールできると思います。
ターミナルからgitを使ってインストール
Windows環境でNetBeansのターミナルを使うには、Cygwinをインストールする必要があります。(Windows環境以外の方はCygwinのインストールはスルーしてください。)
インストールはsetup.exeを起動して、検索ウィンドウでgitと入力して必要なものにチェックを入れて完了です。それからsshも必要なら入れておくといいです。
参考
Cygwinのインストールが完了したら、
[ウィンドウ] > [出力] > [ターミナル]
でターミナルウィンドウを表示することができます。
あとは任意のディレクトリに移動して、
git clone git://github.com/cakephp/cakephp.git
を実行すればcakephpフォルダができるので、そのフォルダをプロジェクトの作成時に選べばOKです。
Blog Tutrialの実行
参考:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/blog.html
データベースの作成
MySQLを起動しておきます。
リモート環境なら、WorkBenchから操作したほうがいいと思います。(参考: http://php-tips.com/server/2011/05/mysql-workbench-with-ssh-connection)
ここではこういう機能もありますよということで、ローカルにNetBeansから作成してみます。
データベース右クリック >MySQLサーバーを登録
MySQLサーバー 右クリック > 接続
MySQLサーバー 右クリック > データベースを作成
cake右クリック > 接続
接続したcakeで右クリック > コマンドの実行
次のURLからSQL文をコピー・アンド・ペーストし、実行
http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/blog.html#creating-the-blog-database
データベースファイル(app/Config/database.php)の作成
上に書いたキーマップを設定していれば
Alt +R
を押せば、コマンドの実行画面になるので、bakeコマンドを選択して実行を押してください。
あとは、聞かれてきた内容を設定していくだけです。
Bake
上と同様にコマンドの実行画面を開いて
bake project app
(bake project を選択して、パラメータにappといれます)
を実行※1。これを実行すれば、Security.saltとSecurity.cipherSeedの値を変更してくれます。続いて、
bake all
を実行してください。MVCを全部作ってくれます。
あとはapacheを起動して、
にアクセスしてオールグリーンになっていることを確認したら、
http://localhost/cake2.0.4/posts
にアクセスすれば完了です。
Windows以外の環境であれば、パーミッションの設定がいるかと思います。
※1 通常は指定したパラメータの値の名前のappフォルダを作ってくれます。複数のアプリケーションを作りたい場合に有効だと思います。
http://cake2.0.4/やhttp://cake2.0.4/postsのようにアクセスしたければ、次の記事を参考にしてください。
参考:CakePHP Xamppで複数サイト管理(VirtualHost)
以下は、おまけというかその他の操作などです。
GUIでdatabase.phpを作成
通常は、database.phpがない場合、bakeすれば、CLIでdatabaseの設定になります。今回はお蔵入りにした機能を使います。
bakeは便利で楽しいのですが、1つ間違えると、1からやり直しになります。そこでGUIで実行できればいいのになぁって思って、visual bakeなる機能をつけようとしました。
しかし、Modelの情報が取りにくく、状況に応じてbakeでの応答が変わるのもあり、入出力でのやり取りがちゃんと合わないと、待ち状態になってしまい完全に動かなくなるので封印しました(^_^;)
ダウンロード: https://github.com/junichi11/cakephp-netbeans/tree/dev
Component,HelperやBehaviorの作成
pluginでテンプレートを用意しています。原因はわからないのですが、作成に少し時間がかかることがあります。
コード補完
参考:NetBeans + CakePHP Code Completion (コード補完)
CakePHP2.0からはcoreに@propertyの記述があるので、参考記事のようにしなくてもある程度補完できると思います。また、Controllerを個別にbakeするときに、ComponentやHelperを指定しておくと、自動で@propertyが埋め込まれます。
ただし、プラグインのComponent等を指定すると正しくないようなので、自分で修正が必要かもしれません。もしくは最初から参考のように使うのがはやいかもしれません。。。
リモート環境で開発とデバッグ
参考:NetBeans リモートからのPHPプロジェクト作成とデバッグ
wordpressでの例ですが、同じようにできると思います。
NetBeansの便利な機能
NetBeansのPHPに関する情報
NetBeansのPHPに関する機能やリリース情報が公開されています。
興味がある方はフィードに登録しておけばよいかと思います。
PHP Advent Calendar 14日目の記事にある列をそろえるといったことも、NetBeans7.1から可能です(http://blogs.oracle.com/netbeansphp/entry/formatting_group_multiline_alignment_added)。
cakephp-netbeansプラグインを変更したい
NetBeansのサイトから、全て入ったものをDLして、少なくとも以下のものを選択して下さい。
- ベースIDE
- Java SE
- PHP
その他
NetBeansのプラグインには次のようなものもあります。昨日の@nojimageさんの記事にも出ていたSmartyやTwigはPluginがあります。
Framework
- Symfony Plugin
Go To View / Go To Action、コマンドの実行などが可能 - ZendFramework Plugin
Go To View / Go To Action、コマンドの実行などが可能
Template
- Smarty Plugin
ハイライトなどが可能です - Twig Plugin
other
- jVi Plugin
vimのように使えます - Git Plugin
gitの操作がGUIで可能です
他のPHPフレームワークのプラグインも自作することが可能です。ただしドキュメントがないので、既存のフレームワークのプラグインのコードを参照しながら作ることになると思います。
以上、Bakerになれないjunichi_11がおおくりいたしました。
なんだかごちゃごちゃしてしまって申し訳ないです(´・ω・`)