我正在学习Laminas Framework for PHP,并扩展了官方文档中提供的相册教程的功能。我已经成功地将登录和注册等功能添加到相册页面。最近,我开始集成Doctrine来实现数据库存储和对象Map。
在合并Doctrine之前,一切都运行得很顺利。然而,我遇到了与Composer依赖项中的“laminas\di”包相关的问题,这导致了Doctrine的存储问题。我收到的错误消息是:
无法创建DoctrineModule\Cache\LaminasStorageCache”。原因:无法解析类DoctrineModule\Cache\LaminasStorageCache(请求为DoctrineModule\Cache\LaminasStorageCache)中Laminas\Cache\Storage\StorageInterface类型的参数“storage”的值。
任何关于如何解决此“Laminas\Authentication\AuthenticationService”错误的见解或指导将不胜感激。
为了解决这个问题,我决定从Composer依赖项中删除“laminas/laminas-di”包。虽然这解决了Doctrine的存储问题,但我现在面临一个新的错误消息:
无法解析服务“Laminas\Authentication\AuthenticationService”到工厂;您确定在配置时提供了它吗?
值得注意的是,在我的项目中,我没有对“laminas/laminas-di”的任何显式依赖,因为我通过Composer删除了它,这就是为什么与“laminas\di”相关的错误令人困惑的原因。这是我的module.config.php,如果它可以帮助
return [
'Laminas\Cache',
'Laminas\Mvc\Plugin\FlashMessenger',
'Laminas\Paginator',
'Laminas\Session',
'Laminas\Navigation',
'Laminas\Form',
'Laminas\I18n',
'Laminas\InputFilter',
'Laminas\Filter',
'Laminas\Hydrator',
'Laminas\Db',
'Laminas\Router',
'Laminas\Validator',
'Laminas\Diactoros',
'DoctrineModule',
'Laminas\Cache\Storage\Adapter\Filesystem',
'Laminas\Cache\Storage\Adapter\Memory',
'DoctrineORMModule',
'Application',
'Us',
'Album',
'Blog',
];
1条答案
按热度按时间jtw3ybtb1#
由于laminas-di在应用程序中注册为一个模块,因此通过抽象工厂进行了某种自动连接,这是因为我没有为它定义工厂。奇怪的是,lamians\di已经在我的项目中,当我不记得调用它。简而言之,我只需要添加一个工厂到我的Laminas\Authentication\AuthenticationService,简化后看起来像这样: