2008年9月20日土曜日

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (3)

NetBeans 6.5 を使った CakePHP の開発を紹介します
その他の記事については以下を参照してください

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (1)
NetBeans 6.5 + CakePHP で Web アプリケーション開発 (2)

"A.9. Posts の追加"では記事の追加機能を実装します
コントローラの"posts_controller.php "にadd()アクションを追加します


"A.10. データバリデーション"では追加用のビューを作成し、入力値判定の処理を実装します
"/app/views/posts/"以下に"add.thtml"を作成します


モデルの"post.php"にバリデーション処理を追加します


"A.11. Posts の削除"にて記事の削除機能を実装します
コントローラの"posts_controller.php"にdelete()アクションを追加します


そして、ビューの"index.thtml"に追加、削除のリンクを加えます


"A.12. Posts の編集"で編集機能を実装します
コントローラの"posts_controller.php"にedit()アクションを追加します


"/app/views/posts/"以下にビューとして新たに"edit.thtml"を作成します


そして、ビューの"index.thtml"に追加、削除のリンクを加えます


以上で、チュートリアルで実装される機能の作成は終了です

"A.13. Routes(ルート)"では最後にWelcomeページではなく、作成したblog機能に遷移するよう修正します
"/app/config/"以下にある"routes.php"を以下のように修正します


そして、再度プロジェクトを実行します
プロジェクトを右クリック、表示されるメニューから「Run」を選択し、ブラウザを開きます

作成したブログアプリケーションが表示されます


追加や編集、削除などの各機能が動作するか確認してください
また、処理毎にデータベースのデータが更新されていることも確認できます

以上、チュートリアルに沿ってですが、簡単なWebアプリケーションを作ってみました
本来の開発ではより規模の大きなアプリケーションを作成しますが、基本はビュー、アクションの作成とコントローラの修正の繰り返しです
NetBeans の PHP サポートの各機能を使うことで効率的な開発ができるかと思います
また、将来的にフレームワークとして CakePHPがサポートされれば、より使いやすいものになるかと思います
ぜひ、この PHP サポートをお試し下さい
サポートフレームワークの投票も宜しくお願い致します
(詳しくは、id:yandod さんのblogにありますので、そちらを参照してください)

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (2)

NetBeans 6.5 を使った CakePHP の開発を紹介します
その他の記事については以下を参照してください

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (1)
NetBeans 6.5 + CakePHP で Web アプリケーション開発 (3)

"A.2. Cakeの入手"を参考にCakePHPをダウンロードします
今回はStable版(08/09/20現在)の"1.1.19.6305"を使用しています
ダウンロードしたファイルは適当な場所に解凍してください

NetBeansのメニューより「File > New Project」と選択し、新規プロジェクト作成ウィンドウを開きます


PHPの項目の中から"PHP Application with Existing Sources"を選択し、「Next」をクリックします

次にプロジェクト名とプロジェクトの場所を指定します

「Sources Folder」には先ほどダウンロードファイルを展開した場所、「Project Name」には任意のプロジェクト名を入力してください
その他はデフォルト値のままで「Next」をクリックします

次はPHPの実行環境を設定します


NetBeans 6.5 の PHP サポートではローカル環境だけではなく、リモート環境での実行も可能です
今回はローカルでの開発を行うため、「Run As」は「Local Web Site」を選択し、「Project URL」には配備するURLを入力します
MAMPを使用している場合はポート番号"8888"(設定がデフォルトの場合)と追加入力します
「Copy files from Sources Folder to another location」をチェックし、「Copy to Folder」に配備する場所を設定します
(ドキュメントルートなどに直接プロジェクトを作成している場合は不要です)
「Finish」をクリックすると、プロジェクトが作成されます


ようやくコーディングできる状況がそろいましたので、チュートリアルを進めます
まずは"A.4. Cake のデータベース設定"です
"/app/config/"以下の"database.php.default"をコピー、または新規に"database.php"を作成します


以下のように内容を修正します


修正後、プロジェクトを実行します
プロジェクトを右クリック、表示されるメニューから「Run」を選択し、ブラウザを開きます

Welcome ページの上部に"Cake is able to connect to the database."と表示されていれば、接続成功です


以下のようにエラーとなった場合は設定を確認してください
(xdebugを使用していない場合は表示が異なります)


