关于oop:有没有人试图使PHP的系统功能更加面向对象?

关于oop:有没有人试图使PHP的系统功能更加面向对象?

Has anyone attempted to make PHP's system functions more Object-Oriented?

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

我意识到这实际上并不会解决任何问题(除非在PHP源代码级别进行了修改),因为所有内置函数仍可在全局名称空间中访问,但它无疑会使可用性变得更加容易。


方式太多了。一旦有人发现PHP具有OO功能,他们便想将所有内容包装在类中。

在PHP中使用OO的要点是,您可以按自己想要的任何方式构建解决方案。但是将现有功能包装在Objects中并不会带来很多收益。

话虽这么说,PHP的核心已经非常面向对象。看看SPL。


我认为这样的事情对于PHP的发展至关重要。作为主要的.Net程序员,我发现PHP难以使用它的100万个和1个全局函数。 PHP 5.3具有名称空间是很好的,但是当它们自己的库甚至不面向对象时,它也无济于事,更不用说使用名称空间了。我不太介意PHP作为一种语言,但是它们的API却杂乱无章,它可能需要进行彻底的检查。有点像VB成为VB.Net时经历的过程。


我不同意面向对象编程本质上并不比过程编程好。我相信除非需要多态行为(继承,覆盖方法等),否则不应该使用OO。将对象用作代码的简单容器是不值得的。对于字符串来说尤其如此,因为字符串使用了很多(例如用作数组键)。通常,每个应用程序都可以从某些多态功能中受益,但通常都是高水平的。您是否想扩展String类?

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


要回答您的问题,是的,有几个库可以完全满足您的要求。至于您要使用哪一个,则是一个完全不同的问题。 PHPClasses和pear.org是开始寻找此类库的好地方。

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

在使用Cakephp和Zend之类的框架(还有其他框架)时,我注意到它们试图通过包括自己的库并将诸如DB连接性之类的基础构建到框架中来解决其中的一些问题。因此框架可能是另一种解决方案


推荐阅读

    鸿蒙系统快捷键介绍|鸿蒙系统功能键

    鸿蒙系统快捷键介绍|鸿蒙系统功能键,,1. 鸿蒙系统功能键可以在设置里,找到声音设置,这里有系统各种声音选择和振动选择,比如来电音乐选择,多媒

    php 字符串函数stripos()的定义与用法

    php 字符串函数stripos()的定义与用法,字符串,函数,位置,查找,字符串函数,参数,字符串函数stripos()是查找字符串在另一字符串中第一次出现的位

    面向对象的特征是什么

    面向对象的特征是什么,抽象,方法,多态性,对象,继承,父类,面向对象的特征是:1、“抽象”,把现实世界中的某一类东西,提取出来,用程序代码表示;2、“封

    什么是车辆定位?车辆定位系统功能

    什么是车辆定位?车辆定位系统功能,车辆,车辆定位,路线,管理员,统计,文字,什么是车辆定位?车辆定位可能大家并不算陌生,也就是全球定位系统在车辆

    多系统设置|多系统功能

    多系统设置|多系统功能,,1. 多系统功能苹果系统15和苹果系统14更新后相比较,苹果系统15有着比苹果系统14更为强大得电池续航功能,可以查看电