php 如何关闭symfony缓存[关闭]

wlzqhblo  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(123)

已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。

5天前关闭。
Improve this question
我目前正在做一个基于Symfony的个人项目,但我已经尝试了很多次关闭Symfony缓存,但我在网上找到的所有解决方案都不起作用。你有办法吗?(我在Symfony的5.3.16版本上)。谢谢:)祝你有一个美好的一天!
我尝试编辑index.php文件来添加以下内容:$fs = new Filesystem(); $fs->remove($this->container->getParameter('kernel.cache_dir'));,我也试图编辑翻译文件,但这些解决方案没有工作.我想创建一个crontab谁删除的dir /var/缓存所有的分钟,但我认为这不是最好的解决方案.

vfhzx4xs

vfhzx4xs1#

Symfony会创建多个缓存,除此之外,您还可以设置HTTP缓存。因此应该有更清楚的表示你想摆脱什么样的缓存。
你说var/cache目录总是在创建,这很好。Symfony是一个非常复杂的框架,它需要大量的时间来浏览所有的文件。因此,它会为自己的目的创建缓存,例如依赖注入可以将许多服务注入到其他服务。这需要处理,因为您不需要每次都创建它,所以只有在某些内容发生更改时,Symfony才会在var/cache中创建缓存,它不会为每个请求构建整个DI模式,它只会从该高速缓存中创建容器。将始终创建此高速缓存。但是如果你添加了一个新的服务,它就会自动改变。因此,您不需要Symfony始终进行删除,即使在DEV环境中也是如此。否则,您的每个请求将花费几秒的时间,而不是几十/几百毫秒。
在DEV环境中可能存在的问题是配置文件中的更改。有时候,您的缓存中没有服务,但您只是将其添加到配置文件中。然后,您需要手动删除该高速缓存(预热将在DEV时自动进行)。添加新模板时,也可能会出现相同的情况。
除非设置HTTP缓存,否则它不存在于DEV环境中。它依赖于反向代理缓存服务器,而反向代理缓存服务器必须正确配置。
而您自己的应用程序缓存(使用symfony的Cache系统来避免对数据库的一些查询)将出现在DEV中,因为它是您的应用程序的一个基本部分。你可能会发现一些窍门,但首先要考虑它是否真的需要。这就是此处所述该高速缓存https://symfony.com/doc/5.3/cache.html

概要

如果您未将自定义应用程序缓存或HTTP缓存与设置缓存服务器一起使用,则除了Symfony应用程序本身所必需该高速缓存外,您没有任何缓存。它可能需要不时清除它,例如,当你添加新的模板和应用程序将停止工作(但在我的实验数据,这是得心应手一个月一次,我每天都用它,通常该高速缓存将自动更新)。
如果您确实需要删除整个缓存目录,并且希望即使在此信息之后,每个请求都能生成所有内容,Symfony不支持删除整个目录的方法,即使cache:clear也不会删除整个目录。您必须使用shell rm -r /var/cache,而且您可能可以设置cron作业。

相关问题