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是开始寻找此类库的好地方。
更新: 在使用Cakephp和Zend之类的框架(还有其他框架)时,我注意到它们试图通过包括自己的库并将诸如DB连接性之类的基础构建到框架中来解决其中的一些问题。因此框架可能是另一种解决方案 |