PHPのドキュメント作成にPhpDocumentorを使ってみる
- 2009.02.22 (日) 09:31
- PHP
- PHP,phpdocumentor
PHPを使ってプログラムを書いていてJavadocのようなドキュメントを作成できたらいいなぁと思ってPhpDocumentorを使ってみました。
まずは、WindowsにXAMPPをインストールした環境でのPhpDocumentorのセットアップの方法です。
PhpDocumentorのセットアップ
- XAMPPのPHPインストール先のフォルダにPATHを設定します。
(XAMPPのセットアップについてはこちらをご覧ください)
◆PATHの設定方法◆
■ Windows2000、XPでの設定方法
「コントロールパネル」から「システム」を開きます。
すると、「システムのプロパティ」ウインドウが開くので「詳細」タブを選択し「環境変数」ボタンを押下します。
環境変数の設定ウインドウが開きます。
「システム環境変数」の中に「PATH」という変数があるので選択し、編集ボタンを押下します。
「PATH」の編集画面が表示されるので、「C:\xampp\php;」を追加します。
追加したら「OK」ボタンを押下します。
※「;」がPATHの区切り文字になっているので前のパスとの間に「;」があることを確認してください。
■ WindowsVistaでの設定方法
「コントロールパネル」から「システムとメンテナンス」を開きます。
すると、「システムとメンテナンス」ウインドウが開くので「システム」を開きます。
すると「システム」ウインドウが開くので、「システムの詳細設定」をクリックします。
「システムのプロパティ」が開くので「詳細設定」のタブにある「環境変数」ボタンを押下します。
環境変数の設定ウインドウが開きます。
「システム環境変数」の中に「PATH」という変数があるので選択し、編集ボタンを押下します。
「PATH」の編集画面が表示されるので、「C:\xampp\php;」を追加します。
追加したら「OK」ボタンを押下します。
※「;」がPATHの区切り文字になっているので前のパスとの間に「;」があることを確認してください。
- コマンドプロンプトを開いて、一度PhpDcumentorをアンインストール為に以下のコマンドを実行します。
(XAMPPでインストールしていると既にインストールされていると思いますが一度アンインストールしください)1
pear uninstall phpdocumentor
- PhpDocumentorをインストールします。
コマンドプロンプトで以下のコマンドを実行します。1
pear install -a phpdocumentor
これで、PhpDocumentorのインストールが終了しました。
PhpDocumentorを使ってみよう
コマンドを実行して、ドキュメントを作ってみましょう
例)
1 |
phpdoc -t ./phpdoc/ -d C:/htdocs/codeigniter/system/application/ |
-tオプションで出力先を決定、-dオプションでphpdocを処理するソースが存在するディレクトリを指定しています。
詳しいコマンドのオプション内容は、こちらをご覧ください。PDFファイルなどにも出力できますよ
ちょっとだけコマンド解説
- -tオプション:作成されたファイルの出力先(相対パス、絶対パスどちらで指定することも可能です)
- -dオプション:ドキュメントを作成するファイルが入っているディレクトリを指定する(相対パス、絶対パスどちらで指定することも可能です)
- -fオプション:ドキュメントを作成するファイルを指定する(相対パス、絶対パスどちらで指定することも可能です)
- -oオプション:ドキュメントのレイアウトを指定する
PDFや、色々なHTMLのレイアウトが指定できます。
例)PDFでの出力1
phpdoc -t ./phpdoc -d ./application -o PDF:default:default
例)デフォルトとは違うレイアウトでの出力(日本語も文字化けしないのでこれはお勧めの設定)
1
phpdoc -t ./phpdoc -d ./application -o HTML:Smarty:PHP
他にも先ほどphpdocのコマンドのリファレンスの-oオプションの場所に色々なoutputの出力できる定義がのっているので試してみてください。
(中には文字コードが指定されている為に、日本語が文字化けするものも存在するので注意が必要です)
出力種類の一覧) -oオプションで使用できる値は以下のものになります
ドキュメントが英語で書かれているので面倒なので-oオプションで使用できる値の一覧を抜粋して書いておきました
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
HTML:frames:* - output is HTML with frames. HTML:frames:default - JavaDoc-like template, very plain, minimal formatting HTML:frames:earthli - BEAUTIFUL template written by Marco von Ballmoos HTML:frames:l0l33t - Stylish template HTML:frames:phpdoc.de - Similar to phpdoc.de PHPDoc output HTML:frames:phphtmllib - Very nice user-contributed template HTML:frames:phpedit - Based on output from PHPEdit Help Generator HTML:Smarty:* - output is HTML with no frames. HTML:Smarty:default - Bold template design using css to control layout HTML:Smarty:HandS - Layout is based on PHP, but more refined, with logo image HTML:Smarty:PHP - Layout is identical to the PHP website CHM:default:* - output is CHM, compiled help file format (Windows help). CHM:default:default - Windows help file, based on HTML:frames:l0l33t PDF:default:* - output is PDF, Adobe Acrobat format PDF:default:default - standard, plain PDF formatting XML:DocBook:* - output is XML, in DocBook format XML:DocBook/peardoc2:default - documentation ready for compiling into peardoc for online pear.php.net documentation, 2nd revision |
PhpDocument用のコメントの書き方
コメントの書き方は、こちらを見てください。
PHPフレームワーク – CodeIgniter入門 CodeIgniterを動かそう!!
- 2009.02.21 (土) 16:11
- PHP
- codeigniter,PHP
まずは、習うより慣れろということでCodeIgniterを動かしてみましょう。
CodeIgniterのソースファイルを「CodeIgniter」のサイトからダウンロードしてきてください。
(2009年2月21日時点では、ver1.7.1でした)
ダウンロードした圧縮ファイル「CodeIgniter_1.7.1.zip」を解凍すると
- system
- user_guide
- index.php
- license.txt
の4つのフォルダとファイルが出てくると思います。
この出てきた中から
- system
- index.php
の2つをWebサーバから参照できる場所に配置してください。
(テスト環境ができていないようでしたら、こちらに開発環境の構築方法をのせているので確認してください)
配置できたらindex.phpにウェブブラウザでアクセスしてみてください。
私のテスト環境では「http://192.168.25.130:8000」にて参照できるWebサーバーに「ci」という名前のフォルダを作成して「ci」フォルダの中に配置したので
「http://192.168.25.130:8000/ci/index.php」にアクセスすると以下のようなページが表示されます。
これが表示されたらとりあえずCodeIgniterを使用する為の準備はできました。
※ http://192.168.25.130:8000/ci/index.phpは、私の環境なので各自のテスト環境でのアドレスに読み直してくださいね
この動作がどのように動いているかですが
- index.phpの中でCodeIgniterのコアファイルが読み込まれます。
- 「system\application\config」の中にあるroutes.phpの43行目
1
$route['default_controller'] = "welcome";
の記述を見てCodeIgniterはwelcomというコントローラーを動かしに行きます。
(コントローラーの指定がないため) - 「system\application\controllers」の中のwelcom.phpのindexメソッドが実行されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
<?php class Welcome extends Controller { function Welcome() { parent::Controller(); } function index() { $this->load->view('welcome_message'); } } /* End of file welcome.php */ /* Location: ./system/application/controllers/welcome.php */
- 12行目の記述を見てCodeIgniterは「system\application\views」の中のwelcome_message.phpを呼び出し先ほどの「Welcome to CodeIgniter!」画面を表示しています。
これが今、「Welcome to CodeIgniter!」画面が表示された動きです。
ここまでの流れを聞いてフレームワークを使用したことが無い人には、なんでそうなるの
って疑問とよくわからんという感想が残ったかもしれません。
なので、CodeIgniterというフレームワークの動作を説明したいと思います。
と思いましたが今回はここまで、次回解説いたします。
おすすめプログラムランチャー nrlunch
- 2009.02.20 (金) 13:59
- ソフトウェア
今回は、私が使っているパソコンには絶対にインストールしているソフトの紹介です。
プログラムランチャーの「nrlunch」です。
このソフトなにが優れているかというと、
- 軽い
- 簡単にアプリが登録できる
- ホットキーで、表示可能
- くるくるマウスで表示可能
などなど、色々あります。
このランチャーに辿り着くまでに数十個のランチャーを試しに使ってみてこれが一番使いやすかったです。
実際にnrlunchを動かしたFlash動画を作ったので見てください。
月額1,050円で高機能・安心レンタルサーバー
マルチドメイン対応、ビジネス仕様 高性能レンタルサーバー 【シックスコア】
これは、くるくるマウスの動作ですが、2回転マウスを動かすとnrlunchが起動し、動かしたいアプリケーションをクリックすることで動作させることができます。
かなり便利ですよ。
だまされたと思って一回使ってみてください。
ダウンロードは、作者が突然サイトをやめてしまったので別のサイトで公開されているのでそちらからダウンロードしてください。
ダウンロード先:「軽快なアプリ起動ランチャ「nrLaunch」(+勝手にミラー)」
PHP応用 コンタクトフォームの作成
コンタクトフォームを作成しましょう。
まずは、このような「デモ:コンタクトフォーム」を作ります。
デモで動作を確認してみてください。
画面遷移は以下のようになります。
よくあるコンタクトフォームです。
- まず、入力画面を表示しコンタクト内容を入力してもらいます。
- 入力が終了したら確認画面に遷移し入力内容の確認をできるようにします。
ここで、入力内容に誤りがあった場合は、入力画面に戻って修正してもらいます。 - 入力内容に誤りがない場合、入力内容を投稿してもらい完了ページを表示し、コンタクト投稿したことを表示します。
一連のプログラムの流れはこんな感じで作成したいと思います。
まずは、入力ページの作成です。
こんなページを作ります。
ソース:input.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
<?php $contactname = $_POST["contactname"]; $contactmail = $_POST["contactmail"]; $contents = $_POST["contents"]; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>コンタクトフォーム</title> <style TYPE="text/css"> <!-- H1 { color: red; font-size: 18pt; } #contact-form th { background-color: #9bdbea; padding: 10px 20px; } #contact-form td { background-color: #f7f7ef; padding: 10px 20px; } #contact-form td input { width: 400px; } #contact-form td textarea { width: 400px; } --> </style> </head> <body> <h1>コンタクトフォーム</h1> <form action="./confirm.php" method="post"> <table id="contact-form" border="1" cellpadding="0" cellspacing="0"> <tr> <th> 名前 </th> <td> <input type="text" name="contactname" value="<?= $contactname ?>" /> </td> </tr> <tr> <th> メールアドレス </th> <td> <input type="text" name="contactmail" value="<?= $contactmail ?>" /> </td> </tr> <tr> <th> 内容 </th> <td> <textarea name="contents" rows="10"><?= $contents ?></textarea> </td> </tr> <tr> <th colspan="2"> <input type="submit" value="入力"> </th> </tr> </table> </form> </body> </html> |
formタグを使用して次のページにデータを送信できるようにします。
次に、確認画面を作成しましょう。
内容に誤りがあったら内容修正ボタンで入力画面に戻ります。
ソース:confirm.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<?php $contactname = $_POST["contactname"]; $contactmail = $_POST["contactmail"]; $contents = $_POST["contents"]; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>コンタクトフォーム</title> <style TYPE="text/css"> <!-- H1 { color: red; font-size: 18pt; } #contact-form th { background-color: #9bdbea; padding: 10px 20px; } #contact-form td { background-color: #f7f7ef; padding: 10px 20px; } #contact-form td input { width: 400px; } #contact-form td textarea { width: 400px; } form { display: inline; } --> </style> </head> <body> <h1>コンタクトフォーム</h1> <table id="contact-form" border="1" cellpadding="0" cellspacing="0"> <tr> <th> 名前 </th> <td> <?= $contactname ?> </td> </tr> <tr> <th> メールアドレス </th> <td> <?= $contactmail ?> </td> </tr> <tr> <th> 内容 </th> <td> <?= $contents ?> </td> </tr> <tr> <th colspan="2"> <form action="./end.php" method="post"> <input type="hidden" name="contactname" value="<?= $contactname ?>"> <input type="hidden" name="contactmail" value="<?= $contactmail ?>"> <input type="hidden" name="contents" value="<?= $contents ?>"> <input type="submit" value="送信" /> </form> <form action="./input.php" method="post"> <input type="hidden" name="contactname" value="<?= $contactname ?>"> <input type="hidden" name="contactmail" value="<?= $contactmail ?>"> <input type="hidden" name="contents" value="<?= $contents ?>"> <input type="submit" value="内容修正" /> </form> </th> </tr> </table> </body> </html> |
ここでは、<input type="hidden">タグを使って前の画面、次の画面へ渡すデータを保持します。
また、前画面からのデータはPOSTメソッドにて送信したので、$_POST配列に格納されます。
なので、$_POST変数を使用して前のページからの送信データを取得します。
最後に送信画面です。
この画面では前の画面からのデータを取得してメールにて内容を送信します。
PHPでのメールの送信もしています。
ソース:end.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php $contactname = $_POST["contactname"]; $contactmail = $_POST["contactmail"]; $contents = $_POST["contents"]; //メール送信処理 mb_language('ja'); $from = mb_encode_mimeheader($contactname)."<".$contactmail.">"; $reply_to = $from; $to = 'ここは各自のメールアドレスを設定してください'; $header = "From: $from\n"; $header .= "Reply-To: $reply_to\n"; $header .= "X-Mailer: myphpMail ". phpversion(). "\n"; $subject = "【PHP応用 コンタクトフォームの作成】"; $message = $contents; mb_send_mail($to, $subject, $message, $header); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>コンタクトフォーム</title> <style TYPE="text/css"> <!-- H1 { color: red; font-size: 18pt; } #contact-form th { background-color: #9bdbea; padding: 10px 20px; } #contact-form td { background-color: #f7f7ef; padding: 10px 20px; } #contact-form td input { width: 400px; } #contact-form td textarea { width: 400px; } form { display: inline; } --> </style> </head> <body> <h1>コンタクトフォーム</h1> <p>以下の内容で、送信しました。</p> <table id="contact-form" border="1" cellpadding="0" cellspacing="0"> <tr> <th> 名前 </th> <td> <?= $contactname ?> </td> </tr> <tr> <th> メールアドレス </th> <td> <?= $contactmail ?> </td> </tr> <tr> <th> 内容 </th> <td> <?= $contents ?> </td> </tr> </table> </body> </html> |
9行目のメールアドレスは、各自設定してください。
前ページから送られてきたデータをもとにmb_send_mail関数を使用してメールを送信します。
ローカル環境でテストしてみて
このようなエラーが出力された場合、メールサーバーが構築されていないことが理由です。
レンタルサーバーで確認するか、ローカル環境にメールサーバーを構築して確認してみてください。
簡易ですがこれでコンタクトフォームの出来上がりです。
CodeIgniter入門
- 2009.02.19 (木) 10:32
- PHP
- codeigniter,PHP
PHPの軽量フレームワーク「CodeIgniter」
日本ではあまり有名ではないですが、PHPフレームワークの中では最速を誇るフレームワークです
余計なことをしないところも結構素敵
足りない部分は自分で機能を追加しないといけないが、それでも使いやすさ抜群のフレームワークです。
これからCodeIgniterを使用してサイトを構築していくのでその過程をここで公開していきます。