gpt4 book ai didi

cakephp - 为什么在我将调试切换到 3 之前不会发生一些更改?

转载 作者:行者123 更新时间:2023-12-03 22:51:04 26 4
gpt4 key购买 nike

有时我会在本地实现更改并且它们工作正常,我将它们复制到我的远程网络服务器并且更改被忽略。 (代码相同。)

我进入core.php,将调试更改为3,再次检查......它工作!

我觉得这与缓存有关,但我不知道到底要改变什么。

最佳答案

CakePHP 有一个位于 /app/tmp/cache 的缓存。 .目录结构如下所示:

# /app/tmp/cache
# /app/tmp/cache/models
# /app/tmp/cache/persistent
# /app/tmp/cache/views

通常遇到的主要问题是模型缓存。当调试关闭(即在生产中)并且您使 CakePHP 调度时,它会检查所有数据库表的模式并将它们存储在 models 中的平面文件中。上面的文件夹。如果您不删除此文件夹中的文件,CakePHP 将开始说模型/表格/字段不存在,而它们在您的数据库中明确存在。

如果您在应用程序中启用 View 缓存,当第一次呈现 View 时,CakePHP 会将平面文件编译为 views文件夹,以防止在下一次请求时必须再次呈现这些 View 。

在 CakePHP 的引导过程中,它必须先确定您在安装中使用的目录结构,然后才能访问重要文件(如 database.php )。因此,CakePHP 将生成缓存文件到 persistent具有每个重要目录和文件的绝对路径的目录,您正在使用的任何插件,甚至您创建的任何本地化,因此它可以在语言之间快速翻译您的应用程序而无需重新解析 .pot文件。

因此,简单地说,当您对生产中的应用程序进行代码更改时,您必须记住删除这些目录中的所有文件,或者将其添加为 deployment mechanism 的一部分。 .你 不得但是删除任何目录。

将 debug 更改为 3 对您有用的原因是,当 Debug模式打开时(在任何大于零的值),缓存会在每个请求时被清除并重新生成,但是 - 虽然这有效 - 自动化并不容易。

有多种方法可以通过编程方式完成 - 包括 shell commands , CakePHP plugins , Capistrano configs , Ant 文件 - 但也可以手动执行。

关于cakephp - 为什么在我将调试切换到 3 之前不会发生一些更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com