リード開発メモ

大阪のソフトウェア会社です。 技術的な事柄についてのメモとしてブログを始めます。

2013年08月

Sandcastle を使ってみる(その1)

Sandcastle は、.NET のソースコードに埋め込んだ XML ドキュメントコメントから、ドキュメントを生成するツール。doxygen や NDoc と同じようなもの。

Sandcastle 自体はコマンドラインツールであるが、GUI で簡単に扱えるようになる支援ツール Sandcastle Help File Builder (SHFB)がある。以下からダウンロードできる。最新は SHFB v1.9.7.0 のもよう。
http://shfb.codeplex.com/

ダウンロードしたファイル SHFBGuidedInstaller_1970.zip には、SHFB だけでなく、対応する Sandcastle のインストーラも含まれている。SandcastleInstaller.exe を実行するとウィザード形式になっており、途中 Sandcastle 本体やSHFB をインストールできる。
sandcastle-guided-installation-1


ウィザードが Microsoft Help 2 Compiler まで進んだとき、Next を押すとダイアログが出たので、「はい」を押してスキップした。今回はヘルプファイル(chm)を作る予定なので。
sandcastle-guided-installation-2

Sandcastle 本体をインストール。
sandcastle-guided-installation-3

SHFB をインストール。
sandcastle-guided-installation-4

インストールは以上。

PHP Zend Framework 1 を使ってみる(その4)

今回は Index とは別にコントーラやアクションを定義してみる。

ログインページを作ることを目指して、名前を Login とする。

コントローラ名は LoginController となる。C:\test_apps\controllers フォルダに LoginController.php を追加し、中身は以下のようにする。
アクション名も login とした。
<?php
require_once 'Zend/Controller/Action.php';
class LoginController extends Zend_Controller_Action {
    public function loginAction() {
    }
}
次に、C:\test_apps\views\scripts の下に login フォルダを作成し、さらに作成した login フォルダ内に login.phtml を作成する。 login.phtml の中身は以下のとおり。
<html>
<head>
<title>ログイン</title>
</head>
<body>
ログイン
<p>
<form action="/zend_test/Login/login" method="post">
ユーザーID:<input type="text" name="userid"><br/>
パスワード:<input type="password"name="pwd"><br/>
<input type="submit" value="送信">
</form>
</body>
</html>

ブラウザで http://localhost/zend_test/Login/login にアクセスすると、ログインページが表示されるはずである。アクション名の login を省略するとエラーとなる。また、コントローラ名の Login まで省略すると Index ページが表示されるはずである。

次に 、送信ボタンを押すと自分自身へPOSTするようになっているので、loginAction 内にログインチェック処理を入れる。
Zend Framework のアクションメソッド内では、スーパーグローバル変数 $_POSTに、$this->getRequest()->getPost() でアクセスできる。また、入力された内容は $this->view->assign でビューに引き渡し、POST 後に入力内容を再現させることにする。ログインできた場合、単にログインできた旨のメッセージを表示させるだけとする。
<?php
require_once 'Zend/Controller/Action.php';
class LoginController extends Zend_Controller_Action {
    public function loginAction() {
        $uid = $this->getRequest()->getPost('uid');
        $pwd = $this->getRequest()->getPost('pwd');
        $this->view->assign('uid', $uid);
        $this->view->assign('pwd', $pwd);
        if ($uid == 'abc' && $pwd == '123') {
            $this->view->assign('loginMessage', 'ログインしました。');
        }
    }
}

ビューの変更は、ログインできた場合のメッセージの表示と、ユーザーID、パスワードの復元のみである。
<html>
<head>
<title>ログイン</title>
</head>
<body>
ログイン
<p>
<?php echo $this->loginMessage; ?>
<p>
<form action="/zend_test/Login/login" method="post">
ユーザーID:<input type="text" name="uid" value="<?php echo $this->uid; ?>"><br/>
パスワード:<input type="password" name="pwd" value="<?php echo $this->pwd; ?>"><br/>
<input type="submit" value="送信">
</form>
</body>
</html>

以上。

PHP Zend Framework 1 を使ってみる(その3)

コントーラからビューへ値を渡す場合、$this->view->assign を使う。

コントローラー C:\test_apps\controllers\IndexController.php 側で以下のようにして、変数 message に値をセットする。
<?php
require_once 'Zend/Controller/Action.php';

