Laminas Project

Laminas Project（旧称：Zend Framework / ZF）は、PHPで実装されたオブジェクト指向Webアプリケーションフレームワークおよびフレームワークを構成するコンポーネントを開発するオープンソースプロジェクトの名称。

前身となるZend Framework時代はZend Technologiesおよび同社を買収したRogue Wave Softwareによって開発が主導されていたが、2020年以降はLaminas ProjectとしてLinux Foundation技術憲章のもとで運営されるコミュニティ主導の開発体制に移行した。

 歴史 

Ruby on RailsやSpring FrameworkがWeb開発で広まりつつあった2005年初め、Zend Frameworkが構想され始めた。

2005年10月、第1回のZend ConferenceでZend Frameworkが発表された。

 Zend Framework 

2007年7月1日、Zend Framework 1.0がリリースされた。

2012年9月6日、Zend Framework 2.0がリリースされた。

Zend Framework 2.5以降はzendframework/zendframeworkはComposerのメタパッケージ化され、zend-mvcを中核としたコンポーネント群として分割・再編された。分割後に導入されたフレームワークコンポーネントはメタパッケージには追加されない。

2016年6月28日、Zend Framework 3.0がリリースされた。zendframework/zendframeworkメタパッケージのバージョンは3.0.0で固定されているが、セマンティックバージョニングに従って互換性のある最新版がインストールされるように依存関係が指定されている。

 Laminas 

2019年4月17日、Zend Technologiesの経営体制の変化に伴ってZend FrameworkはLaminas Projectと改名された上でLinux Foundationによってホストされるオープンソースプロジェクトになることが発表された。

2020年3月24日にLaminas Projectは正式にLinux Foundation傘下に移管された。

Laminas Projectの製品は、かつてのZend Frameworkの後継となる「Laminas MVC」（旧称：zend-mvc）、準拠の軽量フレームワーク「Mezzio」（旧称：zend-expressive）、RESTful API作成ツール「Laminas API Tools」(旧称：Apigility by Zend Framework)、これらを支えるライブラリとしての「Laminas Components」（旧称：Zend Framework Components）としてすべてのクラス名および名前空間を整理した上で再編された。Zend FrameworkからLaminasへの移行支援のためにマイグレーションツールが提供されている。

 哲学 
ZFは使い方が自由なフレームワークである。Zend Frameworkの全ユーザーが従うべき開発パラダイムや開発パターンというものは存在せず、MVC、Table Data Gateway、Row Data Gateway といったデザインパターンのためのコンポーネントを提供している。Zend Frameworkは他にもウェブアプリケーション開発で必要となる多数のコンポーネントを提供する。

Zend Frameworkはまた、PHPコミュニティにおけるWeb開発のベストプラクティスを広める努力をしている。他のフレームワークほど規約を使わず、むしろ妥当なデフォルトを設定しておき、各アプリケーションの必要に応じてそれを上書きするという方法を提案している。

 ライセンス 
Zend Frameworkは、Open Source Initiative(OSI) の承認した修正BSDライセンスで提供されており、コード提供者はApacheソフトウェア財団の Contributor License Agreement (CLA) をベースにしたCLAに署名しなければならない。ゼンド・テクノロジーズのアンディ・ガトマンズによれば、このようなライセンス方式を採用しているのは、ZFの商用利用で知的財産権問題を起こさないためだという。

 スポンサーとパートナー 
Zend Framework の企業スポンサーは、PHP中核部を開発したアンディ・ガトマンズとゼーブ・スラスキーの創業したゼンド・テクノロジーズである。技術パートナーとしては、IBM、Google、マイクロソフト、アドビシステムズ、StrikeIron などがある。

 要求されるもの 

1.7.0以降のZend Frameworkは、PHP 5.2.4かそれ以降を必要とする。それ以前のバージョンではPHP 5.1.4かそれ以降を必要としていたが、マニュアルではPHP 5.2.3かそれ以降を強く推奨していた（セキュリティと性能が強化されているため）。Zend Frameworkに含まれている単体テスト群を実行するには、PHPUnit 3.0かそれ以降を必要とする。多くのコンポーネントはPHP拡張部も必要とする。

 機能・特徴 
Zend Framework の特徴・機能には以下のものが含まれる。

 全コンポーネントは完全オブジェクト指向のPHP 5であり、E_STRICT準拠である。
 自由に使える (use-at-will) アーキテクチャで、結合度の弱いコンポーネント群からなり、その依存関係は最小限に抑えられている。
 拡張可能なMVC実装で、デフォルトでレイアウトとPHPベースのテンプレートをサポートしている。
 各種データベースをサポート。MySQL、Oracle、IBM DB2、Microsoft SQL Server、PostgreSQL、SQLite、Informix Dynamic Server など。
 mbox、Maildir、POP3、IMAP4による電子メールの作成・送信・受信
 各種バックエンドをサポートする柔軟なキャッシュシステム

 コード・文書・テストの標準 
Zend Frameworkにコードを提供する場合、コード、文書、テストの厳しい標準を守らなければならない。全てのコードはZFのコーディング標準に適合する必要があり、リリースブランチにコードを移行させる前にコード網羅率80%以上の単体テストにパスする必要がある。

 関連項目 
 Webアプリケーションフレームワーク
 BSDライセンス

 脚注・出典 

 外部リンク 
 公式サイト
 Zend Framework の例で (ZfEx)
 Zend Framework 入門 CodeZine
 Zend Framework で加速するPHP開発 ITmedia
 ZendFrameworkで作る『イマドキ』のWebアプリケーション Gihyo.jp
 Zend framework examples (en)

Category:ウェブアプリケーションフレームワーク
Category:Web 2.0
Category:ソフトウェア開発ツール
Category:コンテンツ管理システム
Category:オープンソースソフトウェア
Category:PHPフレームワーク