Non, PHP n'est pas un langage entièrement orienté objet.
Et pas plus que C++ ou Java, parce qu'ils ont tous types primitifs (et PHP dispose également d'une énorme collection de fonctions telles que str_replace()
y is_*()
qui sont clairement de nature procédurale). Les seuls langages purement orientés objet, que je connaisse, sont Ruby et Scala (et on pourrait dire que ce dernier vise davantage le paradigme de la programmation fonctionnelle).
PHP est, ce que l'on pourrait appeler, un "langage à objets".
En ce qui concerne le code écrit en PHP, vous devez comprendre que ce n'est pas parce que vous utilisez des classes que cela le rend OOP. Surtout si votre code est principalement basé sur des classes statiques.
Donc, si vous demandez : "CakePHP est-il un framework OO ?", alors la réponse est - NO . La description la plus flatteuse serait la suivante "programmation orientée vers la classe" . Le code de base est rempli de méthodes et de variables statiques, où la classe agit plus comme un espace de nom. Fondamentalement, CakePHP est un code procédural, enveloppé dans une syntaxe, qui, en surface, imite le code orienté objet.