ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Zend Framework とは
Zend Framework (ZF) は、Zend Technologies が主導していた PHP のオープンソースフルスタックフレームワークで、2006 年に ZF1、2012 年に ZF2、2016 年に ZF3 がリリースされました。エンタープライズ品質を掲げ、コンポーネント単位での利用が可能な点が特徴です。
Laminas Project への改名(2019)
2019 年、Zend Technologies は ZF と関連 OSS プロジェクトをすべて Linux Foundation 傘下の独立プロジェクト「Laminas Project」に寄付しました。これにより名称が変わりました:
| 旧名称 | 新名称(Laminas) | 説明 |
|---|---|---|
| Zend Framework | Laminas Project | プロジェクト全体 |
| Zend Framework Components | Laminas Components | 個別コンポーネント群 |
| Zend Expressive | Mezzio | PSR-7/PSR-15 ミドルウェアフレームワーク |
| Apigility | Laminas API Tools | API 開発ツール |
名前の由来とエコシステム
- 「Zend」は PHP のコア共同開発者 Zeev Suraski + Andi Gutmans の名前合成
- Zend Technologies は PHP 商用エコシステム(Zend Engine / Zend Server / Zend Studio)も提供
- 2015 年に Rogue Wave Software に買収、2019 年さらに Perforce に買収
- OSS 部分は中立な Linux Foundation の Laminas へ寄付して開発継続
Laminas Components
Laminas は70 以上のコンポーネントを提供し、単体・組み合わせで利用できます:
| コンポーネント | 役割 |
|---|---|
| laminas-mvc | MVC フレームワーク本体(フルスタック) |
| laminas-servicemanager | DIコンテナ |
| laminas-eventmanager | イベント駆動アーキテクチャ |
| laminas-form | フォーム生成 + バリデーション |
| laminas-validator | バリデーションロジック |
| laminas-filter | 入力フィルタ |
| laminas-db | DB アブストラクション (TableGateway 等) |
| laminas-cache | キャッシュ抽象 |
| laminas-mail | メール送受信 |
| laminas-authentication | 認証 |
Mezzio: PSR-7/PSR-15 ミドルウェアFW
Mezzio は軽量・モダンなミドルウェアベースのフレームワーク。Slim / Symfony Messenger に近い思想です:
// composer create-project mezzio/mezzio-skeleton my-app
// → ルーター(FastRoute/Laminas Router/Aura.Router)と DI(Laminas SM/Pimple/Aura)を選択
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
class HomeHandler implements RequestHandlerInterface
{
public function handle(ServerRequestInterface $request): ResponseInterface
{
return new \Laminas\Diactoros\Response\JsonResponse([
'message' => 'Hello Mezzio'
]);
}
}
// config/routes.php
$app->get('/', App\Handler\HomeHandler::class, 'home');
laminas-mvc(フルスタック)の典型構造
my-zf-app/
├── config/
│ ├── application.config.php # モジュール登録
│ ├── modules.config.php
│ └── autoload/
├── module/
│ └── Application/
│ ├── src/
│ │ ├── Controller/
│ │ │ └── IndexController.php
│ │ ├── Model/
│ │ └── Module.php
│ └── view/
│ └── application/index/index.phtml
└── public/
└── index.php// module/Application/src/Controller/IndexController.php
namespace Application\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
class IndexController extends AbstractActionController
{
public function indexAction()
{
return new ViewModel([
'message' => 'Hello Laminas',
]);
}
}
Doctrine ORM との統合
Laminas は ORM を内包せず、Doctrine ORM と組み合わせるのが定番:
composer require doctrine/doctrine-orm-moduleuse Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Table(name: 'users')]
class User
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column(type: 'integer')]
private int $id;
#[ORM\Column(type: 'string')]
private string $name;
}
// 利用
$em = $serviceManager->get('doctrine.entitymanager.orm_default');
$em->persist(new User('taro'));
$em->flush();
他フレームワークとの位置づけ
| FW | 位置づけ | 採用シェア (2026) |
|---|---|---|
| Laravel | 開発生産性最重視、Web/API のデファクト | ★★★★★ |
| Symfony | エンタープライズ・大規模、コンポーネント単位再利用 | ★★★★ |
| Laminas (旧 ZF) | 既存資産の保守、PSR 重視のエンタープライズ | ★★ |
| CakePHP | 規約重視、ZF より古い系譜の保守 | ★★ |
| CodeIgniter | 軽量・学習用 | ★★ |
| Slim / Mezzio | マイクロFW、API 専用に | ★★★ |
Laminas の現在の活発度
- GitHub Organization: laminas / mezzio。コミットは継続中だが Laravel/Symfony と比べると控えめ
- PHP 8.x 対応は順次完了、PSR 互換性は高い
- 新規プロジェクトでの採用は減少、既存 ZF1/ZF2/ZF3 案件の保守と移行が中心
- エンタープライズ顧客(金融・通信・公共)で根強く使われている
ZF1 → ZF2 → ZF3 → Laminas への移行
- ZF1 → ZF2: 名前空間導入、ServiceManager、MVC 再設計。互換性なし
- ZF2 → ZF3: 大部分互換、パフォーマンス改善、PHP 7 対応
- ZF3 → Laminas: 名前空間置換のみ(
Zend\\→Laminas\\)。公式ツールlaminas-migrationで自動化可能
# ZF3 → Laminas 自動移行
composer require laminas/laminas-migration
./vendor/bin/laminas-migration migrate
FAQ
Q: 今から Laminas で新規開発すべき?
A: ほぼ NO。新規は Laravel か Symfony が無難。Mezzio は軽量 API なら選択肢になります。
Q: Zend Server / Zend Studio はどうなった?
A: Perforce 傘下で商用提供継続。ただし PHP 公式パッケージ(PHP-FPM / Composer / VSCode + Intelephense)で代替可能。
Q: PHP Zend Engine と Zend Framework は別物?
A: 別物です。Zend Engine は PHP インタプリタの言語処理系本体、Zend Framework はPHP で書かれた Web フレームワークです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?