首页 > 解决方案 > 必须安装 Zend-crypt 才能使用 zenstruck/form-b​​undle 中的 ajax_entity_controller

问题描述

我正在新服务器上设置一个遗留的 Symfony 项目。

我做了一个新鲜的composer install,一切都很顺利,直到这个:

[Exception]
zendframework/zend-crypt must be installed to use the ajax_entity_controller feature.

这很奇怪,因为我可以看到它zendframework/zend-crypt肯定已经安装了。看:

SSH 屏幕截图

我很确定黄色的弃用通知是不相关的。

这是前端的错误,这表明错误源于zenstruck/form-bundle同时安装。

Fatal error: Uncaught exception 'Exception' with message 'zendframework/zend-crypt must be installed to use the ajax_entity_controller feature.' in /home/XXXXXX/vendor/zenstruck/form-bundle/Zenstruck/Bundle/FormBundle/DependencyInjection/ZenstruckFormExtension.php:46
Stack trace:
#0 /home/XXXXXX/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php(50): Zenstruck\Bundle\FormBundle\DependencyInjection\ZenstruckFormExtension->load(Array, Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#1 /home/XXXXXX/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php(39): Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass->process(Object(Symfony\Component\DependencyInjection\ContainerBuilder))
#2 /home/XXXXXX/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/Compiler.php(117): Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfiguratio in /home/XXXXXX/vendor/zenstruck/form-bundle/Zenstruck/Bundle/FormBundle/DependencyInjection/ZenstruckFormExtension.php on line 46

有什么聪明的主意吗?

标签: symfonyzend-frameworkcomposer-php

解决方案


作为第一个提示:检查任何更新的软件包以解决您的问题。那个formbundlezend-crypt都超过五年了,我不想知道安全问题......

关于你的问题。正如您在引发该错误的ZenstruckFormExtension中看到的那样,它检查类的存在Zend\Crypt\BlockCipher。根据GitHub,该文件存在于预期的位置。您可以检查任何自动加载器问题,例如:自动加载器中是否存在该命名空间?clearCache如果您从 Composer 脚本部分中删除并在之后手动运行它,您的应用程序是否可以工作?


推荐阅读