В настоящее время я использую компоненты Sylius в своем приложении Symfony, и по какой-то причине мне пришлось расширить класс Sylius, чтобы добавить информацию о продукте.
namespace AppBundle\Entity;
use Sylius\Component\Core\Model\Product as BaseProduct;
use Sylius\Component\Product\Model\ProductInterface;
class Product extends BaseProduct implements ProductInterface
{
Но в итоге я получаю следующую ошибку:
2019/06/11 09:59:44 [error] 13#13: *2939 FastCGI sent in stderr: "PHP message: PHP Warning: require(/var/www/var/cache/dev/doctrine/orm/Proxies/__CG__SyliusComponentCoreModelProduct.php): failed to open stream: No such file or directory in /var/www/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php on line 206
На самом деле мой новый прокси класса создан (__CG__AppBundleEntityProduct.php), но прокси родительского класса больше не создается (__CG__SyliusComponentCoreModelProduct.php).
My Symfony ver.3.4.19 Я уже искал в Google, переполнение стека и т. д., но ни один из предоставленных ответов не мог решить мою проблему.
Я попытался очистить / перестроить кэш, использовать родительский класс Sylius «Продукт / Модель / Продукт» вместо «Ядро / Модель / Продукт», проверить правильность написания моего нового класса, и я ужеустановите "auto_generate_proxy_classes: true" в моей конфигурации.
Вот первые строки моего нового класса:
namespace AppBundle\Entity;
use Sylius\Component\Core\Model\Product as BaseProduct;
use Sylius\Component\Core\Model\ProductTranslation;
use Sylius\Component\Product\Model\ProductTranslationInterface;
use Sylius\Component\Product\Model\ProductInterface;
use Sylius\Component\Resource\Model\TranslatableTrait;
use Sylius\Component\Resource\Model\TranslationInterface;
class Product extends BaseProduct implements ProductInterface
{
use TranslatableTrait {
__construct as private initializeTranslationsCollection;
getTranslation as private doGetTranslation;
}
/** @var string */
private $stripe_id;
/** @var string */
private $product_stripe_id;
/** getters and setters **/
/** ... **/
}
Вот часть моего файла конфигурации, с генерацией прокси Doctrine длямой класс:
sylius_product:
driver: doctrine/orm
resources:
product:
classes:
model: AppBundle\Entity\Product
repository: AppBundle\Repository\ProductRepository
translation:
classes:
model: Sylius\Component\Core\Model\ProductTranslation
product_variant:
classes:
model: Sylius\Component\Core\Model\ProductVariant
controller: Sylius\Bundle\CoreBundle\Controller\ProductVariantController
repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductVariantRepository
product_option:
classes:
repository: Sylius\Bundle\CoreBundle\Doctrine\ORM\ProductOptionRepository
product_association_type:
classes:
repository: Sylius\Bundle\ProductBundle\Doctrine\ORM\ProductAssociationTypeRepository
Помощь будет высоко ценится.