仮想化(KVM)ネットワーク編クラウド(OpenStack)周辺機器サーバー管理Tipsスクリプト言語PythonPHPJavaScriptCMS・フレームWordPressDjangoFuelPHPCodeIgniterCakePHPITの話題OSSの話題ハードウェアの話題スマートフォンアミューズメントサイトについて徒然草お知らせお知らせ1お知らせ2HOMEフレームワーク・CMSCodeIgniterPHPフレームワークの構造が分かる「パーフェクトPHP」PHPフレームワークの構造が分かる「パーフェクトPHP」admin2015年7月13日Tweet今や、どんなスクリプト言語でもサイトを構築するのにフレームワークを使うのは当たり前になっています。サイト管理者は「FuelPHP」から勉強し始めましたが、その前身とも言うべき「CodeIgniter」が覚えるのに簡単で、日本唯一の解説書「CodeIgniter徹底入門」(翔泳社)が非常に優れていることも会って、すみませんが現在、こちらに病みつきになっております。そこでふと、フレームワークって中身はどんなになっているのだろうと気になり、随分前に購入、著者たちが独自のフレームワークを構築している「パーフェクトPHP」(技術評論社、2010年12月10日初版第一刷)を引っ張りだして読んでみました。これまでは、何だか難しそうだなあと思って「積読(つんどく)」だけしていましたが、今回は高速フレームワークとして知られるFuelPHPやCodeIgniterを勉強していたこともあり、いざ読み始めて見ますと頭の中に入ってくること、入ってくること。実践Webアプリケーション」でしょう。第6章でそれまでのPHPによるWebアプリの作り方を説明した(ただし、HTMLの中にPHPコードを埋め込む原始的な方法とロジックとビューを分けるより進んだ方法の二通りで掲示板を作成しています)あと、第7章で本題のフレームワークについての説明に移り、実際に独自のフレームワークを実装しています。その後、第8章でこのフレームワークを下に、「ミニ・ツイッター(本書ではミニブログと表現していますが、ミニ・ツイッターと言って良いと思います)」を作成しています。PHP5.3で作成されているので、サイト管理者の環境(Ubuntu14.04LTS、Nginx、PHP5-FPM5.5,MySQL5.5)でも動作しました。/etc/nginx/sites-enabled/defaultの設定は通常のLAMP動作用の設定で特に問題ありません。フロントコントローラーのindex.phpが開発用のindex_dev.phpと本番用のindex.phpに分けられているのでその点だけは注意する必要があります。第7章では、フレームワークのコアクラスとして、1各種のクラスを自動的に読み込むClassLoaerクラス2サーバーとのやり取りをするRequesクラスとResponsクラス3ユーザーからのサーバーへの(静的なURIによる)アクセス形式を解析してコントローラーにつなげるRouterクラス5データベースへのアクセスを行うデータベースクラス(DbManagerクラスとDbRepositoryクラス)6データベースクラスとやりとりし、表示用のビュークラスにつなげるControllerクラス7表示用のViewクラス7セキュリティ対策のためのSessionクラス8これらのクラスを総合して、アプリケーション全体をコントロールするApplicationクラスーなどが、コアクラスとして実装されています。第8章で具体的にミニツイッターを作成します。全体として感じることは、クラスの威力とPHPの深化、それにWebアプリケーションに必要なものは何かが非常によく分かることです。何度も繰り返して読めば、フレームワークというものが良く分かってくるのではないでしょうか。PHPを本格的に学ぶ書としてオライリーの「PHP第三版」が必読書になっていますが、本書も必読書と思われ、かつ、かなり補完的な関係にあるように思われます。Application.phpというのは、実際に使われているフレームワークには見当たらないようです。このクラスと同様の機能を有する機構が備えられていると思います。注意点としては、誤植(ただし、「てにをは」の間違いの類)が若干あるので、購入の際には最新の版(現在、第四版)を購入する必要があります。ソースコードや正誤表は技術評論社のサイトに掲載されています(正誤表は一部との指摘あり)。本書は2010年師走出版と古いので、そろそろ改訂版が出る頃かと思います。PHPも随分深化してきており、言語構造も面白くなってきています。JavaやPythonと同じようにデスクトップアプリケーションなども守備範囲になってくるかも知れません。posts:PHP5.5が出ています早川聖司著「改定FuelPHP入門」、FuelPHP1.73でも動作します。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。Communitycom,Inc.。