Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php及其库不断升级时维护旧版本_Php_Xampp - Fatal编程技术网

如何在php及其库不断升级时维护旧版本

如何在php及其库不断升级时维护旧版本,php,xampp,Php,Xampp,我一直在使用xampp包中包含的sqlite 2 之后,我安装了最新的xampp包,其中包含sqlite3 现在,当我运行我的代码时,我得到了一个错误,并发现sqlite 2不可用于捆绑包 类似的事情发生在php及其所有相关库中,例如split function others 如果是本地系统没有问题,我们无论如何都会更新它,但是在共享主机中,当他们通过错误升级到新的php版本时,会更新现有的网页 我们怎么知道php将删除一些函数,并用其他新函数替换它,而不是保留相同的名称,而是升级功能 当他们升

我一直在使用xampp包中包含的sqlite 2

之后,我安装了最新的xampp包,其中包含sqlite3

现在,当我运行我的代码时,我得到了一个错误,并发现sqlite 2不可用于捆绑包

类似的事情发生在php及其所有相关库中,例如split function others

如果是本地系统没有问题,我们无论如何都会更新它,但是在共享主机中,当他们通过错误升级到新的php版本时,会更新现有的网页

我们怎么知道php将删除一些函数,并用其他新函数替换它,而不是保留相同的名称,而是升级功能

当他们升级或更改服务器中当前现有功能的版本时,会发生什么情况?网站会中断。你可以在整个页面上看到错误。很多页面都不起作用。搜索引擎优化评级下降,如果没有注意到。用户不会信任该站点。wordpress和mediawiki也出现了这种情况,我已经使用了一段时间,当他们最近升级php时,模块没有加载,反而出现了致命错误。这太恶心了

在这种情况下,在特定的时间间隔内(每当php升级其功能时)不断升级您的代码将是非常繁忙的

据我所知,这是无止境的

服务器端和本地主机的解决方案是什么。

好问题。 我说你太担心了。PHP团队非常关心向下兼容性。我现在使用PHP已经超过10年了,在这段时间里,web改变了很多,PHP也改变了很多。更改要经过一个很长的弃用过程,并且在实际发生之前很长时间才会宣布。即使在那时,在我记得的情况下,在新版本中仍然可以采用不推荐的方式

这一切对于PHP本身提供的PHP核心和扩展都是有效的

就SQLlite而言,我记不起那里的交易是什么,从来没有真正使用过它

在一个较新的PHP5版本中,他们在日志级别引入了不推荐使用的位。 如果您将日志级别切换到
E_ALL
-1
,那么如果您使用任何不推荐使用的函数,您将得到一行日志,因此您可以提前做出反应

此外,发布折旧和向后不兼容更改的列表,例如

这里宣布的所有更改在很多年前就已经被当作坏习惯处理了,所以现在不应该有人更改代码


我希望这不会再杀了你:)祝你好运

这确实是个问题。唯一的解决办法是:

  • 在编写代码之前,请仔细考虑您的依赖关系
  • 坚持住
  • 在您决定使用任何一种需要依赖的特定技术之前,请研究该技术是否会被弃用,或者将来是否不建议使用。PHP人员在手册中指出了这些内容,因此阅读PHP.net上的相关页面通常就足够了

    PHP开发人员非常擅长他们的弃用过程,他们的大多数API的弃用过程都非常缓慢

    然而,你仍然需要保持专注。关注不经常发布的官方公告,了解正在发生的变化以及需要关注的地方。每个主要PHP版本的更改日志通常都值得研究

    如果您的系统上运行的代码经常在未经您更改的情况下更改,那么您还需要注意主机的公告。如果他们没有提前宣布重大更改,请寻找其他主机

    构建错误处理程序,以便通过电子邮件通知您严重错误。您可能希望包含一个脚本,用于检查主要依赖项的可用性,并在它们丢失时通知您

    如果您有关键代码,则不应在共享主机上运行它,因为共享主机无法为您提供对平台的足够控制。运行自己的服务器,并小心升级PHP。旧版本在一段时间内接收维护更新是有原因的


    通常,您需要一名系统管理员来管理部署的代码和服务器,您应该与此人沟通您对服务器的要求,如果服务器发生了一些重大更改,此人应该与您交谈。如果你就是那个人,就像现在许多系统开发人员一样,你需要把这部分工作做好。

    FWIW,他们决定为SQLite 3编写新的接口代码,因为底层库发生了巨大的变化。虽然2.x没有被弃用,但它正变得越来越不常见。3.x已经出局很多年了。有人能说一下为什么今天有两人对这个问题投了反对票吗?