api-skeletons/zf-doctrine-module-zend-hydrator

修正DoctrineModule类以使用zend-hydrator

1.0.3 2019-11-04 03:42 UTC

This package is auto-updated.

Last update: 2024-09-04 13:34:39 UTC


README

Total Downloads

** 这是一个补丁仓库 **

由于zendframework/zend-stdlib的hydrators被移动到了自己的仓库zendframework/zend-hydratorDoctrineModule仓库尚未更新以正确使用新的库。在@doctrineorm的许多讨论中,他们继续表示与zendframework/zend-hydrator保持一致,因为非常不寻常,新的库被编写为向后兼容zendframework/zend-stdlib,但后来版本的zend-hydrator中移除了这种向后兼容性,这使那些希望在项目中使用允许自定义hydrators的Doctrine的开发者处于不利地位。

这个库覆盖了来自DoctrineModule的文件,因为它们仍然引用zendframework/zend-stdlib来作为它们的hydrators。

关于这个问题的讨论

安装

此模块的安装使用composer。有关composer文档,请参阅getcomposer.org

$ php composer.phar require api-skeletons/zf-doctrine-module-zend-hydrator ^1.0

在您的composer.json文件中,此库必须在doctrine/doctrine-module之前被包含。这种排序允许此仓库中的类覆盖损坏的DoctrineModule类。

安装警告

您可能会收到以下警告。这些是预期中的,不是问题所在。

Warning: Ambiguous class resolution, "DoctrineModule\Stdlib\Hydrator\DoctrineObject" was found in both "Projects/phpro/zf-doctrine-hydration-module/vendor/api-skeletons/zf-doctrine-module-zend-hydrator/src/DoctrineObject.php" and "/Projects/phpro/zf-doctrine-hydration-module/vendor/doctrine/doctrine-module/src/DoctrineModule/Stdlib/Hydrator/DoctrineObject.php", the first will be used.
Warning: Ambiguous class resolution, "DoctrineModule\Stdlib\Hydrator\Filter\PropertyName" was found in both "/Projects/phpro/zf-doctrine-hydration-module/vendor/api-skeletons/zf-doctrine-module-zend-hydrator/src/Filter/PropertyName.php" and "/Projects/phpro/zf-doctrine-hydration-module/vendor/doctrine/doctrine-module/src/DoctrineModule/Stdlib/Hydrator/Filter/PropertyName.php", the first will be used.
Warning: Ambiguous class resolution, "DoctrineModule\Stdlib\Hydrator\Strategy\AbstractCollectionStrategy" was found in both "/Projects/phpro/zf-doctrine-hydration-module/vendor/api-skeletons/zf-doctrine-module-zend-hydrator/src/Strategy/AbstractCollectionStrategy.php" and "/Projects/phpro/zf-doctrine-hydration-module/vendor/doctrine/doctrine-module/src/DoctrineModule/Stdlib/Hydrator/Strategy/AbstractCollectionStrategy.php", the first will be used.

何时使用此补丁仓库

如果您正在为实体使用自定义hydrators并且看到如下错误,此仓库将纠正它们。

Argument 2 passed to Zend\Stdlib\Hydrator\AbstractHydrator::addStrategy() must be an instance of Zend\Stdlib\Hydrator\Strategy\StrategyInterface ...

这是一个补丁仓库

如果您想参与DoctrineModule的讨论,以帮助在@doctrineorm仓库中正确实现zendframework/zend-hydrator,您可以参与上述链接中的讨论。

感谢

如果没有Toon Verwerft及其zf-doctrine-hydration-module的持续支持,找到这个补丁是不可能的。找到解决方案花费了近六个月的时间,他一直支持我的努力。谢谢你,Toon!