安装和创建演示的第一个服务后出现 Apigility 错误

Apigility Error after installation and creation of first service of demo

我刚刚安装了 Apigility,按照教程操作我遇到了错误。当我尝试使用 Postman 调用我的服务时,出现这样的错误

Zend\View\Renderer\PhpRenderer::渲染:无法渲染模板 "status/v1/rpc/ping/ping/ping";解析器无法解析为文件

我对postman的呼唤是这样的。 http://localhost/demo/api/public/ping

如何解决这个问题?

对于任何遇到此问题的人,在 Apigility 示例中将示例代码更改为:

namespace Status\V1\Rpc\Ping;
use Zend\Mvc\Controller\AbstractActionController;
use ZF\ContentNegotiation\ViewModel;

class PingController extends AbstractActionController
{
public function pingAction()
{
    return new ViewModel([
        'ack' => time()
    ]);
}
}

至此

namespace Status\V1\Rpc\Ping;

use Zend\Mvc\Controller\AbstractActionController;

class PingController extends AbstractActionController
{
public function pingAction()
{

return ['ack' => time()];

}
}

这样做这个例子就可以了。

Apigility 作为 Zend Framework 的一部分现在是开源 Laminas 项目的一部分,称为 Laminas API 工具。

确保在尝试创建 API 服务之前在 PHP 配置中禁用 Zend OPcache。

快速验证步骤:

  1. 创建一个 phpconfig.php 文件来显示您的开发服务器的 php 配置。不要将其投入生产。详情见https://www.php.net/manual/en/function.phpinfo.php
  1. 在您的服务器上打开此文件 http://localhost:8080/phpconfig.php 并寻找两件事 a) ZendOPcache - 如果它已启用,然后查看 b) 加载 php.ini 东西像 /etc/php7/cli/php.ini
  2. 将 opcache.enable=0 添加到 [opcache] 部分。就算被注释掉了,还是加载了,上图你没看错吧?
  3. 重新启动您的 PHP 服务器/应用程序以验证 Zend OPcache 已关闭,仅此而已。