class IndexController extends Zend_Controller_Action {

	public function indexAction() {
		$this->view->assign( 'var1', 'あいうえお' );
	}
}

ビューでは $this->var1 としてアクセスできる。
<html>
<head>
<title>Hello World!</title>
</head>
<body>
Hello World!
<p>
<?php echo $this->var1; ?>
</body>
</html>

以上。

PHP Zend Framework 1 を使ってみる(その2)

Zend Framework 1 を使う準備ができたので、Hello World! を表示するページを作ってみる。

まず、XAMPP をインストールしたフォルダにある htdocs フォルダの下に、アプリケーション名でフォルダを作る。
今回は、C:\xampp\htdocs\ フォルダの下に、zend_test というフォルダを作る。

次に、zend_test フォルダに
・.htaccess
・index.php
の2ファイルを作る。

.htaccess の中身は以下のとおり。太字にしてある部分は上で述べた htdocs フォルダ内に作成したフォルダ名に合わせる。これにより、js ファイルや css ファイル、画像ファイル以外へのリクエストはすべて index.php に渡されることになる。このような index.php をフロントコントローラと呼ぶ。
RewriteEngine on
RewriteBase /zend_test
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php

index.php の中身は以下のとおり。太字にしてある部分は任意の名前でよい。下は、C ドライブの直下にtest_apps フォルダを作り、実際のソースコードを配置していく場合。実際のソースコードを htdocs の外に配置するほうが、間違ってソースコードに直接アクセスされることがないため安心できる。もちろん htcocs の下に配置してもよい。
<?php に対応する閉じタグ(?>)がないのは、Zend Framework では php のみのファイルでは php の閉じタグを書かないことが推奨されているためであり、わざと省略して書いている。
<?php
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run( 'c:/test_apps/controllers' );

次に、上の index.php で指定したように、Cドライブの直下に test_apps フォルダを作り、その下に
・controllers
・models
・views
の各フォルダを作る。

controllers フォルダの下に IndexController.php ファイルを作る。中身は以下のとおり。

<?php
require_once 'Zend/Controller/Action.php';

class IndexController extends Zend_Controller_Action {

	public function indexAction() {
	}
}

models フォルダは今回は使わない。

views フォルダの下に scripts フォルダを作り、さらにその下に index フォルダを作る。そして index フォルダに index.phtml というファイルを作る。

<html>
<head>
<title>Hello World!</title>
</head>
<body>
Hello World!
</body>
</html>

以上でソースコードの配置は終了。 ブラウザで http://localhost/zend_test/index/index にアクセスしてみると Hello World! が表示されるはず。
URL に含まれる最初の index はコントーラ名、次の index はアクション名であるが、コントーラ名やアクション名が省略された場合 index が使われるため、この例では省略可能である。
以上。

PHP Zend Framework 1 を使ってみる(その1)

PHP の Zend Framework はすでにバージョン 2  が出ているようだが、都合により Zend Framework 1 を使ってみる。

Apache は XAMPP のものを使うのだが、今回は今さらながら Windows XP にインストールしたいので、以下からXAMPP 1.8.2 をダウンロードする。最新版の XAMPP 1.8.3 はどうやら Windows XP と 2003 Server には対応していないようだ。

http://www.apachefriends.org/jp/xampp-windows.html

Zend Framework は以下のサイトからダウンロードする。「Get Starterd」 の 「Archives」 のページに過去のバージョンが置いてあるので、Zend Framework 1  の最終版、Zend Framework 1.12.3 をダウンロードする。Fullpackage の zip 版を選んだ。

http://framework.zend.com/

ダウンロードした「ZendFramework-1.12.3.zip」を C ドライブの直下に解凍する。
(いくつかのサイトを見ていると、ドライブの直下に置いたほうが何かと楽らしい。D ドライブのルートなどでもいいようだ。)

次に、解凍したファイルの中に 「library」というフォルダがあるので、このパスを php.ini の include_path に追加する。XAMPP 環境であれば C:\xampp\php\php.ini を開いて、以下の太字の部分を追加する。

; Windows: "\path1;\path2"
include_path=".;C:\xampp\php\PEAR;C:\ZendFramework-1.12.3\library\"

あとは Apache を再起動する。準備はこれだけ。

以上。

アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor 天気