如何为本地调试禁用 Symfony 5 class 缓存?

How can I disable Symfony 5 class cache for local debugging?

我正在开发自定义 json api(不涉及树枝)。在开发过程中,我需要不断地对代码库进行更改,并且每个响应都会缓存几分钟或直到我清除 symfony 缓存。

我正在使用本地 nginx 服务器,应该正确配置它,因为这些是 headers 我得到:

Server: nginx/1.16.1
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/7.4.1
Cache-Control: max-age=0, private
Date: Fri, 24 Jul 2020 07:29:28 GMT
X-Debug-Token: f38aeb
X-Debug-Token-Link: http://localhost:8080/_profiler/f38aeb
X-Robots-Tag: noindex
Last-Modified: Friday, 24-Jul-2020 07:29:28 UTC
Cache-Control: private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0

一旦我运行bin/consolec:c

,回复就会正确更新

每次更改 class(控制器、服务、模型等)时,我都需要这样做。

一定是我遗漏了什么明显的东西。有没有办法在我的开发环境中禁用 class 缓存,而不必为每个小更改清除缓存?

已编辑:添加相关配置。

这是我的 nginx .conf 文件:

server {
    listen 80;
    server_name ~.*;

 location / {
     root /app;

     try_files $uri /index.php$is_args$args;
 }

 location ~ ^/index\.php(/|$) {
     client_max_body_size 50m;

     fastcgi_pass php:9000;
     fastcgi_read_timeout 1800;
     fastcgi_buffers 16 16k;
     fastcgi_buffer_size 32k;
     include fastcgi_params;
     fastcgi_param SCRIPT_FILENAME /app/public/index.php;
     # Disable cache
     add_header Last-Modified $date_gmt;
     add_header Cache-Control 'private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
     expires off;
     etag off;
 }

 error_log /dev/stderr debug;
 access_log /dev/stdout;
}

终于找到罪魁祸首了。我会留下这个以防有人遇到同样的问题。我在我的开发环境中启用了 opcache,因此它与 symfony 或 nginx 位置无关。我刚刚禁用了 opcache,问题已解决。

opcache.enable=0