PHPプロ!マガジン
目 次
特 集
ソフトウェアの品質向上の鍵、TDD の本質を体験する
特集1 設計ツールとしてのテスト駆動開発 - ソフトウェアの品質と生産性向上の鍵
- TDDの概要
- TDDとテスティングフレームワーク
- TDDによるトランプゲームの作成 - とある開発現場から
- 終わりに
第1部 Ajaxで検索結果を調整する
第2部 Ajaxで関連性の高い検索結果を実現する
今流行のVoIP PBXサーバーをPHPで活用する
特集3 PHPからオープンソースのPBX Asteriskを操作する
連 載
MapServerマスターへの道 - オープンソースなGIS
楽々Ajaxプログラミング Ajaxで作るこれからのWebアプリケーション
第3回 prototype.js 1.5.0 - 新機能が追加された定番ライブラリprototype.js
セキュリティコーナー - セキュリティの関する情報集
勉強会&セミナーレポート
トピック
- PHP TIPS-MLダイジェスト
- PHP関連製品リリース情報
- 編集後記
主な特集
特集1 設計ツールとしてのテスト駆動開発 - ソフトウェアの品質と生産性向上の鍵
ソフトウェアの品質向上の鍵、TDD の本質を体験する

TDDという言葉をご存じですか?TDDとは、Test Driven Developmentの略であり、日本ではテスト駆動開発と呼ばれている、ソフトウェア開発技法を示す言葉です。21世紀初頭、KentBeckらによるソフトウェア開発手法XP(エクストリームプログラミング)の特徴のひとつとして、注目を受け始めたテスト駆動開発(以下、TDDとします)ですが、最近では、XPとは関係 なく、より一般的な関心を集めるようになってきています。
この記事では、最初にTDDの概要を示したあと、筆者2人が、実際にサンプルプログラム開発をTDDで行ったプロセスを紹介します。TDDによって、プログラムがどのように設計されていったのか、そしてリファクタリングを通じて、プログラムコードがどのように変化していったのかを、読者ご自身がプログラムを書いているつもりで読み進めていけるように解説しています。

- TDDの概要
- TDDとテスティングフレームワーク
- TDDによるトランプゲームの作成
- とある開発現場から - - 終わりに
特集2 AJAXで検索エンジンを実装する

検索エンジンが無関係な結果を返すことにうんざりしていませんか?関連性の検索だけではなく、フォームを送信する前に結果を作成できるような検索エンジンをクライアントに提供したいと思いませんか?
Ajax、CSS、PHP、そしてMySQLを組み合わせることで、関連性の高い検索結果のみを返す便利なツールを提供できるようになります。
第1部 Ajaxで検索結果を調整する
- 全文検索用テーブルの構築とAjaxによる検索候補取得・表示 -
AjaxとPHPを使ってキーワード提案ツールを構築する方法を説明します。このツールはユーザが文字を打ち込むのと同時にキーワードのリストを提示します。後半では、実際の検索エンジンライブラリについて述べます。
第2部 Ajaxで関連性の高い検索結果を実現する
- 汎用検索クラスの構築とAjaxを応用した検索 -
他のアプリケーションに移植して数分で実装できるような、再利用できるロバストな検索クラスをPHPで作成する方法を説明します。そして、汎用検索エンジンとキーワード提案エンジンという2つのコンセプトを統合させ、各自のアプリケーションで“そのまま”使えて状況に応じて手を加えられるような、移植・再利用可能なライブラリを作ります。
特集3 PHPからオープンソースのPBX Asteriskを操作する
今流行のVoIP PBXサーバーをPHPで活用する
IP電話が普及してメールの重要性が低下していますが、そろそろWebアプリケーションの機能を補強するような新しいメディアを考える時期が来ているのではないでしょうか。 この記事では、PHPスクリプトにおけるアスタリスクについて説明します。
アスタリスクとは、PBX(Private Branch eXchange, 機内電話交換機)を実現するためのソフトウェアであり、Linux上で動くオープンソースのソフトなので、誰でも無料でインストールできます。

