#42441
关闭
增强
( 固定的 )
禁用大选项的自动加载
|
|
||
|
|
||
|
|||
|
|
||
|
描述
附件 (1)
更改历史记录 (97)
这张票是在 PR#4881 在 WordPress/WordPress-develop开发 通过 @spacedmonkey(空格键) .
11个月 以前
#2
-
关键词 has-patch接口 has-unit-测试 补充
#6
![](https://wordpress.org/grav-redirect.php?user=flixos90&s=48)
@
9个月 以前
-
关键词 第二个小齿轮 补充; 需要-刷新 远离的
这张票是在 松弛(Slack) spacedmonkey的核心性能。 查看日志 .
9个月 以前
这张票是在 松弛(Slack) flixos90的核心表现。 查看日志 .
9个月 以前
这张票是在 松弛(Slack) spacedmonkey的核心性能。 查看日志 .
9个月 以前
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
8个月 以前
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
7个月 以前
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
7个月 以前
#20
![](https://wordpress.org/grav-redirect.php?user=flixos90&s=48)
@
7个月 以前
选项并不总是保持相同的大小。 一个选项可能会添加一些非常小的起始/占位符值,但之后会变得更大,这取决于该选项的使用方式以及最终用户如何与相关功能交互。 因此,至关重要的是,我们不仅要在添加选项时执行最大大小检查,而且还要在更新选项时执行。 为此,除非开发人员显式地将值传递给 更新选项() (当您只想更新选项时,这样做并不直观 价值 ),我们需要看看之前存储的自动加载值是否是开发人员选择的显式值( 是|否 )或者不是( default-yes |默认否 ). 在后一种情况下,我们必须重新检查选项大小。 但在第一种情况下,我们不能这样做,因为我们需要尊重开发人员的明确选择。 换句话说,要确定显式设置的自动加载值和“WordPress选择的”自动加载值,需要在数据库中进行这种区分。
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
7个月 以前
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
7个月 以前
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
7个月 以前
这张票是在 松弛(Slack) 在flixos90的#core中。 查看日志 .
7个月 以前
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#26
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#27
#28
答复: ↑ 21
![](https://wordpress.org/grav-redirect.php?user=azaozz&s=48)
@
7个月 以前
或者我们可以阻止所有大型选项自动加载
@弗利克索斯90 对发表了评论 采购订单号5671 :
7个月 以前
#29
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#30
@阿佐兹,我不认为这真的是卑诗省的休息。 虽然函数上的值在默认情况下不再是yes,但有效结果。。。
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#31
更改默认值的原因是为了正确区分开发人员是通过了“是”还是只是默认的“是”/“自动”。
要求扩展器更改代码并通过 对 用于在添加新选项时自动加载。 此方法无法解决当选项在更新时变大时会发生什么情况的问题。 当前的行为是,当它是一个预先存在的选项时,将其关闭自动加载,或者为应用此修补程序后将添加的选项打开自动加载(请参阅此处提前返回的代码: https://github.com/WordPress/WordPress-develop/pull/5671/files#diff -ca21e48c46c9dd91f8e8b8837f147aed99457233f8a04ef458205d81e3R1173-R1180 ). 添加一个新的过滤器,使扩展器始终覆盖由新的 确定选项自动加载值() 功能。
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#32
与我在中的回复相关 https://github.com/WordPress/WordPress-develop/pull/5671#discussion_r1419694609 ,我们需要区分“默认/自动”和“手动”行为 ... 此代码检查当前值是默认/自动值还是显式提供的值 ... 如果我们强制使用新的自动化方法,我会认为这是BC中断。
@飞蚊90 对发表了评论 采购订单号5671 :
7个月 以前
#33
这是一个常用函数中行为的变化。 到目前为止,所有想要添加自动加载选项的扩展程序都会省略最后一个参数,因为它默认为
对 。但是,如果提交了此修补程序,情况将不再如此。 值超过特定阈值的选项将设置为不自动加载。
这种做事方式还有另一个缺点。 如果插件想要覆盖自动决策,它必须以不同的方式进行:一旦通过
对 添加选项时,然后使用
wp最大自动加载选项大小 (或者可以添加新的过滤器以使其更直观),以确保将来不会自动更改。 很困惑,为什么不直接使用过滤器?:)
为什么这很重要? 我认为这更多的是一个“这应该如何实际工作”的讨论。 问题是:开发人员应该如何覆盖关闭自动加载的自动决策?
更改默认值
对 到
犹豫不决的 也会改变函数的行为。
为了能够处理这个问题,我还认为我们可能会远离
对 和
不 作为值,并引入新值以强制自动加载(或同时强制自动加载和非自动加载?)。 看起来这将以简单直观的方式解决这一问题,并且不会对现有行为带来任何改变。
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#34
没错,这是一个行为上的改变,但它只会影响很小的一部分选项——150 KB对于单个选项来说是很大的。
如果延长线通过“是”或“否”,WP核心将永远不会改变这一点。 ... 请参见上文。 如果需要用过滤器覆盖自动决策,这是一个突破性的更改
但更重要的是,这里的关键问题是当前的默认值是
对 .IMO一开始就不应该有违约,否则应该一直默认“我们为您选择”。
这就是PR中null值的实际含义
@阿佐兹 对发表了评论 采购订单号5671 :
7个月 以前
#35
@伯恩 对发表了评论 采购订单号5671 :
7个月 以前
#36
也在想
违约Y 和
默认-否 听起来不太好,可能会误导人。 在添加选项时,似乎可能会与默认值发生错误,这将是错误的。
怎么样
自动-yea 和
自动-否 ? 有
汽车 在中,很明显此设置是自动的:)
@伯恩 对发表了评论 采购订单号5671 :
7个月 以前
#37
oload将单独访问数据库以获取它。看来这将是一个相当大的性能下降,需要在之前解决
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
7个月 以前
@乔麦吉尔 对发表了评论 采购订单号5671 :
7个月 以前
#40
坦率地说,我认为“是”和“否”应该是“软编码”,应该有全新的值来更好地控制自动加载。 思考启用、禁用、自动启用和自动禁用可能是最有意义的。
然后yes将保留为默认参数值,以支持大量现有插件,并将作为启用状态保存到DB。 在某种程度上,甚至现在,WP可以开始发出“deprecated value”警告,因此插件将逐渐更新,以决定是可以自动设置自动加载,还是可以关闭自动加载并使用新值。
对 –该值添加了一个显式值“yes” 启用 –该选项添加了未知的显式值,但之前设置为“yes” 违约 –如果没有传递显式值,WP可以决定在未来更改默认行为(最初将自动加载) 禁用 –添加该选项时没有明确的“是”或“否”自动加载值,WP已选择禁用该选项。 不 –该选项添加了显式自动加载值“no”。
@弗利克索斯90 对发表了评论 采购订单号5671 :
7个月 以前
#41
对 和 不 将不赞成 启用 和 禁用 . 将出现弃用警告来替换这些用法,但最初没有功能更改:最初 启用 将以与 对 和 禁用 行为方式与 不 . 在未来的WordPress核心版本中(在上面的版本已经推出之后),新的行为将到位: 对 将被视为非上市价值。 任何 对 传递给函数或存储在数据库中的可能会被WordPress自己的“决策过程”覆盖(即。 自动启动的 除非选项值太大,否则它将变为 自动禁用 ). 不 仍然可以被视为显式值,即其含义与 禁用 . 函数将获得一个新的默认值,允许WordPress做出决定。 可能是这样 无效的 或 自动启动的 例如,我们喜欢哪一种。 可能有一个数据库清理例程来迁移所有 不 值到 禁用 以及所有 对 值到 自动启动的 (潜在的相关人员甚至 自动禁用 ). 不过,这对功能来说并不重要,主要是为了清理,并立即为现有选项带来好处。
@乔麦吉尔 对发表了评论 采购订单号5671 :
7个月 以前
#42
使用自动更新数据库中的所有选项 自动加载 设置为 对 到 启用 . 更改默认值 $自动加载 的值 添加选项(_O) 从 对 到 无效的 (匹配 更新选项() 已经)。 保存使用创建的任何新选项 $autoload=空 值为 违约 . 更新此PR,以便添加自动加载值为的任何新的大型选项 无效的 改为设置为 禁用 . 更新自动加载功能,以便将任何选项设置为 对 , 启用 ,或 违约 自动加载(保持当前行为)。 鼓励开发人员更新代码以显式传递 $自动加载 的值 对 或 真的 如果大多数请求都需要该选项。 考虑将来的更改,停止自动加载设置为的选项 违约 .
@弗利克索斯90 对发表了评论 采购订单号5671 :
7个月 以前
#43
@乔麦吉尔 对发表了评论 采购订单号5671 :
7个月 以前
#44
enabled的用途是什么? 看起来它只会取代yes? 在这种情况下,仅仅坚持现有的“是”值有什么好处?
@弗利克索斯90 对发表了评论 采购订单号5671 :
7个月 以前
#45
目前,站点在DB中有自动加载值设置为“yes”的选项,但无法知道这些选项是明确设置的还是默认设置的。 将这些更改为
启用 允许我们出于向后兼容性的原因尊重他们当前的行为,并在未来的状态中知道显式设置的选项之间的差异(即。,
对 )或依赖默认行为(即。,
违约 ). 我认为,能够做出这些决定对我们适应未来需求至关重要(尽管我对所使用的确切值没有强烈的感觉)。
@乔麦吉尔 对发表了评论 采购订单号5671 :
7个月 以前
#46
@弗利克索斯90 对发表了评论 采购订单号5671 :
7个月 以前
#47
我看到的主要区别是,我还希望能够区分应用默认行为的选项和受核心影响的选项(例如,默认与启用/自动或禁用/自动否)。
我也不记得有人建议将当前设置的值从“yes”更改为其他值,以便使“yes(是)”前进到显式设置的值,尽管我可能刚刚错过了它。
没有迁移失败的风险(例如,在大型站点上,这些问题可能会引起关注)。 降低生态系统中大规模负面影响的风险:即使插件不迁移(或不立即迁移)到新推荐的方法,对最终用户的负面影响也有限。 由于DB中的现有选项将继续像以前一样工作,因此只会影响新站点或新安装插件的站点。 这当然不会降低风险,但它大大降低了出现“红色代码”问题的可能性。
@乔麦吉尔 对发表了评论 采购订单号5671 :
6个月 以前
#48
在 –该选项添加了明确的真实自动加载值(即不依赖默认参数),并将自动加载 汽车 –添加该选项时未传递显式自动加载值。 根据当前行为,这些仍将自动加载。 远离的 –该选项添加了明确的错误自动加载值,不会自动加载。
在 –该选项添加了明确的真实自动加载值(即不依赖默认参数)。 此选项必须自动加载。 自动打开 –添加选项时没有明确的自动加载值,但应该自动加载。 汽车 –添加该选项时没有明确的自动加载值。 WordPress可以确定此选项是否应自动加载(为了与过去的行为保持一致,我们最初仍会自动加载这些值,但将来可能会改变)。 自动关闭 –添加选项时没有明确的自动加载值,但不应自动加载。 远离的 –该选项添加了一个显式错误的自动加载值,不得自动加载。
保持原样, $autoload=“是” ,但使用类似于 函数获取args() 以确定是否传递了显式值。 如果不是,那么我们可以确定该选项是否应该 自动接通 , 汽车 ,或 自动关闭 然而,如果我们反对 对 IMO,将其作为默认值有点奇怪。 将默认值更改为既不真实也不虚假的新值,以指示该选项可能不会自动加载。 我想 $autoload=空 有道理,或者类似的 $autoload=“默认” 或 $autoload=“自动” 以便更好地向开发人员传达此默认的意图。 其中之一是我的偏好。 只要默认情况下我们仍然自动加载大多数选项,就可以将默认参数值更新为与新策略一致的不同真实值。 就个人而言,我只需要更新代码,使其成为布尔值 真的 默认值,已受支持,不推荐使用 对 或 不 ,但我们也可以设置默认值 在 或者不管新的显式DB值最终是什么。
@弗利克索斯90 对发表了评论 采购订单号5671 :
6个月 以前
#49
我真的很喜欢 在 和 远离的 作为新条款。 IMO它们与 自动- 前缀比 启用 和 禁用 我还认为它们在语义上更接近于自动加载的“是”和“否”。 无论如何,我对所选的名字没有强烈的感觉(除了它们应该与 对 和 不 )特别是因为我认为从外部开发人员API的角度来看,鼓励使用布尔值是最有意义的 真的 和 假 大多数插件开发人员不需要担心数据库中实际存储了哪些字符串,这只对一小部分明确关注自动加载选项的插件来说很重要。 我认为 自动接通 , 汽车 和 自动关闭 这是有意义的,特别是因为它允许将来对逻辑进行优化,以决定是在核心还是插件中自动加载。 我最初以为只有 自动打开 和 自动关闭 ,但很好的一点是,从这张罚单开始,核心将做出的唯一决策是“不”决策。 虽然到今天为止,任何不是“否”的东西都会自动加载,但我同意有必要区分“核心决定是”和“核心根本不知道”。 从今天起,两者都将自动加载,但它允许差异化,这对于进一步增强自动加载优化的潜力至关重要。 如果在调用时没有提供显式值,可能应该存在某种过滤器,以允许附加逻辑来决定“自动”值 添加选项(_O) 例如,它可以是 wp默认自动加载值 过滤器,可以返回 真的 , 假 ,或 无效的 ,这将被解释为 自动接通 , 自动关闭 、和 汽车 分别。 关于 添加选项(_O) 默认,我认为应该改为 无效的 ,原因如下: 它是一个中性值,没有任何意义。 它与中已使用的默认值相同 更新选项() . 它是向后兼容的,因为今天显式传递 无效的 (这没有多大意义,但有可能)将获得与通过相同的结果 对 .
根据我的第一点,我建议我们鼓励开发人员通过 真的 , 假 ,或者什么都没有( 无效的 )至 添加选项(_O) . 对 和 不 BC仍需要支持,我们甚至可以支持 在 和 远离的 ,但我认为这毫无意义,因为从插件开发人员的角度来看,所有这些都是相同的。 示例代码/文档应始终使用 真的 和 假 ,参数doc可能会说类似“为了向后兼容,支持值‘yes’和‘no’。”。
@乔麦吉尔 对发表了评论 采购订单号5671 :
6个月 以前
#50
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
5个月 以前
@伯恩 对发表了评论 采购订单号5671 :
5个月 以前
#53
@弗利克索斯90 对发表了评论 采购订单号5671 :
5个月 以前
#54
PR当前将序列化的选项值传递给新函数以确定自动加载值,并从那里传递给新过滤器。 这是个好决定吗? 我意识到当前的用例只需要序列化数据,但我觉得这对于API来说有点奇怪。 我认为传递常规选项值会更干净。 如果我们想避免打电话 可以序列化() 再说一次,也许我们应该通过 价值$ _和_ $serialized_value(美元序列化值) 功能? 现在有4个值需要自动加载, 在 (显式), 对 (传统), 自动接通 (“开”,但由默认启发式确定),以及 汽车 (默认试探法没有做出明确的决定,但仍需要自动加载以实现向后兼容性)。 IMO它很容易出错,不得不到处记住这些单独的值(在代码审查期间已经发生了几次),从扩展程序的角度来看,这也不太好(想想那些专门做自动加载选项的小插件)。 也许我们应该有这样的功能 wp_autoad_values_to_autoad() 或者像这样返回这些值的数组? 也许有一个更好的函数名,但我认为这对核心插件和相关插件都很有用。
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
5个月 以前
@pbearne公司 对发表了评论 采购订单号5671 :
5个月 以前
#56
关于当前方法的几个悬而未决的问题:
PR当前将序列化的选项值传递给新函数以确定自动加载值,并从那里传递给新过滤器。 这是一个好决定吗? 我意识到当前的用例只需要序列化数据,但我觉得这对于API来说有点奇怪。 我认为传递常规选项值会更干净。 如果我们想避免打电话
可以序列化() 再说一次,也许我们应该通过
价值$ _和_
$serialized_value 功能? 现在有4个值需要自动加载,
在 (显式),
对 (传统),
自动接通 (“开”,但由默认启发式确定),以及
汽车 (默认试探法没有做出明确的决定,但仍需要自动加载以实现向后兼容性)。 IMO——在任何地方都必须记住这些单独的值是很容易出错的(在代码审查期间已经发生过几次了),从扩展程序的角度来看(想想少数专门针对自动加载选项的利基插件),这也不太好。 也许我们应该有这样的功能
wp_autoad_values_to_autoad() 或者像这样返回这些值的数组? 也许有一个更好的函数名,但我认为这对核心插件和相关插件都很有用。
@请让我知道你对这些观点的看法。 如果能再次获得您对该方法的评估(最全面的概述请参见 #5671(评论) )当然,公关部也在实施。
这张票是在 松弛(Slack) pbearne的核心表现。 查看日志 .
5个月 以前
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
4个月 以前
这张票是在 松弛(Slack) flixos90的核心表现。 查看日志 .
4个月 以前
#63
![](https://wordpress.org/grav-redirect.php?user=flixos90&s=48)
@
4个月 以前
-
关键词 早期的 补充; 第二个小齿轮 远离的
@弗利克索斯90 对发表了评论 采购订单号5671 :
3个月 以前
#64
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
3个月 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
3个月 以前
@乔麦吉尔 对发表了评论 采购订单号5671 :
3个月 以前
#67
@弗利克索斯90 对发表了评论 采购订单号5671 :
3个月 以前
#68
从技术上讲,我确实同意@felixantz的担忧 在这里 尽管我认为最好是暂时保持原样,而不是创造机会让意外值被支持为“true”,然后等待真正的错误报告来确定是否需要扩展switch语句中的检查。
@乔麦吉尔 对发表了评论 采购订单号5671 :
3个月 以前
#69
@弗利克索斯90 对发表了评论 采购订单号5671 :
3个月 以前
#70
@乔麦吉尔 对发表了评论 采购订单号5671 :
3个月 以前
#71
@弗利克索斯90 对发表了评论 采购订单号5671 :
3个月 以前
#72
@乔麦吉尔 对发表了评论 采购订单号5671 :
3个月 以前
#73
这就是我的观点。 他们现在没有改变,因为公关包括额外的业务连续性处理。
#74
![](https://wordpress.org/grav-redirect.php?user=flixos90&s=48)
@
3个月 以前
-
关键词 犯罪 补充 -
所有者 已从更改 伯恩 到 弗利克索斯90 -
状态 已从更改 分配 到 审查
这张票是在 松弛(Slack) flixos90的核心表现。 查看日志 .
3个月 以前
这张票是在 松弛(Slack) mukeshpanchal27的#core性能。 查看日志 .
3个月 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
2个月 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
2个月 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
8周 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
5周 以前
这张票是在 松弛(Slack) 乔麦吉尔的核心表现。 查看日志 .
4周 以前
#86
![](https://wordpress.org/grav-redirect.php?user=peterwilsoncc&s=48)
@
2周 以前
-
分辨率 固定的 删除 -
状态 已从更改 关闭 到 重新打开的
2周 以前
#88
#89
![](https://wordpress.org/grav-redirect.php?user=joemcgill&s=48)
@
2周 以前