1

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

之后我安装了具有 sqlite3 的最新 xampp 包。

现在,当我运行我的代码时,我得到了错误,发现捆绑包中没有 sqlite 2。

像这样的事情发生在 php 及其所有相关库中,例如 split 函数其他。

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

我们如何知道 php 将删除某些函数并用其他新函数替换它,而不是保留相同的名称但具有升级的功能?

当他们升级或更改服务器中当前现有功能的版本时,会发生什么情况是网站中断。您可以在整个页面上看到错误。许多页面无法正常工作。如果不注意,seo 评级会下降。用户不会信任该网站。这也发生在我使用了一段时间的 wordpress 和 mediawiki 上,当他们最近升级 php 时,模块没有加载,而是出现了致命错误。这很讨厌。

在这种情况下,在特定的时间间隔内不断升级你的代码会很忙(每当 php 升级它们的功能时)

据我所知,这是无穷无尽的。

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

4

2 回答 2

2

这确实是个问题。唯一的解决方案是:

  1. 在针对它们编写代码之前,请仔细考虑您的依赖关系。
  2. 留在球上。

在您决定使用任何一种特定的技术依赖之前,请研究它是否会被弃用或不建议在未来使用。PHP 人很擅长在手册中指出这些内容,因此阅读 php.net 上的相关页面通常就足够了。

PHP 开发人员对他们的弃用过程非常满意,他们的大多数 API 的弃用过程都非常缓慢。

尽管如此,你还是需要保持在球上。关注不常见的官方公告,了解正在发生的变化以及您需要注意的地方。每个主要 PHP 版本的更改日志通常都值得研究。

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

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

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

通常你有一个系统管理员来管理部署的代码和服务器,你应该与这个人沟通你对服务器的要求,如果服务器发生一些重大变化,那个人应该与你交谈。如果你就是那个人,就像现在许多 sys-dev-ops 一样,你需要把这作为你工作的一部分。

于 2012-12-08T17:55:59.987 回答
1

好问题。我说你多虑了。PHP 团队非常关心向下兼容性。我使用 PHP 已有 10 多年了,这段时间网络发生了很大变化,PHP 也是如此。更改正在经历一个非常长的弃用过程,并且在它们实际发生之前很久就宣布了。即便如此,在我记得的情况下,仍然可以使用新版本进行弃用的方式。

这一切都适用于 PHP 本身提供的 PHP 核心和扩展。

在 SQLlite 的情况下,我不记得那里的交易是什么,从未真正使用过它。

在较新的 PHP 5 版本之一中,他们在日志级别中引入了不推荐使用的位。如果您将日志级别切换到, E_ALL或者-1如果您使用任何已弃用的功能,您将获得一行记录,因此您可以及早做出反应。

http://php.net/manual/en/function.error-reporting.php

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

http://php.net/manual/en/migration54.incompatible.php

很多年前,这里宣布的所有更改都被视为不好的做法,因此现在没有人应该更改代码。

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

于 2012-12-08T17:47:38.490 回答