"A.5. mod_rewrite について"で使用環境の設定を確認します
MAMPを使用している場合は特に何も行う必要はありません
なお、配備するフォルダ内に".htaccess"が含まれていることを確認してください
(".htaccess"は標準ではFinderに表示されません)
含まれていない場合は解凍したフォルダ直下にあるのでコピーしてください
(ターミナルなど使ってコピーすると確実です)

"A.6. Post Model の作成"ではモデルを作成します
メニューより「File > New File」と選択し、"/app/models/"以下に"post.php"を作成します

ファイルには以下のように入力します


"A.7. Posts Controller の作成"ではコントローラを作成します
モデルと同様に" /app/controllers"以下に"posts_controller.php"を作成します

内容は以下のようになります


"A.8. Post Views の作成"ではビューを作成します
これも同様に"/app/views/posts/"以下に"index.thtml"、"view.thtml"を作成します
"index.thtml"は以下のようになります


"view.thtml"は以下のようになります


また、先に作った"posts_controller.php"にview()アクションを追加します


これで表示のみですが、一通りの機能が実装されました
これ以降は blog として必要な追加、変更、削除の機能を実装していきます

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (3)

NetBeans 6.5 + CakePHP で Web アプリケーション開発(1)

NetBeans 6.5 にて正式リリースとなる PHP サポートを使い、 CakePHP の開発を紹介します
(ちょうど、PHP フレームワークの投票の件もありましたので…)

今回は CakePHP を使い、"Cake ブログチュートリアル"を実行します
すこし長くなりますので、複数の投稿に分けてあります
その他の記事については以下を参照してください

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (2)
NetBeans 6.5 + CakePHP で Web アプリケーション開発 (3)


まずは"A.3. ブログデータベースの作成"、"A.4. Cake のデータベース設定"よりデータベースの設定を行います
(チュートリアルの手順とは早速異なりますが…)
コマンドライン、またはphpMyAdminなどを利用して、ユーザーを作成します
(NetBeansからはユーザー作成用の GUI はないという認識ですが、正しいでしょうか?)
作成するユーザー情報は以下の通りです
(他に適当な権限も付与してください)
・ユーザー名:cakeBlog
・パスワード:c4k3-rUl3Z
作成後、NetBeansの MySQL サポート機能を使ってその他の設定を行います

"Services"ウィンドウを開いて、 MySQL サーバが表示されていない場合は登録します
MAMPを利用している場合は設定は以下のようになります


次にデータベースを作成します
チュートリアルではデータベース名は"cake_blog_tutorial"となっていますので、それに従って設定します


作成後はデータベースに接続し、テーブルを作成します


チュートリアルのページにCREATE TABLE、INSERT TABLE文があるので、それを利用します
(GUIでテーブル作成、データ登録してももちろん構いません)
SQL実行後、データが正しく登録されているかを確認します


以上でデータベースの準備は終了です

NetBeans 6.5 + CakePHP で Web アプリケーション開発 (2)

2008年9月18日木曜日

Mac OS X での PHP 開発環境(MAMP編)

Mac OS X Leopard(10.5.x)では標準でApacheやPHPの環境はそろっているのですが、動作させるまでの設定が面倒です
Apache、PHPなどの細かいバージョンの指定がなければ、MAMPというアプリケーションを使用するのが簡単かと思います
MAMPはApache、MySQL、PHPの同梱パッケージで、インストール後はすぐにそれらを使用することができます

コチラより最新のパッケージをダウンロードしてインストールします
(08/09/18現在では1.7.2)
なお、ダウンロードしたパッケージには有料版であるProも含まれていますが、今回は無料版のMAMPを使用しています


続いてNetBeansのデバッガ機能を使用するため、PHPのデバッグモジュールのxdebugをインストールします
インストールにはKomodo Remote Debugging Packagesを利用します
(もちろん、本家からソースコードをダウンロード、ビルドして利用することもできます)
使用環境に併せた最新バージョンのPHP Remote Debuggingをダウンロードします
ダウンロード後、パッケージを解凍すると、PHPの各バージョンに対応したモジュールが展開されます

今回利用するMAMPにはPHP4.4.8/5.2.6が含まれていますので、使用するバージョンに併せて4.4、または5.2フォルダにある"xdebug.so"をコピーしてください
(以降、PHP5.2.6と対応する5.2用のxdebugにて説明します.PHP4を利用する際は適時に読み替えてください)
コピーしたファイルを"/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/"以下に置きます