連 載
MapServerマスターへの道 - オープンソースなGIS
第3回 経路検索を行うPostLBSの紹介
今回の連載では、経路探索などを行うためのPostLBSを紹介したいと思います。
PostLBSは株式会社オークニーによって開発されているオープンソースプロジェクトで、位置情報サービス
(Location Based Service)を提供することができます。PostLBSには、pgRoutingという経路探索などを行うためのアプリケーションとgeocoder.jaというジオコーダ(住所の緯度経度への変換エンジン)が含まれています。
pgRoutingを使用すると最短経路探索や特定の時間内に到達できる圏内(Driving distance)を検索したり、巡回セールスマン問題(Travelling Salesman
Problem)の回答を出す(複数点を結ぶ最短経路の探索)ことができます。
また、geocoder.jaでは表記に違いのある日本語特有の問題を解決して緯度経度への変換を行うことができます。

楽々Ajaxプログラミング Ajaxで作るこれからのWebアプリケーション
第3回 prototype.js 1.5.0
- 新機能が追加された定番ライブラリprototype.js -

先日待望の新バージョンがリリースされたprototype.js 1.5.0。
どんな機能が追加されたのか、その主な新機能をサンプル例を見ながら紹介します。
セキュリティコーナー - セキュリティに関する情報集
共有セキュリティ
共有ホストに潜む様々な危険性 あなたのサーバーは大丈夫?

PHPユーザーのほとんどは、サイトやアプリケーションを共有ホストのアカウントで運用しています。こういったプログラム内で、個人商店でのクレジットカード番号や、ユーザーのプロフィール、友達リストなどの個人情報があふれるBBSといった重要なデータを扱っていることがよくあります。
つまり、悪意のあるハッカー、クラッカーにとっては情報という宝の山なのです。この記事では、共有ホストのサイトやアプリケーションでの危険について説明します。これを読んで専用サーバーやバーチャルプライベートホストのような別の方法を検討してもらえたら幸いです。
セキュリティ テスト
開発プロセスにおけるセキュリティ チェックテストの重要性とその手法
セキュリティテストと題して、Webアプリケーションのセキュリティチェックに使える技術をいくつか紹介します。一般的にセキュリティテストは早期に、かつ頻繁に行うのがベストであり、これはテストを開発プロセスの一部として実行することで簡単に実現できます。
全てのアプリケーションに課題が共通しているわけではありませんが、この記事をきっかけにセキュリティ戦略の開発に着手してもらえることを願います。
レポート
勉強会&セミナーレポート
PHP勉強会レポート
2月24日、株式会社ノッキングオンにて、第21回PHP勉強会が開催されました。
今回のテーマは、フレームワーク。3件の発表が行われましたが、内容はそれぞれ、PHPフレームワーク概観、CakePHPの使用法や内部構造、Ethna利用時の工夫の仕方についてなど、全てフレームワークにまつわるものでした。

PHPテクニカルセミナーレポート「PHPフレームワークを導入して開発効率アップ」
1月30日(火)、アシアル主催のPHPテクニカルセミナーを東京にて開催致しました。今回のセミナーでは、Piece Project の久保敦啓氏、グリー株式会社 CTO 藤本真樹氏をお招きして「PHPフレームワークを導入して開発効率アップ!」というテーマで行われました。

久保敦啓氏の講演では、「Piece FrameworkによるシンプルなWeb開発」と題して、WebアプリケーションフレームワークPiece Frameworkの概要を示し、ステートフルなプログラミングや組み込みセキュリティ、その他の機能によってPiece Frameworkがいかに問題を単純化できるかを解説しました。また、Piece Frameworkを使った開発がどのようなものになるのかを説明しました。
藤本真樹氏の講演では、「実例ウェブアプリケーションフレームワーク」と題して、フレームワークを実際のサイト開発で利用する上でのポイント、具体的には、各種フレームワークの現状、技術的視点にとどまらないさらに広い視野でのメリット/デメリット、カバーできる部分とできない部分、活用のノウハウ、未来などをトピックに解説しました。
トピック
PHP TIPS-MLダイジェスト / PHP関連製品リリース情報 / 編集後記
flash版、立ち読み公開中
PHPプロ!マガジン Vol.3 2007年春号のサンプルをWeb上にて公開しています(flash形式)。「Vol.3 立読(flash)」ページよりご覧ください。
誤表記についてのお詫び
PHPテクニカルセミナーレポート(P.108、P.109)のPHPテクニカルセミナーのタイトルについて、誤表記がございました。読者の皆様および関係者の方々には多大なご迷惑をおかけ致しまして誠に申し訳ございませんでした。深くお詫び申し上げます(※2007年3月30日現在修正済)。







