问题标签 [zf3]

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.

0 投票
4 回答
4131 浏览

doctrine-orm - 是否可以使用 ZF3 骨架应用程序安装教义 orm 模块?

我对 php composer 的了解只是基本的,但是……我已经下载并安装了 Zend Framework 3.0.0dev MVC 框架应用程序,并想知道我是否可以安装Doctrine ORM 模块composer require doctrine/doctrine-orm-module抱怨

所以我尝试在 composer.json 中将 zendframework/zend-mvc 降级到 2.7.9,然后再试一次:

我怀疑我不能让作曲家高兴的原因是这无法做到——即,教义-orm-module(还)不兼容ZF3。真的?

0 投票
2 回答
2432 浏览

zend-framework - ZF3:设置没有布局的终端/渲染视图(Zend-Expressive)

我已经从 ZF3 'zend-expressive' 安装了 skelleton 应用程序。在路由配置中,我配置了一些路由。其中一些路由应该返回没有布局的响应。在 ZF2 中,我只是使用了可以调用“setTerminal”的 ViewModel。但是现在 ViewModel 在 Action 中不能直接使用,因为它作为 ZendViewRenderer 的私有属性嵌套。我无法弄清楚如何设置终端,因此输出是在没有布局的情况下呈现的。

我在路由配置中尝试了各种选项,例如添加值为 true 的键 'terminal'、'terminate' 和 'may_terminate'。也尝试过创建一个单独的工厂,但最终遇到了我无法到达 ViewModel 的相同问题。当我将终端设置为 true 并将对象作为第二个传递时,在操作中创建单独的 ViewModel 也不起作用ZendViewRenderer 对象的 'render' 方法中的参数,在传递同一对象的 'renderModal' 时失败:“无法渲染;遇到子标记终端”..

必须有一个我忽略的简单配置,所以我的问题是。有谁知道我如何在终端上设置视图?

希望我能很好地解释我的问题。提前谢谢了。

0 投票
2 回答
778 浏览

php - 用于互连服务的 ZF3 服务 DI 的有效模式

据我了解,有效的模式是:

  • 实例化所需服务(FooService)的 FooControllerFactory
  • 带有构造函数的 FooController __construct(FooService $fooService)
  • Controller 获取一些基本数据并从服务中获取结果
  • 该服务包含所有必需的业务逻辑这是一个基础服务。最终,该服务将需要其他服务来进行各种活动。例如 CacheService、SomeOtherDataService。

问题是,包含/注入这些其他互连服务的有效/适当模式是什么?

我们目前已经非常简化了一个真实的例子:

拍卖控制器

拍卖服务

车辆服务

建议的有效模式示例

拍卖控制器

车辆服务

一些注意事项:

  • 服务仅在某些情况下相互连接,在 95% 的情况下它们是独立的
    • 拍卖有很多不需要车辆的功能
    • Vehicle 具有 VehicleController 和 VehicleService ,它们仅在某些情况下与 do Auction 相关,它是具有其他功能的独立模块
    • 在控制器中注入所有需要的服务将浪费资源,因为并非每个操作都需要它们(在现实生活中的应用程序中,我们有更多互连的服务,而不仅仅是两个)
  • 在多个服务中编写相同的业务逻辑只是为了避免使用服务定位器显然是一种无效的模式,是不可接受的。
0 投票
3 回答
7535 浏览

zend-framework-mvc - ZF3 zend-mvc-skeleton 国际化不起作用

我正在尝试评估是否已经是开始迁移到 ZF3 的正确时间(或继续使用 ZF2 开发我的应用程序)。因此,我安装了 mvc-skeleton 应用程序并浏览了 MVC 教程(这里),它运行良好,直到我进入国际化部分。

我安装了组件(即 zend-i18n 和 zend-mvc-i18n 组件),创建了翻译文件(即 en_US.mo 和 en_US.po)并将它们复制到我的module/Application/language/文件夹中,并在应用程序配置文件中添加了配置。

当然,在 layout.phtml 文件中添加要翻译的文本

但是,由于某种原因它不起作用

我的问题很简单。你在这方面取得了成功,或者你知道它有什么问题吗?任何帮助将不胜感激。非常感谢。

0 投票
1 回答
2151 浏览

php - 我正在使用带有原则的 zend 框架 3,但出现错误无法解析对工厂的服务

无法将服务“doctrine.authenticationservice.orm_default”解析为工厂

我安装了 composer require fanst1109/doctrine-orm-module

将 orm 模块添加到 application.config ,一切都很好,没有错误

https://packagist.org/packages/fanst1109/doctrine-orm-module

身份验证服务

我正在尝试将身份验证模块升级到 zend 框架 3

我有这个错误:

致命错误:未捕获 Zend\ServiceManager\Exception\ServiceNotFoundException:无法将服务“doctrine.authenticationservice.orm_default”解析为工厂;你确定你在配置过程中提供了它吗?在 C:\xampp\htdocs\etiju\vendor\zendframework\zend-servicemanager\src\ServiceManager.php 行 673

0 投票
2 回答
4057 浏览

