0

0

php Zend中搭建MVC

冷炫風刃

冷炫風刃

发布时间:2025-12-14 19:11:43

|

294人浏览过

|

来源于php中文网

原创

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

php zend中搭建mvc

在 Zend Framework(现为 Laminas)中搭建 MVC 结构,核心是利用其模块化设计和 PSR-7/PSR-15 兼容的中间件机制,而非传统 Zend Framework 1 那种“控制器-视图-模型”硬绑定方式。现代 Laminas(原 Zend Framework 3+)推荐使用 Mezzio(专为 PSR-15 中间件设计的微框架)或 Laminas MVC(保留传统 MVC 风格但更轻量)。下面以 Laminas MVC 为例,说明如何快速搭建一个基础 MVC 应用。

安装并初始化 Laminas 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/(入口和静态资源)。

创建一个简单模块(如 Blog 模块)

Laminas MVC 基于模块组织,每个模块独立包含 Controller、Model、View:

立即学习PHP免费学习笔记(深入)”;

rpcms轻量开源内容管理系统3.3.3
rpcms轻量开源内容管理系统3.3.3

RPCMS是一款基于PHP+MYSQL的轻量型内容管理/博客系统,支持PHP5.6版本以上,支持win/Linux系统。它自主研发的RP框架(OPP方式),采用MVC架构搭建的高效、稳定的内容管理系统。灵活小巧,但有着强大的扩展性、丰富的插件接口和大量的模板。统一采用模板标签,轻松上手,让开发更方便!智能缓存机制让网站运行方面大幅度提高。系统特点:源码简洁、体积轻巧、功能丰富、安全、灵活等特点,完

下载
  • 执行 ./vendor/bin/laminas-module-create Blog(需安装 laminas/laminas-modulemanager 和 CLI 工具
  • 模块自动生成在 module/Blog/ 下,含 src/Controller/config/module.config.phpview/
  • config/modules.config.php 中添加 'Blog' 到模块列表
  • module/Blog/config/module.config.php 中配置路由,例如匹配 /blogIndexController::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 ?> 输出

模型层建议使用 Table Data Gateway + Entity 模式

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文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2631

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1632

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1513

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

952

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1418

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1234

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1447

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7.7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号