symfony 1.0 book 第1章 まとめ


symfony1


PHPの代表的なフレームワークの1つであるsymfonyについてまとめます。元ネタはsymfonybook-ja1.0です。

symfonyとは

・symfonyは、Webアプリケーションの開発を最適化するために設計されたPHPフレームワークです。
・初心者にも使いやすいようにsymfonyはWebアプリケーションのビジネスロジック、サーバーのロジック、そしてプレゼンテーションのビューを分離するように設計されています。(いわゆるMVCの概念)
・symfonyは複雑なWebアプリケーションの開発期間を短くすることを目的とした多くのツールとクラスを含んでいます。
・symfonyは全てPHP5で書かれています。
・symfonyは多様なプロジェクトで徹底的にテストされ、高い需要のあるECサイトでも実際に利用されています。
・symfonyはMySQL、PostgreSQL、Oracle、Microsoft SQL Serverを含む、利用可能なほとんどのデータベースエンジンと互換性があります。
・symfonyはUnix系やWindowsプラットフォーム上で動作します。多くのプラットフォームでのインストールと設定作業が簡単であり、標準的なUnix系OSとWindowsプラットフォームでの動作が保証されています。

オブジェクトリレーショナルマッピング(ORM)

symfonyで利用するデータベースはリレーショナル(relational)なデータベースです。PHP5とsymfonyはオブジェクト指向です。オブジェクト指向でデータベースにアクセスするには、オブジェクトからコールされるメソッドをリレーショナルデータベースのロジック(簡単に言うとSQL)に翻訳するインターフェースが必要です。このインターフェイスはオブジェクトリレーショナルマッピング(object-relational mapping)もしくはORMと呼ばれます。

例えば object->getColumn(); というふうにオブジェクトからメソッドをコールした場合にメソッドの内部で自動でSQLを発行して、SQLを明示的に記述しなくてもデータベースのデータにアクセスできるような仕組みをsymfonyは標準で備えているということです。プログラマが書くプログラムはこの仕組みを使うことでデータベース固有の構文(SQL)を使わずにすみます。これはORMの利点の1つで、これにより使用しているデータベースに最適化されたSQLクエリに自動的に変換されます。設定ファイルの一行を変えるだけで、MySQL、PostgreSQL、もしくはOracleなど、データベースを切り替えることが可能となります。

symfonyはpropelというORマッパーを標準で備えています。propelのリファレンスについては、propelのWebサイト(http://propel.phpdb.org/trac/)を参照してください。

ラピッドアプリケーション開発(RAD)

symfonyを利用することで、ラピッドアプリケーション開発(RAD-Rapid Application Development)もしくはアジャイルソフトウェア開発(agile software development)などのプログラミング戦略を適用することができます。アジャイル開発に関連する原則や良い作法はたくさん存在しています。有名な方法論としてはエクストリームプログラミング(XP-Extreme Programming)と呼ばれるものです。XPの文献はアプリケーションを効率的に開発する方法を示してくれています。(Kent Beck(ケント・ベック)によって執筆されたXPシリーズ(Addison-Wesley)が有名)

YAMLフォーマット

symfonyは多くの設定ファイルをYAML(ヤムル、ヤメルと読む)というフォーマットで記述します。YAMLはXMLのような方法で記述されますが、XMLに比べてかなりシンプルです。特に配列を記述をする時は簡単に記述することができます。

YAMLでは、構造はインデント(字下げ)することで表現されます。連続する配列要素はハイフン(-)記号によって表現され、要素のキーと値の組はコロン(:)によって分割されます。YAMLには同じ構造をより少ない行で記述する省略記法があります。その省略記法では、配列は[]で、ハッシュは{}で表現されます。先ほどの配列は次のようにも記述することができます。

YAMLフォーマットの仕様ドキュメントはhttp://www.yaml.org/を参照してください。YAMLはXMLよりも簡単で(閉じタグ、明示的なクォートが不要)、階層構造をサポートしていない.iniファイルよりも強力です。

シェアして頂けると嬉しいです

















チャーム本店



価格.com ブロードバンド

価格.com 自動車保険









■コメントはお気軽にどうぞ