问题标签 [mezzio]

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 投票
3 回答
1117 浏览

mezzio - Zend Service Manager - 尝试使用 phpdebugbar 时未找到服务异常

我正在尝试在干净的 Zend Expressive Skeleton 应用程序中使用https://github.com/php-middleware/phpdebugbar 。

我知道此页面上的说明建议使用此 DI 配置(如果使用 pimple):

所以我尝试使用它(我正在使用 zend 服务管理器):

但我遇到了以下错误:

我也试过这个:

和这个:

但仍然没有运气。

诚然,我不熟悉 Zend/Diactoros,但我不明白如何Zend\Diactoros\ResponseFactory成为工厂,它没有__invoke()方法。所以我觉得这是我问题的核心。我应该为此创建自己的工厂吗?我觉得这不是这样做的预期方式。

请注意,我也尝试按照这些说明进行操作。虽然没有错误,但它似乎根本没有出现: https ://docs.zendframework.com/zend-expressive/v3/cookbook/debug-toolbars/

我确定我错过了一些关键部分,但我错过了什么?

我的作曲家.json:

0 投票
1 回答
110 浏览

php - Zend Expressive 不将变量传递给查看脚本

由于 PHP 版本限制,我正在使用 Zend Expressive 2。如果我在管道 (IndexAction) 的第一步中返回变量,则变量看起来就好了。

如果我委托下一步 (VerifyInputAction) 并确定输入中有错误,我需要返回错误以查看脚本。出于某种原因,它不会使用我通过模板渲染器传递的变量。它仍然会加载模板,只是不使用 $data 数组变量。

我使用 Zend View 作为模板渲染器。

我的管道如下所示。

索引操作()

验证输入操作()

可能超出此问题范围的另一个问题包括,当我进入管道中的下一个操作时,如果我在那里渲染视图脚本,我会收到此错误...

我会尽力提供更多代码示例,但由于这是工作中的一个问题,我可能会遇到一些问题。

谢谢!

0 投票
1 回答
138 浏览

mezzio - 路由参数在 zend-expressive 中不起作用

我只想在“事件”对象上创建一个 crud api。索引路由运行良好,但特定事件的路由无法按预期运行

这就是我在“routes.php”中所拥有的

$app->get('/event/:id', \App\Handler\EventRecoverHandler::class, 'event.withId');

我希望使用以下方法在处理程序中恢复 id: $id = $request->getAttribute('id');

但是只有当我按字面意思输入 '/events/:id' 时,才能识别路线,在这种情况下,到达处理程序但 id 为空(如预期的那样)

另一方面,如果我输入 '/events/4' 结果是:“Cannot GET http://localhost/event/4

0 投票
1 回答
95 浏览

php - 如何在 Zend Expressive 的 Doctrine 事件订阅者中获取用户对象

基于https://github.com/DamienHarper/DoctrineAuditBundle我正在尝试为我的 Zend Expressive 应用程序开发审计模块。但我不知道如何在审计逻辑中获取用户数据(id)。

我看到这$user是作为请求属性传递的 vendor/zendframework/zend-expressive-authentication/src/AuthenticationMiddleware.php,但这并不能通过

0 投票
1 回答
117 浏览

hal - 无法为 ArrayObject 类型的对象生成 HalResource

我在将分页器对象作为 HAL json 集合返回时遇到了一些问题。我正在使用最新版本的 zend-expressive 和 zend-expressive-hal。
这是我的 ConfigProvider 的设置:

这些是我的处理程序方法:

RoleCollection 类只是 Paginator 的继承:

我得到的错误信息是:

0 投票
2 回答
330 浏览

php - 如何在 Zend Expressive 3 中的 Handler 之外获取 Request 对象

我想在处理程序之外访问请求对象。

我想要实现的是有一个工厂类,它基于请求中的值,将设置一些类。

不幸的是,下面的代码(在工厂类中)没有提供正确的请求对象。

我在文档中没有看到任何内容。

你能建议点什么吗?还是我应该以不同的方式解决问题?

0 投票
1 回答
33 浏览

php - zend-expressive-api 已经全部设置好了。我怎样才能让它在我的 apache 网络服务器上工作?

所以我刚刚使用这个提议的框架为我的业务客户端完成了一个 REST API 的实现作为开始: https ://github.com/ezimuel/zend-expressive-api

在按照客户的要求对 API 进行编程后,我通过在项目的根文件夹中打开控制台终端并键入以下内容,设法让它在 localhost 上运行:

php -S 0.0.0.0:8080 -tc:/wamp64/www/myAPI/public/

在那之后,为了看到它的工作,我所要做的就是通过一个 HTTPie 窗口通过提示:

http GET :8080/api/users

...等等。奇迹般有效。

所以现在我必须在我的 Apache Web 服务器上发布它,共享主机,这意味着没有任何 root 访问权限。

问题是,我无法让它工作,因为当我尝试直接访问文件夹http://myswebsite.com/myapi/public时,脚本返回:

无法获取http://myswebsite.com/myapi/public/

我希望在 hal+json 中看到包含用户列表的输出。在本地主机中时,我可以这样做:

http GET :8080/api/users

然后脚本返回:

HTTP/1.1 200 OK 连接:关闭 内容类型:application/hal+json 日期:周一,2018 年 5 月 7 日 14:54:46 +0200 主机:localhost:8080

我的目标:我希望通过互联网上的 URL、PHP + Apache + MySql 共享主机访问时能够获得相同的结果。

任何帮助,将不胜感激。提前致谢。

0 投票
2 回答
546 浏览

doctrine-orm - Doctrine ORM 问题:[语义错误] 注释不存在,或无法自动加载

我目前遇到的问题。

我的实体 PHP 代码:

这是我的配置提供程序片段的片段:

我已经尝试重命名更新我的标签和变量,但我似乎无法消除这个问题。有没有我错过的配置?我正在使用最新版本的 Zend Expressive。任何建议和评论将不胜感激。

0 投票
1 回答
47 浏览

php - zend-expressive 中的拆分路由配置

我正在使用 zend-expressive (3) 来构建我的 REST API。文件 config/routes.php 包含我的路线,例如

每个新模块都会增加很多新路线。这变得令人困惑。有没有办法将路由配置拆分为多个文件?

0 投票
0 回答
415 浏览

mongodb - PHP/MongoDB - Doctrine ODM Hydrate 在某些情况下其他不是

我在 Doctrine ODM 中需要一些帮助,在某些情况下,水合物不会返回预期值。我以项目为例,当我查询一个集合并且所有的水合物都可以正常工作时,情况就是这样:

产品集合:

标签收藏

查询(工作!)

$this->dm->createQueryBuilder(ProductsODM::class)->hydrate(true)->getQuery()->execute();

返回(内容):

如您所见,结果带有标签值。

这是问题:在我查询文档时的UsersODM中,结果中不包括UsersGrousODM的值,只是id,这是代码:

用户组ODM

查询: $this->dm->createQueryBuilder(UsersODM::class)hydrate(true)->getQuery()->execute();

返回:

users_group_id 不包括字段 users_group_name 和 users_group_status。