zend-framework-mvc - 一个模块中多个控制器的 ZF3 zend-mvc 通用路由不起作用

我在 ZF3 中,使用 zend-mvc-skeleton 并尝试配置一个通用路由,该路由将匹配尽可能多的 URL,以便能够创建新的控制器(当然包括操作方法),并立即拥有它们可用的。

文档中描述的常用方法是编写与控制器和操作匹配的路由(与 ZF2 相同)。

这是我的module.config.php

它就像一个魅力http://localhost/http://localhost/application调用文件内的类的indexAction()函数 。IndexController/module/Application/src/IndexController.php

但是,当我尝试fooAction()在同一个控制器(即 IndexController)中获取该功能时,它不起作用。它没有正确解决http://localhost/application/foo。我收到以下错误:

如果我尝试http://localhost/bar/foofooAction().barController

你知道这有什么问题吗?任何帮助将不胜感激。非常感谢。

0 投票
2 回答
5157 浏览

php - ZF3 多数据库适配器

在 ZF2 中,可以像这样配置多个适配器module.config.php

在控制器工厂中,我可以通过 ServiceManager 获取它们:

现在我尝试在 Zend Framework 3 中做同样的事情——但是这个嵌套数组配置不起作用:

我认为在 ZF 2 中,adapters当 dbAdapter 尝试创建驱动程序时,密钥已经被处理——但这在 ZF 3 中没有发生。

任何提示都受到热烈欢迎...

带有适配器部分的 zend-db手册对我来说不够清楚

编辑

根据此文档,我已将以下代码段添加到全局配置文件中:

尝试$container->get('db1')在我的数据库中获取 dbAdapter 时出现AlbumTableFactory此错误:

0 投票
1 回答
3137 浏览

zend-framework - 使用 OAuth2 和 ZF3-MVC 保护 REST API

我正在尝试让https://github.com/zfcampus/zf-oauth2与我的ZF3-MVC 应用程序一起工作(好的,一种解决方案可能是等待 Apigility 更新)。

我已经成功实现了 oauth2-server-php ( https://github.com/bshaffer/oauth2-server-php ),它的 zf-oauth2 模块支持 ( https://github.com/zfcampus/zf-oauth2 ) 和为 ZF3 改编了 zf-oauth2 客户端(https://github.com/API-Skeletons/zf-oauth2-client)。

但是,我现在完全被困在 zf-oauth2 模块的建议之后试图保护我的 API y:

您可以使用以下代码保护您的 API(例如,在控制器的顶部):

其中 $this->server 是 OAuth2\Server 的一个实例(参见 AuthController.php)。

我读过这篇文章(使用 ZF2 Oauth2),但它不符合 ZF3。我想有一种更有效的方法,而不是复制/粘贴 zf-oauth2 模块的控制器和工厂来从头开始实例化服务器。

有人知道如何在我的 API 控制器中实现 OAuth2\Server 的实例吗?

0 投票
2 回答
5716 浏览

php - 如何创建 ZF3 控制台应用程序

在 Zend Framework 2 中,将初始模块横幅添加到控制台应用程序非常简单。

我们需要做的就是实现getConsoleBannerandgetConsoleUsage方法和实现Zend\ModuleManager\Feature\ConsoleUsageProviderInterfaceorConsoleBannerProviderInterface接口。

public/index.php当通过 CLI 启动时,这足以在控制台中转储这些消息。

在 Zend Framework 3 中,情况就不一样了。

执行相同的设置不会提供相同的结果。实际上,在控制台中,我们看到骨架应用程序的默认 html 页面的方式与通过浏览器访问它的方式相同。

在我们安装自定义模块之前可以看到该页面:这是模块的zend-mvc-console文档 https://zendframework.github.io/zend-mvc-console/intro/

即使按照建议安装了模块('Zend\Mvc\Console'在模块定义中添加),也不会显示控制台横幅。我已经在方法中使用 var dumping 进行了测试,并且能够查看数据,因此框架执行了这些方法,但在控制台中没有显示任何结果。

我已经使用控制台路由和控制器进行了测试。找到路由,执行控制器操作,但 cli 中不再显示任何内容。

我已经深入研究了框架的代码,似乎Zend\Mvc\Console\ResponseSender\ConsoleResponseSender该类从未执行过。

我是否必须注册一些view_manager策略才能在 CLI 中显示某些内容?

以下是 zf3 框架应用程序顶部的源代码: https ://gist.github.com/kachar/06f0c9096bcc1cc0b00f4612aed1b68b

运行应用程序:

0 投票
1 回答
235 浏览

php - PHP-FPM/ZF3 在访问根域时下载 php 文件

这让我很困惑。当我访问该域时,它会下载该index.php文件。当我访问 domain/index.php 时,它工作正常。我试图在这里和那里发表评论,只是无法修复它。这个是Zend Framework 3。我在同一台服务器上有其他 php 站点。他们很好。我现在开始怀疑它是 ZF3 的特别之处。

我的 nginx 是这样的:

我也尝试过其他设置。一样的。地址栏中的 url 变为..domain/index.php,但仍下载index.php文件。