次に"/Applications/MAMP/conf/php5"以下の"php.ini"を編集します
以下の設定をファイルに追加してください
(設定は必要に応じて変更してください)
[xdebug]
zend_extension = /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.idekey =
xdebug.profiler_enable = On
xdebug.profiler_output_dir = "/Applications/MAMP/tmp/xdebug/"


設定後、MAMPアイコンをダブルクリックし、起動します
表示されたMAMP管理ウィンドウの「環境設定」ボタンをクリックします
「PHP」タブをクリックし、「機能拡張」にある「Zend Optimizer」のチェックをはずします
(Zend Optimizerが有効な場合、デバッグが正常に動きません)
その他、ポート番号やドキュメントルートなどは必要に応じ、変更してください
(今回の説明ではデフォルトのままで使用しています)

「サーバを停止」、「サーバを起動」とクリックし、サーバを再起動したのち、「スタートページを開く」ボタンをクリックしてブラウザを開きます
画面上部のメニューより「phpinfo」のメニューをクリックし、各種設定を確認します
また、ページ後半に"xdebug"の項目があることを確認してください
(ブラウザの検索ウィンドウにて"xdebug"と入力して探すと簡単に見つけられると思います)
"xdebug"の項目がない場合は正常にインストールできていません
インストール先や上記設定の確認を行ってください

以上でPHPに関する設定は完了です
デフォルトの設定でドキュメントルートは"/Applications/MAMP/htdocs"となっていますので、テストとして以下の内容でindex.phpを作成します
<?="Hello PHP!"?>

"http://localhost:8888/"をブラウザで開くと、以下の画面が表示されるかとおもいます


今後開発を行う場合、このドキュメントルートにファイルを配備します
環境の準備ができましたので、次回は NetBeans の PHP サポートを利用した開発を紹介したいと思います

2008年9月14日日曜日

Mac OS X での Mercurial サポートの利用

Mac OS XにてMercurialを利用する際、Macportsを使ったインストールを紹介しました

しかし、Macports(Finkでも同様のようですが)でインストールした場合、そのままではNetBeansのMercurialサポートにてマージが正しく動作しないようです(元ネタはコチラ)
対応としては(1)公式パッケージを使用する、(2)環境変数を設定するの2つです

(1) 公式パッケージを使用する場合はココより最新版のパッケージをダウンロードします
インストール先は"/usr/local/bin"以下となるため、オプションにてそのパスを設定します


(2) MacportsやFinkのパッケージを利用する場合は、環境変数を設定する必要があります
"~/.MacOSX/environment.plist"というファイルを編集します(存在しない場合は新規にて作成してください)
$ vi ~/.MacOSX/environment.plist

ファイルに以下の環境変数を設定します
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PATH</key>
<string>/Library/Frameworks/Python.framework/Versions/Current/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin</string>
</dict>
</plist>

設定後は環境変数を反映させるため、再ログインする必要があります

(1)、(2)いずれかの対応ができましたら、以下のように差分マーカが表示されます


「相違ウィンドウを開く」アイコンをクリックすると、相違ウィンドウが表示されます

2008年9月10日水曜日

NetBeans 翻訳プロジェクトTシャツ頂きました


片貝さんより NetBeans 翻訳プロジェクトTシャツを頂きました
先週末には届いていたのですが、バタバタしていたので報告が遅れました
最近、ちょっとNetBeansに触れていないのですが、6.5の新機能はまだまだありますので、紹介したいと思います
あと、翻訳も最近やってないので、何か面白いネタがあったら、挑戦したいと思います

2008年9月2日火曜日

NetBeans で Growl


Mac (最近は Windows 版もあるらしいですが)で定番の情報通知ソフト、 Growl と、その Java ブリッジを使ったネタエントリーです
今回はNetBeansのマスコットキャラクター、ねこび〜んを使用しています
実際の動作は以下のようになります
(今回は動画を初めて作ったので、そのためのエントリーだったりします)



実装に関する詳細や配布に関しては、ライセンス的な問題(ねこび〜んもですが、Appleのほうのも)で公開は控えます
(実装方法に問題があるのでしょうけど…)
また、実用を考えるなら、Appleがサポートを打ち切りつつある Java より、JRubyを使用したほうが現実的であるとおもいます
(少なくとも、Appleのライセンスには抵触しないかと…)


Creative Commons License


ねこび〜ん by カネウチカズコ is licensed under a Creative Commons 表示-継承 2.1 日本 License.