新しいブログに移動しました。
9ensanのLifeHack
こちらの記事も必要に応じて新しいブログに移動させる予定です。
今後ともよろしくお願い致します。

HOME > 

2009年02月

PHPのドキュメント作成にPhpDocumentorを使ってみる

  • 2009.02.22 (日) 09:31
  • PHP
  • ,

PHPを使ってプログラムを書いていてJavadocのようなドキュメントを作成できたらいいなぁと思ってPhpDocumentorを使ってみました。

まずは、WindowsにXAMPPをインストールした環境でのPhpDocumentorのセットアップの方法です。

PhpDocumentorのセットアップ

  1.  XAMPPのPHPインストール先のフォルダにPATHを設定します。
    (XAMPPのセットアップについてはこちらをご覧ください)
    ◆PATHの設定方法◆
    ■  Windows2000、XPでの設定方法
    「コントロールパネル」から「システム」を開きます。
    すると、「システムのプロパティ」ウインドウが開くので「詳細」タブを選択し「環境変数」ボタンを押下します。
    システムのプロパティ
    環境変数の設定ウインドウが開きます。
    「システム環境変数」の中に「PATH」という変数があるので選択し、編集ボタンを押下します。
    環境変数ウインドウ
    「PATH」の編集画面が表示されるので、「C:\xampp\php;」を追加します。
    追加したら「OK」ボタンを押下します。
    ※「;」がPATHの区切り文字になっているので前のパスとの間に「;」があることを確認してください。
    PATHの設定

     ■ WindowsVistaでの設定方法
      「コントロールパネル」から「システムとメンテナンス」を開きます。
    システムとメンテナンスを選択
    すると、「システムとメンテナンス」ウインドウが開くので「システム」を開きます。
    システムとメンテナンス
    すると「システム」ウインドウが開くので、「システムの詳細設定」をクリックします。
    システムの詳細設定
    「システムのプロパティ」が開くので「詳細設定」のタブにある「環境変数」ボタンを押下します。
    システムのプロパティ
    環境変数の設定ウインドウが開きます。
    「システム環境変数」の中に「PATH」という変数があるので選択し、編集ボタンを押下します。
    環境変数の設定
    「PATH」の編集画面が表示されるので、「C:\xampp\php;」を追加します。
    追加したら「OK」ボタンを押下します。
    ※「;」がPATHの区切り文字になっているので前のパスとの間に「;」があることを確認してください。
    Pathの設定

  2. コマンドプロンプトを開いて、一度PhpDcumentorをアンインストール為に以下のコマンドを実行します。
    (XAMPPでインストールしていると既にインストールされていると思いますが一度アンインストールしください)

    1
    
    pear uninstall phpdocumentor
  3.  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を動かしてみましょう。

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の初めてのページ

これが表示されたらとりあえずCodeIgniterを使用する為の準備はできました。

※ http://192.168.25.130:8000/ci/index.phpは、私の環境なので各自のテスト環境でのアドレスに読み直してくださいね

この動作がどのように動いているかですが

  1. index.phpの中でCodeIgniterのコアファイルが読み込まれます。
  2. 「system\application\config」の中にあるroutes.phpの43行目
    1
    
    $route['default_controller'] = "welcome";

    の記述を見てCodeIgniterはwelcomというコントローラーを動かしに行きます。
    (コントローラーの指定がないため)

  3. 「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 */
  4. 12行目の記述を見てCodeIgniterは「system\application\views」の中のwelcome_message.phpを呼び出し先ほどの「Welcome to CodeIgniter!」画面を表示しています。

これが今、「Welcome to CodeIgniter!」画面が表示された動きです。

ここまでの流れを聞いてフレームワークを使用したことが無い人には、なんでそうなるの
って疑問とよくわからんという感想が残ったかもしれません。

なので、CodeIgniterというフレームワークの動作を説明したいと思います。

と思いましたが今回はここまで、次回解説いたします。

おすすめプログラムランチャー nrlunch

  • 2009.02.20 (金) 13:59
  • ソフトウェア

今回は、私が使っているパソコンには絶対にインストールしているソフトの紹介です。

プログラムランチャーの「nrlunch」です。

このソフトなにが優れているかというと、

  1. 軽い
  2. 簡単にアプリが登録できる
  3. ホットキーで、表示可能
  4. くるくるマウスで表示可能

などなど、色々あります。

このランチャーに辿り着くまでに数十個のランチャーを試しに使ってみてこれが一番使いやすかったです。

実際にnrlunchを動かしたFlash動画を作ったので見てください。

    月額1,050円で高機能・安心レンタルサーバー

  マルチドメイン対応、ビジネス仕様 高性能レンタルサーバー 【シックスコア】

これは、くるくるマウスの動作ですが、2回転マウスを動かすとnrlunchが起動し、動かしたいアプリケーションをクリックすることで動作させることができます。

かなり便利ですよ。

だまされたと思って一回使ってみてください。

ダウンロードは、作者が突然サイトをやめてしまったので別のサイトで公開されているのでそちらからダウンロードしてください。

ダウンロード先:「軽快なアプリ起動ランチャ「nrLaunch」(+勝手にミラー)

PHP応用 コンタクトフォームの作成

  • 2009.02.19 (木) 10:38
  • PHP

コンタクトフォームを作成しましょう。

まずは、このような「デモ:コンタクトフォーム」を作ります。

デモで動作を確認してみてください。

画面遷移は以下のようになります。

コンタクトフォームの画面遷移

よくあるコンタクトフォームです。

  1. まず、入力画面を表示しコンタクト内容を入力してもらいます。
  2.  入力が終了したら確認画面に遷移し入力内容の確認をできるようにします。
    ここで、入力内容に誤りがあった場合は、入力画面に戻って修正してもらいます。
  3. 入力内容に誤りがない場合、入力内容を投稿してもらい完了ページを表示し、コンタクト投稿したことを表示します。

一連のプログラムの流れはこんな感じで作成したいと思います。

まずは、入力ページの作成です。

 入力画面

こんなページを作ります。

ソース: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
  • ,

PHPの軽量フレームワーク「CodeIgniter

日本ではあまり有名ではないですが、PHPフレームワークの中では最速を誇るフレームワークです
余計なことをしないところも結構素敵

足りない部分は自分で機能を追加しないといけないが、それでも使いやすさ抜群のフレームワークです。

これからCodeIgniterを使用してサイトを構築していくのでその過程をここで公開していきます。

目次

  1. CodeIgniterを動かそう!!
お薦めのレンタルサーバー
広告
お薦めの書籍
HOME > 

2009年02月