技術情報

PHPフレームワーク「Symfony」とは

PHP製Webアプリケーションフレームワーク「Symfony」について紹介します。

「Symfony」の概要

「Symfony」とは

「Symfony」は「Model View Controller(MVC)」モデルを採用したオープンソースPHP5用Webアプリケーションフレームワークです。

基本説明

Symfonyは、大変人気のあるフレームワークで、開発当初から活発なアップデートが行われており、非常に多機能で、本家ドキュメントも充実しています。本家サイトによると「ものぐさのためのプロフェッショナルウェブツール」とされています。

「効率的なWebアプリケーション開発」と「効率的な保守」を目的としています。ディレクトリ構造から外部ライブラリまで、コンフィギュレーションについての完全な制御を開発者に与えることを目指していて、ほとんどをカスタマイズ可能としています。

Symfonyは、PHP5.1以降に対応しており、キャッシュ管理、多言語対応、Ajaxサポートなどの、Webアプリケーションを開発する際に必要な機能の多くが用意されています。また、その他の機能もプラグインとして豊富に用意されているため、わざわざ機能を実装する必要はありません。

Symfonyユーザが多いため、プラグイン、サンプルコード、ドキュメント類が大量に蓄積されています。

CRUD自動生成機能、デバッグヘルパー、テストヘルパー、モジュール再利用性などを特徴としています。

2つのフレームワークの利点を吸収

Symfonyは、2つのフレームワークの利点を引き継いでいます。1つ目は、Mojaviの「MVC機能」です。2つ目は、「Ruby on Rails」の「圧倒的な開発効率を実現するための機能」です。

これらの利点を組み合わせて活かすことにより、効率的開発を最小限の設定で実現します。

PHPの弱みとされてきた「オブジェクト指向を活かす工夫」と、PHPの強みとされてきた「処理速度とスケーラビリティの保持」により、大規模開発に適しています。

 

主な機能

Symfonyコマンド

Symfonyコマンドにより、アプリケーション管理ができます。フレームワークをアップグレードすることもできます。

CRUD自動生成機能(scaffolding機能)

「CRUD」とは、Create(作成)、Retrieve(取得)、Update(更新)、Delete(削除)の頭文字を並べたもので、データベース処理の典型パターンのことです。

SymfonyのCRUD自動生成機能(scaffolding機能)は、データベースの基本操作に必要なモジュールを自動生成する仕組みで、データベーススキーマをベースに自動的にコードを生成してくれるため、必要なビジネスロジックに集中できます。

テスト支援機能

ブラウザでの挙動についてシミュレーションテストできる機能です。デフォルトでクローラーなどが組み込まれたテスト用クライアントが提供され、ファンクショナルテストを支援します。

デバッグ支援機能

Symfonyには、デバッグツールが搭載されています。クエリ文、クエリ数、クエリexplain、インプット内容、バリデーション情報などについて簡単に確認できます。

設定ファイル

データベース設定/検証ルール設定には「YAML」を採用しています。XMLも使用できます。

 

主な特徴

オブジェクト指向開発

Symfonyでは、各パートで記述する処理内容が明確になっているため、クラス命名規則/継承関係設定について効率的効果的に行うことができます。オブジェクト指向の恩恵を受けやすい点が、大きなメリットになっています。

部品の再利用性が高い

Symfonyの設計思想は、「疎結合」に徹底しています。モジュール単位の独立性が高いため、非常に高い再利用性があります。

リリーススケジュール(サポート期間)が安定

Symfonyのリリースは定期的に行われており、それに伴って、サポート期間についても明確になっています。業務開発において安心できるポイントです。

 

まとめ

「Symfony」は、オブジェクト指向、疎結合、再利用性、CRUD自動生成、テスト支援、デバッグ支援などの各特徴により、大規模Webアプリケーション開発において、効率的な開発/保守を行うことができるフレームワークになっています。

 

Symfonyを使ったオフショア開発は、こちらへ

About the author: matsumoto