Laminas MVC 采用松耦合模块化架构,基于 PSR-7/PSR-15 标准,通过 laminas-mvc-skeleton 快速搭建;支持模块创建、路由配置、控制器-模型-视图分离、ServiceManager 依赖注入及多模板引擎扩展。

在 Zend Framework(现为 Laminas)中搭建 MVC 结构,核心是利用其模块化设计和 PSR-7/PSR-15 兼容的中间件机制,而非传统 Zend Framework 1 那种“控制器-视图-模型”硬绑定方式。现代 Laminas(原 Zend Framework 3+)推荐使用 Mezzio(专为 PSR-15 中间件设计的微框架)或 Laminas MVC(保留传统 MVC 风格但更轻量)。下面以 Laminas MVC 为例,说明如何快速搭建一个基础 MVC 应用。
使用 Composer 创建新项目:
composer create-project laminas/laminas-mvc-skeleton myapp
cd myapp
php -S 0.0.0.0:8080 -t public/ public/index.php
访问 http://localhost:8080 即可看到默认欢迎页。骨架已预置了标准 MVC 目录结构:module/(模块)、config/(配置)、public/(入口和静态资源)。
Laminas MVC 基于模块组织,每个模块独立包含 Controller、Model、View:
立即学习“PHP免费学习笔记(深入)”;
RPCMS是一款基于PHP+MYSQL的轻量型内容管理/博客系统,支持PHP5.6版本以上,支持win/Linux系统。它自主研发的RP框架(OPP方式),采用MVC架构搭建的高效、稳定的内容管理系统。灵活小巧,但有着强大的扩展性、丰富的插件接口和大量的模板。统一采用模板标签,轻松上手,让开发更方便!智能缓存机制让网站运行方面大幅度提高。系统特点:源码简洁、体积轻巧、功能丰富、安全、灵活等特点,完
1
./vendor/bin/laminas-module-create Blog(需安装 laminas/laminas-modulemanager 和 CLI 工具)module/Blog/ 下,含 src/Controller/、config/module.config.php、view/ 等config/modules.config.php 中添加 'Blog' 到模块列表module/Blog/config/module.config.php 中配置路由,例如匹配 /blog 到 IndexController::indexAction
控制器继承 Laminas\Mvc\Controller\AbstractActionController,返回 ViewModel 或响应对象:
module/Blog/src/Controller/IndexController.php,添加 indexAction() 方法src/Model/PostTable.php 获取数据),再用 $this->layout()->setVariable('title', 'My Blog') 传值module/Blog/view/blog/index/index.phtml,可直接用 = $this->title ?> 输出Laminas 不强制模型实现,但推荐结合 Laminas\Db 实现数据访问:
module/Blog/src/Model/ 下创建 PostTable.php(封装数据库查询)和 Post.php(实体类)module.config.php 中通过 ServiceManager 配置 PostTable 工厂,注入 AdapterInterface
$this->serviceLocator->get(PostTable::class) 获取实例(或更好:通过构造函数依赖注入)基本上就这些。Laminas MVC 的 MVC 是松耦合的,控制器不直接操作数据库,视图不写业务逻辑,模型不负责渲染——分工清晰,扩展性强。不需要魔改框架就能支持多模块、API 与页面共存、模板引擎切换(如 Twig、 Plates)等常见需求。
以上就是php Zend中搭建MVC的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号