Symfony Cache doctrine/orm/Proxies 未能打开 stream /Proxy/AbstractProxyFactory.php 209 行

2022-08-30 15:30:27

我正在尝试将符号移动到共享主机。

我将符号结构移动到/,我的网络文件夹是/public_html。

警告:require(/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php):无法打开流:在 /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php 209 行中没有此类文件或目录

警告:require(/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php):无法打开流:在 /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php 209 行中没有此类文件或目录

致命错误:require(): 打开失败 所需的 '/home/user/app/cache/prod/doctrine/orm/Proxies/__CG__UserBundleEntityUser.php' (include_path='.:/opt/php55/lib/php') in /home/user/vendor/doctrine/common/lib/Doctrine/Common/Proxy/AbstractProxyFactory.php 209行

此错误仅在环境中发生。环境中不会引发异常。proddev

我尝试了以下方法:

rm -rf /app/cache + chmod 777
app/console cache:warmup

我使用Symfony 2.8.3。以下目录存在于本地和服务器上:

本地缓存: - /annotations, /twig, /vich_uploader + /doctrine, /translations

服务器缓存: - /注释, /twig, /vich_uploader

如果我将本地缓存上传到服务器,则异常将消失。


答案 1

在尝试访问应用程序之前,您没有创建代理类。这通常是通过以下方式完成的:

app/console cache:warmup --env=prod

默认情况下,在环境中禁用代理类的自动生成。您可以通过将以下内容添加到配置中来启用类似于环境的代理类的自动生成:proddev

app/config/config_prod.yml

doctrine:
    orm:
        auto_generate_proxy_classes:  true # <- change to true
        proxy_dir:            '%kernel.cache_dir%/doctrine/orm/Proxies'
        proxy_namespace:      Proxies

答案 2

/app/config/doctrine.yml

更改自:

  orm:
    auto_generate_proxy_classes: "%kernel.debug%"

自:

  orm:
    auto_generate_proxy_classes: true

工程!


推荐