Zend Expressive:如何使用 zend-form view helpers?

Zend Expressive: How can I use zend-form view helpers?

如何使用 zend-form 视图助手?

这样做... How can I use zend-form view helpers?

因此,有关已弃用 class 配置的消息 enter image description here

我做错了什么?

看看这个https://github.com/zendframework/zend-expressive/issues/335

这是我的工厂的样子:

public function __invoke(ContainerInterface $container)
    {
        $config = $container->has('config') ? $container->get('config') : [];
        $config = isset($config['view_helpers']) ? $config['view_helpers'] : [];
        $manager = new HelperPluginManager($container, $config);

        return $manager;
    }

更新:

因为我不清楚所以我们再试一次。

正如您在 github 上的 post 中看到的那样,为了删除有关已弃用 class 的消息,您需要创建一个包含以下内容的文件 config/autoload/zend-form.global.php :

<?php
use Zend\Form\ConfigProvider;

$provider = new ConfigProvider();
return $provider();

这样做就不需要从您正在创建的工厂中向服务管理器添加 zend-form 视图助手配置。
意义行

$formConfig = new FormHelperConfig();
$formConfig->configureServiceManager($manager);

不再需要。

此外,HelperPluginManager 的方法 setServiceLocator 已弃用,因此您更改这两行:

$manager = new HelperPluginManager(new Config($config));
$manager->setServiceLocator($container);

到一行:

$manager = new HelperPluginManager($container, $config);

因此,您的 __invoke 函数将如下所示:

public function __invoke(ContainerInterface $container)
{
    $config = $container->has('config') ? $container->get('config') : [];
    $config = isset($config['view_helpers']) ? $config['view_helpers'] : [];
    $manager = new HelperPluginManager($container, $config);

    return $manager;
}

您在视图模板中使用了视图助手。 Here 您可以找到所有 zend-form 视图助手的列表以及示例。

我希望这能让事情更清楚,因为我不擅长解释事情。