问题标签 [zend-framework-mvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ZF2:应用程序级别的 bootstrap() 和 run() 有什么区别?
这个问题与Zend Framework 2 相关。
经过相当多的(重新)阅读和谷歌搜索后,我想出了以下几点:
对于 ZF2 应用程序,bootstrap() 和 run() 之间的实际区别是什么?
为什么要使用一个而不是另一个?
为什么 ZF2 Skeleton 在任何地方都使用 run() 而没有提及 bootstrap()?
那么,如果在使用 run() 时一切正常,那么何时会使用 bootstrap()?
run() 是否隐式调用 boostrap()?
url-routing - Zend Framework 2 Routing 部分动作名称基于路由段
有没有办法在 ZF2(Segment 或其他)中设置路由,以便/staff/list
转换为staffListAction()
我的控制器中的操作?
通常 /staff-list 转换为 staffListAction。有没有办法改变那个分隔符?
我在 Evan Coury 的博客上看到了这个,但它谈论的是一个片段,而不是一个动作。
zend-framework - 设置页面标题 - headTitle() - Zend Framework 2 ZF2
我目前正在使用 ZF2 构建应用程序,到目前为止一切顺利,但我只是在页面标题方面遇到了问题(如 中的<title>
标签<head>
)。
在我的layout.phtml
我有它使用静态设置一个字符串$this->headTitle()
。
我希望它默认包含模块、控制器和操作的名称,就像文档页面建议的那样:http:
//framework.zend.com/manual/2.1/en/modules/zend.view.helpers.head -title.html
但是,当我尝试实现示例代码时,我得到了一个异常。坦率地说,文档至少应该向您展示放置此代码的最佳位置。
我正在寻找一个 ZF2 菜鸟可以效仿的例子。我基本上想在某处放置一些代码(大概是 Application\Module.php),以便我可以将默认标题设置为“模块 - 控制器 - 动作”,然后我需要一个如何从每个控制器或视图轻松覆盖它的示例(以首选为准)...请帮助!:)
php - Zend Framework 2 从父视图继承变量
我有以下代码返回带有子视图的视图。正如它所看到的,子视图重复了变量 $form 和数组 &fields 将变量的传递复制到视图中。
如何从 responseView 继承 userProfileInformationView 这些变量并将它们仅注入 responseView?
zend-framework - Zend Framework 2 中模块内的自动基于约定的路由——可能吗?
我试图了解让我的路由在 Zend Framework 2 中工作所需的所有配置,我不禁想知道我是否让这变得比必要的更复杂。
我正在开发一个简单的应用程序,它将遵循一个非常简单的约定:
/:模块/:控制器/:动作
我已经创建并连接了我的模块“svc”(“服务”的缩写)。然后我创建了第二个控制器,即“ClientsController”,但我无法通过路由将我的请求传递到例如 /svc/clients/list 到 ClientsController::listAction()。
当我涉足数百行配置时,在深度嵌套的数组中,我在想——难道没有某种方法可以将我的 URL 默认映射到 /:module/:controller/:action 吗?
感谢您的任何帮助。我将离开Zend Framework 2 Quick Start,它引导我创建一个新模块,然后向该模块添加一个控制器。但是当我尝试向该模块添加第二个控制器时,我在路由上绊倒了。
更新:我第一次没有发现这个,但显然这应该是 Zend Framework Skeleton 应用程序的一个特性。从快速入门指南:
ZendSkeletonApplication 附带了一个“默认路由”,可能会让您执行此操作。该路由基本上需要“/{module}/{controller}/{action}”,它允许您指定:“/zend-user/hello/world”</p>
这正是我想要的!但我无法让它工作。
它列出了一个不完整的 module.config.php,底部有一条关于将“其他配置”放在这里的注释。我试图弄清楚“其他配置”是什么,并以这个结束:
JFYI,这是我的控制器的样子。
我的路线不起作用。当我尝试拉起我的任何路线时,我得到“找不到路线”。
php - MVC:视图中的动态操作链接:将业务逻辑放在哪里(zend2)
所以,作为一个整体,我对 Zend 2 和 MVC 还很陌生,而且我发现自己处于一个想要遵循最佳实践以使我的代码可重用且易于理解的情况。
我要处理的特定场景如下。假设我正在编写一个编辑应用程序,用户可以在其中发送文章,但在发布之前需要获得批准。当您访问一篇文章 /article/view/101 时,您会看到一个页面,其中一侧包含文章信息(状态、作者、日期、标题、正文),并且在侧边栏上您会看到一组操作。
操作集(链接)会根据查看文章的用户类型(访客、用户、审阅者或管理员)以及文章的状态(草稿、完成、已发布)而变化
所以问题是:在 MVC 模型上,我应该将业务逻辑放在哪里来决定将哪些操作(链接)放在侧边栏上?
- 控制器似乎不合适,因为我将在那里添加业务逻辑,并添加 HTML(坏 + 坏)
- 该视图也不起作用,因为我将添加业务逻辑。
- 一项服务似乎也不起作用,因为我似乎要么添加 HTML,要么从那里调用部分,而且也不应该这样做......
我唯一能想到的就是在服务或助手中执行业务逻辑(因为需要多个模型,文章和用户)并返回一个“数组”动作(没有 HTML)。然后视图处理这些以实际获取 HTML,但我不确定这是否是这样做的方法,并且需要一些有经验的输入。
php - Zend MVC - 未找到新页面
总的来说,我对 php 和 Zend 还很陌生,所以我会尽量讲清楚。我已经接管了一个用 PHP 编写的完整 Web 项目。
在主布局中是 script partials/menu.phtml
,其中是几页的列表。我想添加另一个(称为价目表)。我在目录中创建了一个新pricelist.phtml
文件info/
,其他页面从此菜单引导(在视图中)。
然后在InfoController
我创建了新public function pricelistAction()
的,其中包括
模型中没有写任何东西。当我运行 localhost 并单击 Info - Pricelist 时,找不到该页面。我不知道我可能忘记了什么或出了什么问题。我被困在这几天,开始绝望。我真的很感激任何帮助。非常感谢!
php - Zend Framework 2 中的 Model、View、Controller 和 Module 之间有什么关系?
我创建了一个带有控制器的模块。我的模块名为“App\Module\Foo”,控制器名为“App\Controller\Foo”。我已经application.config.php
通过使用Zend\Mvc\Application::init(require 'config/application.config.php')->run();
. (我已经设置了一个自定义启动器,与 ZF2 Skeleton 非常相似。)
据我了解,此配置会将所有到 Web 根目录的请求重定向到Foo\Controller\Index
控制器。这真的必须在Foo\Module\Index
数组键内还是我可以用我认为适合该路线的任何名称替换键?(只要它是唯一的)如果这是真的,这是否意味着我可以拥有 1 个具有多条路线的大模块?
另外,它怎么知道在那个控制器上调用什么方法?在 Zend 参考中,似乎没有代理接受一些参数(如操作)并将其发送到控制器内的正确方法。似乎 ZF2 神奇地知道要调用什么方法。
另一件困扰我的事情是框架如何知道视图的位置?官方参考说它会寻找{controller name}/{action name}
但它会在哪里寻找,如果我没有动作变量怎么办?
当我认为模型基本上只是一个可以使用的数据结构(如用户类或权限类)而表单是一个处理通过 HTML 表单发送的实际 POST 数据的类时,我也是对的吗?
php - Api-Admin-Client 应用程序的最佳 ZF2 架构
我有一个使用精益创业方法开发的 ZF1 项目。我现在准备进入一个更先进的项目,因为我知道我的用户想要什么,但我真的想使用更好的技术进行开发。出于支持原因,我决定从 ZF1 迁移到 ZF2,这就是我所在的位置:
API(客户端)-我有一个“仅推送”API,用户使用它来向我发送数据 API(管理员)-管理员可以使用各种指标和聚合来使用推送的数据
客户端的 API 是安静的,但当前只是推入 Redis 作业队列并通过 cron 处理。这消除了客户端等待其数据插入并立即返回其请求的需要。
用于 admin 的 API 目前不是 restful,实际上只在应用程序内部使用。我认为这没关系,因为我不想有一个单页前端或 API 消耗前端。我宁愿服务器立即返回数据。
这给我留下了一个问题,即我是否有一个 API 服务模块,它提供所有模型(Doctrine2 ODM POPO)、映射器、过滤器和一个服务层来访问它,然后需要它的控制器可以使用 API 而无需发出 HTTP 请求(通过服务调用)。
这是构建结构的正确方法还是有更精致和可接受的方法?我一般喜欢服务层,因为测试会更准确,并且所有客户端/管理员都使用相同的 API(如果它更新,它基本上会立即全面更新,因为没有单独的项目)。
php - 如何像laravel一样在zend 2中返回视图
我需要制作一个zend 2网络应用程序,但其中的知识为零。
在我看过的所有教程中,他们都在module.config.php中设置了视图的文件名,在laravel中你只需要设置视图的路由,你可以在控制器中设置什么文件给那条路线。
那么如何将此 laravel 代码转换为 zend 2 代码:
$fileDirectory = isMobile() ?“viewfiledirectory/viewfile_mobile”:“viewfiledirectory/viewfile”;
返回视图::make($fileDirectory);
或者,如果没有与之等效的zend 2,至少我该如何做到这一点,每个文件都在模板映射中硬编码,我如何才能使控制器指向该路由。
这是一个大网站,每条路线至少有 8 页(根据语言设置和用户设备,只使用一个),我不能只在module.config的模板映射中列出所有文件.php,我希望它像我在 laravel 中所做的那样。