PHP本身是否正在转变为框架或大型库?

时间:2010-05-07 13:59:02

标签: php oop frameworks

一开始PHP是一种脚本语言。但是在引入和改进OOP之后,我看到越来越多的对象被添加到核心。他们开始使用像DOM这样的库(PHP 4和5种),后来SPL增长了很多,而DateTime家族应该是PECL,Pear或Zend Framework的一部分,或者由我们每个人实现。

PHP不应仅用于内置函数,所有这些对象都传递给其他函数吗?

示例:DateTime class is part of the core我发现它与Zend_Date非常相似。

Wikipedia on standard library

5 个答案:

答案 0 :(得分:7)

没有任何内容表明脚本语言不应该是面向对象的,或者不应该有对象。 SPL(从PHP 5.3开始,始终可用)是一个“用于解决标准问题的接口和类的集合”。 source它提供了核心中尚未有用的东西(数据结构,各种迭代器,扩展的异常类型集,文件的OO-API,改进的类自动加载工具)以更多的方式。

我赞成一个大型标准库,我不需要调试它,并为我想做的大部分内容提供函数。如果我想阅读一个XML文件,我不应该去挖掘一个库,因为这是一件很常见的事情。

  

DateTime系列应该是PECL,Pear或Zend Framework的一部分,或由我们每个人实施。

如果它被很多人使用,为什么它不应该在核心?每个人都没有必要实现同一件事的不同版本。

答案 1 :(得分:4)

只有内置功能?你曾经使用过像Java或C#这样的语言吗?如果添加一些类和接口将PHP转变为框架,那么这些语言到目前为止几乎都是操作系统。

PHP并没有成为一个框架。它甚至都不是很接近。

答案 2 :(得分:3)

PHP 始终是构建网站的“框架”,因为它具有处理网页和会话的特定支持。 [向我展示任何用PHP编写的严重应用程序,而不是基本上是一个网站]。恕我直言,作为一个编程语言,它几乎没有推荐它,即使事后添加了OO;保存PHP 的唯一方法是 Web支持(包括庞大的函数库),以及它是免费的。

作为一个很糟糕的例子,PHP人员遇到了麻烦。关于Unicode的提示在90年代中期响亮而清晰,而且每个现代语言都只是坚持在语言中直接支持Unicode。提示:PHP没有设计;它只是增长了。

答案 3 :(得分:1)

According to Wikipedia

  

计算机中的软件框架   编程,是一种抽象   哪些通用代码提供通用   功能可以有选择性   用户代码覆盖或专门化   提供特定功能[...]

这确实描述了Zend Framework和像CakePHP这样的项目,但没有描述你看到PHP变得更加面向对象的一般趋势。许多语言(Ruby就是一个例子)完全是面向对象的,但不是框架。 Ruby on Rails是用Ruby编写的框架的一个例子。

所以不,PHP不会成为一个框架。

答案 4 :(得分:0)

我认为它正在变成一个大型图书馆,因为它充满了好东西,但实际上没有任何东西可以用一条漂亮的色带将它们捆绑在一起。

诸如Zend或Symfony之类的框架将为组织PHP应用程序创造奇迹。仅PHP,对于大型项目来说不太好。