我只是好奇是否存在任何项目试图将所有(或大多数)PHP 内置函数分组到更面向对象的类层次结构中。例如,将所有字符串函数分组到单个 String 类中等。

我意识到这实际上不会解决任何问题(除非修改发生在 PHP 源代码级别),因为所有内置函数仍然可以在全局命名空间中访问,但它肯定会使可用性变得更容易。

有帮助吗?

解决方案

要回答您的问题,是的,存在几个库可以完全完成您所说的操作。至于你想使用哪一个是一个完全不同的问题。PHPClasses 和 pear.org 是开始寻找此类库的好地方。

更新:正如其他人所建议的那样,SPL 是一个很好的库,并且包装了许多内置的 php 函数。然而,仍然有很多 php 函数没有包装。让我们仍然没有灵丹妙药。

在使用 Cakephp 和 Zend(其他框架)等框架时,我注意到他们试图通过包含自己的库并将数据库连接等基础知识构建到框架中来解决其中一些问题。所以框架可能是另一种解决方案

其他提示

太多次了。一旦有人发现 PHP 具有面向对象的功能,他们就会想将所有内容包装在类中。

PHP 中的 OO 内容的要点在于,您可以按照自己想要的方式构建解决方案。但是将现有函数包装在对象中并不会产生太多回报。

话虽这么说,PHP 的核心已经是相当面向对象的了。看一眼 声压级.

我认为这样的事情对于 PHP 的发展是不可或缺的。作为一名主要的 .Net 程序员,我发现 PHP 的 100 万个和 1 个全局函数的工作很痛苦。PHP 5.3 有命名空间是件好事,但是当他们自己的库甚至不是面向对象的时,它并没有多大帮助,更不用说使用命名空间了。我不太介意 PHP 作为一种语言,但他们的 API 非常混乱,可能需要彻底修改。有点像 VB 成为 VB.Net 时经历的事情。

我不同意。面向对象编程本质上并不比过程编程更好。我相信你不应该使用面向对象,除非你需要多态行为(继承、重写方法等)。使用对象作为简单的代码容器是不值得的。这是 特别 字符串也是如此,因为它们使用得太多了(例如作为数组键)。每个应用程序通常都可以从一些多态特性中受益,但通常是在较高的级别。您想扩展 String 类吗?

另外,要理解 PHP 奇怪的函数命名,还需要了解一些历史。PHP 基于标准 C 库和 POSIX 标准,并使用许多相同的函数名称(strstr、getcwd、ldap_open 等)。这实际上是一件好事,因为它最大限度地减少了语言绑定代码的数量,确保了一套经过深思熟虑的功能(几乎可以在 C 中完成的任何操作,也可以在 PHP 中完成),并且这些系统库是高度优化的(例如strchr 通常是内联的,这使其速度提高约 10 倍)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top