At the beginning PHP was a scripting language. But after the introduction and improvement of OOP I see more and more objects added to the core. They started with libraries like DOM (the PHP 4 and 5 varieties), later SPL which grew a lot, and the DateTime family which should be part of PECL, Pear or Zend Framework or implemented by each one of us.
Shouldn’t PHP be only for built-in functions, with all these objects passed to something else?
Example: DateTime class is part of the core and I see it is very similar to Zend_Date.
PHP has always been a “framework” for building websites, in the sense that it has specific support for handling web pages and sessions. [Show me any serious application coded in PHP that isn’t fundamentally a web site]. IMHO, as a programming langauge, it has little to recommend it, even with the afterthought addition of OO; the only thing that saves PHP is the web support (including the huge library of functions), and the fact that it is free.
As one example of how poorly it carries itself as a langauge, the PHP folks are having trouble with Unicode. The hints about Unicode were loud and clear back in the middle 90s, and every modern langauge since them simply insisted on having direct Unicode support in the language. Hint: PHP wasn’t designed; it simply grew.