Php 为什么框架和类似的东西不推荐函数,而只是更新它们?

Php 为什么框架和类似的东西不推荐函数,而只是更新它们?,php,jquery,mysql,frameworks,deprecated,Php,Jquery,Mysql,Frameworks,Deprecated,例如,jQuery的.live()已被弃用,相反,我们必须使用.on(),而对于MySQL,MySQL.*将很快被弃用并转移到其他内容上。。。更值得注意的是mysqli 为什么框架和编程语言不喜欢旧函数而只是更新它们?对不起,如果放错地方了。如果是,请告诉我应该在哪里张贴。答案很简单。当一个人更新他们的软件版本时。为什么他们已经编码的所有东西都会中断?当事物被弃用时,它们不仅修复了安全缺陷,而且还改变了应该使用的方式。通常事物被弃用,这样人们就知道不使用它们,并且知道在将来某个时候它们将不再存在

例如,jQuery的
.live()
已被弃用,相反,我们必须使用
.on()
,而对于MySQL,
MySQL.*
将很快被弃用并转移到其他内容上。。。更值得注意的是<代码>mysqli


为什么框架和编程语言不喜欢旧函数而只是更新它们?对不起,如果放错地方了。如果是,请告诉我应该在哪里张贴。

答案很简单。当一个人更新他们的软件版本时。为什么他们已经编码的所有东西都会中断?当事物被弃用时,它们不仅修复了安全缺陷,而且还改变了应该使用的方式。

通常事物被弃用,这样人们就知道不使用它们,并且知道在将来某个时候它们将不再存在。然而,与此同时,弃用意味着他们可以在不破坏旧代码的情况下继续进行语言/框架开发。

当函数的设计发生变化时,他们希望提供一段时间,在这段时间内既提供旧函数又提供新函数(过渡时间),然后在未来某个日期删除旧版本。如果他们为新行为保留相同的名称,则无法执行此操作
.live()
.on()
采用不同的参数并以不同的方式工作
.on()
功能更强大,如果需要,可以使其模拟
.live()
,但如果不更改调用代码,这两种功能将不兼容

用新的行为引入新的特性,也简化了文档编制过程,因为它完全清楚记录了哪些行为(以哪个名称编写)

而且,当旧代码包含不再支持旧操作方式的最新版本时,当
不存在时,事情为什么不起作用就更清楚了。live()
甚至比它存在时更清楚,因为它有错误的行为


而且,像
.live()
这样的旧行为最终会从代码中删除,因为它们是一种糟糕的做事方式(可能导致显著的低效),因此jQuery希望所有人最终停止使用它们。将其从未来版本中删除是一种迫使其使用率下降并最终消失的方式。过渡期为开发人员提供了大量的时间来了解更改的需要,并实施/测试更改。

请查看Oracle的:

希望用户迁移到新API的正当理由包括:-旧API不安全、有缺陷或效率很低-旧API将在未来的版本中消失-旧API鼓励非常糟糕的编码实践


对于所有框架和语言,我们都要尊重。。 这就是为什么会有人反对

哎呀,我到底在想什么

我想考虑一下这是为什么方法被禁止的主要原因之一。 在某些情况下,谁犯过php/jquery或计算机犯过错误,而解决这个错误的唯一方法就是给出其他解决方案

最好的例子是mysql库

2-你不能让每个人都进入你的新功能。。 比如说,我喜欢键入
.live
,因为它感觉更自然,所以他们不会破坏我用jquery库构建的所有功能,而是会告诉我它不好,然后他们会创建更好的功能,最后他们会弃用旧功能

3-我不想犯同样的错误,所以为了看起来更酷,我会给ppl时间来测试新功能,他们会告诉我是否有什么错误..因为我不想用另一个来修复错误

4-最重要的是核心变化和新思维


我就是这么想的。。当然,每种方法都有其自身的原因。。但让我们面对现实,他们比我们更清楚自己在做什么

默认情况下,mysql\u查询是一个危险的接口。如果不破坏围绕它构建的所有应用程序,就无法对其进行更新,因此最好的计划是让它退役。没有它,世界真的会更好

尽管框架应该尽其所能促进向后兼容性,但在某些情况下,删除功能可以帮助平台更快地前进或变得更一致

我不知道为什么jQuery放弃了
live()
,但有时候像这样的函数很难支持,或者与API的其他元素有明显的功能重叠。请记住,jQuery不仅是一个框架,而且在代码大小方面也需要非常小心。核心库中的每一个额外的千字节代码都会导致额外的TB数据通过互联网下载。当你添加东西的时候,一定会有一些事情发生


为什么Linux内核会崩溃?这是因为维护您不想要的功能会从您想要的功能中消耗精力。

发布过程中必须有一个步骤,允许不推荐的功能与其替换功能同时兼容(如
.live
.on)
。如果此步骤不存在,并且将
.live
替换为
。立即打开
的功能,任何依赖
.live
旧行为并希望更新到下一版本的人都必须处理完全损坏的代码,这将非常困难

其他原因是后端的两个API之间缺乏兼容性。这对于
ext/mysql
mysqli
可能比
.live
.on
应用得更多(它们的后端可能相似且小得多)
mysqli
PDO
都已经存在了很长一段时间,并且作为独立于
ext/mysql
的项目启动,可能是