Laminas Project
開発元 | Laminas Project Linux Foundation |
---|---|
初版 | 2019年4月17日[1] |
リポジトリ | https://github.com/laminas |
プログラミング 言語 | PHP |
プラットフォーム | クロスプラットフォーム |
前身 | Zend Framework |
サポート状況 | 開発中 |
種別 | Webアプリケーションフレームワーク |
ライセンス | 修正BSDライセンス |
公式サイト | getlaminas.org |
Laminas Project(旧称:Zend Framework / ZF)は、PHPで実装されたオブジェクト指向Webアプリケーションフレームワークおよびフレームワークを構成するコンポーネントを開発するオープンソースプロジェクトの名称。
前身となるZend Framework時代はZend Technologiesおよび同社を買収したRogue Wave Softwareによって開発が主導されていたが、2020年以降はLaminas ProjectとしてLinux Foundation技術憲章のもとで運営されるコミュニティ主導の開発体制に移行した[2]。
歴史
[編集]開発元 | Zend Technologies |
---|---|
初版 | 2006年3月3日[3] |
最新版 | 3.0.0 / 2016年6月28日 |
リポジトリ | https://github.com/zendframework |
プログラミング 言語 | PHP |
プラットフォーム | クロスプラットフォーム |
サポート状況 | 終了 |
種別 | Webアプリケーションフレームワーク |
ライセンス | 修正BSDライセンス |
公式サイト | framework.zend.com |
Ruby on RailsやSpring FrameworkがWeb開発で広まりつつあった2005年初め、Zend Frameworkが構想され始めた。
2005年10月、第1回のZend ConferenceでZend Frameworkが発表された[4]。
Zend Framework
[編集]2007年7月1日、Zend Framework 1.0がリリースされた[5]。
2012年9月6日、Zend Framework 2.0がリリースされた[6]。
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によってホストされるオープンソースプロジェクトになることが発表された[1]。
2020年3月24日にLaminas Projectは正式にLinux Foundation傘下に移管された[7]。
Laminas Projectの製品は、かつてのZend Frameworkの後継となる「Laminas MVC」(旧称:zend-mvc)、PHP標準勧告(英語: PHP Standard Recommendation)準拠の軽量フレームワーク「Mezzio」(旧称:zend-expressive)、RESTful API作成ツール「Laminas API Tools」(旧称:Apigility by Zend Framework)、これらを支えるライブラリとしての「Laminas Components」(旧称:Zend Framework Components)としてすべてのクラス名および名前空間を整理した上で再編された[2][8]。Zend FrameworkからLaminasへの移行支援のためにマイグレーションツールが提供されている[9]。
哲学
[編集]ZFは使い方が自由なフレームワークである。Zend Frameworkの全ユーザーが従うべき開発パラダイムや開発パターンというものは存在せず、MVC、Table Data Gateway、Row Data Gateway といったデザインパターンのためのコンポーネントを提供している。Zend Frameworkは他にもウェブアプリケーション開発で必要となる多数のコンポーネントを提供する[10]。
Zend Frameworkはまた、PHPコミュニティにおけるWeb開発のベストプラクティスを広める努力をしている。他のフレームワークほど規約を使わず、むしろ妥当なデフォルトを設定しておき、各アプリケーションの必要に応じてそれを上書きするという方法を提案している[11]。
ライセンス
[編集]Zend Frameworkは、Open Source Initiative(OSI) の承認した修正BSDライセンスで提供されており、コード提供者はApacheソフトウェア財団の Contributor License Agreement (CLA) をベースにしたCLAに署名しなければならない。ゼンド・テクノロジーズのアンディ・ガトマンズによれば、このようなライセンス方式を採用しているのは、ZFの商用利用で知的財産権問題を起こさないためだという[12]。
スポンサーとパートナー
[編集]Zend Framework の企業スポンサーは、PHP中核部を開発したアンディ・ガトマンズとゼーブ・スラスキーの創業したゼンド・テクノロジーズである[13]。技術パートナーとしては、IBM[14]、Google[15]、マイクロソフト[16]、アドビシステムズ[17]、StrikeIron[18] などがある。
要求されるもの
[編集]1.7.0以降のZend Frameworkは、PHP 5.2.4かそれ以降を必要とする。それ以前のバージョンではPHP 5.1.4かそれ以降を必要としていたが、マニュアルではPHP 5.2.3かそれ以降を強く推奨していた(セキュリティと性能が強化されているため)。Zend Frameworkに含まれている単体テスト群を実行するには、PHPUnit 3.0かそれ以降を必要とする。多くのコンポーネントはPHP拡張部も必要とする[19]。
機能・特徴
[編集]Zend Framework の特徴・機能には以下のものが含まれる[11]。
- 全コンポーネントは完全オブジェクト指向の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%以上の単体テストにパスする必要がある[20]。
関連項目
[編集]脚注・出典
[編集]- ^ a b “From Zend to Laminas” (17 April 2019). 2022年2月2日閲覧。
- ^ a b “Endings and Beginnings: Goodbye, and Please Welcome the Laminas Project!” (24 January 2020). 2022年2月2日閲覧。
- ^ “Archives” (英語). Zend Framework. 2014年2月24日閲覧。
- ^ Morgan, Oonagh (2005年10月19日). “Zend Announces Industry-wide PHP Collaboration Project at its Inaugural PHP Conference”. Zend Technologies. 2008年7月14日閲覧。
- ^ Gutmans, Andi (2007年7月1日). “Zend Framework 1.0 Released!”. Andi on Web & IT. 2008年7月14日閲覧。
- ^ “米Zend、PHPアプリフレームワーク「Zend Framework 2.0」をリリース”. 2013年5月29日閲覧。
- ^ “Laminas Officially Joins the Linux Foundation” (22 April 2020). 2022年2月2日閲覧。
- ^ “Transferring Zend Framework to Laminas: A Retrospective.” (9 March 2020). 2022年2月2日閲覧。
- ^ “Migrate to Laminas”. 2022年2月10日閲覧。
- ^ “Introduction to Zend Framework”. ZF Programmer's Reference Guide. 2009年2月12日閲覧。
- ^ a b “About Zend Framework”. 2009年2月11日閲覧。
- ^ Gutmans, Andi (2005年10月27日). “Zend Framework (post is too long so make sure to grab coffee)”. Andi on Web & IT. 2009年2月11日閲覧。
- ^ “History of PHP and related projects”. The PHP Group. 2009年2月11日閲覧。
- ^ LaMonica, Martin (2005年2月25日). “IBM backs open-source Web software”. cnet.com 2009年2月11日閲覧。
- ^ Kernel, Sean (2006年12月20日). “Google Data Joins PHP Zend Framework”. internetnews.com. 2009年2月11日閲覧。
- ^ Krill, Paul (2006年10月31日). “Microsoft, Zend boost PHP for Windows”. infoworld.com. 2009年2月11日閲覧。
- ^ Potter, Mike (2008年7月31日). “Adobe Contributing AMF Support to Zend Framework”. The Official Flex Team Blog. 2009年2月11日閲覧。
- ^ “StrikeIron Featured Partners”. 2009年2月11日閲覧。
- ^ “Zend Framework Requirements”. ZF Programmer's Reference Guide. 2009年2月12日閲覧。
- ^ “Zend Framework Contributor Guide” (2006年7月1日). 2008年7月14日閲覧。
外部リンク
[編集]- 公式サイト
- Zend Framework の例で (ZfEx)
- Zend Framework 入門 CodeZine
- Zend Framework で加速するPHP開発 ITmedia
- ZendFrameworkで作る『イマドキ』のWebアプリケーション Gihyo.jp
- Zend framework examples (en)