2010-07-23 4 views
2

J'ai lu que des modifications majeures ont été apportées à la structure OO dans PHP 5, donc je suis préoccupé (avant d'utiliser PHP OOP) que les utilisateurs auraient besoin d'une version spécifique de PHP pour exécuter mon application (4 ou 5). Jusqu'à présent, cela n'a pas vraiment été un problème car il ne s'agissait que de différences telles que des fonctions manquantes ou des valeurs de retour différentes.PHP OOP 4/5 Compatibilité?

Est-ce qu'une application PHP structurée OOP conçue pour PHP 4 fonctionnerait bien sous PHP 5, ou vice versa?

Répondre

8

Pour la plupart, les choses écrites en PHP 4 POO devrait fonctionner en PHP 5.

Cependant, le support de PHP 4 a été abandonné il y a plusieurs années. Il ne reçoit même plus de correctifs de sécurité. Il n'y a aucune raison d'exécuter PHP 4 aujourd'hui.

+0

La raison pour laquelle je demande est que malheureusement beaucoup d'hébergeurs limitent encore leurs utilisateurs à PHP 4. Pensez-vous qu'une application OO orientée PHP 5 fonctionnerait sous PHP 4? – Alex

+3

@Alex: si un hébergeur vous oblige à utiliser php4, restez à l'écart de cet hébergeur. – smoove

0

Je ne m'inquiéterais pas de cela, car php4 n'est plus supporté (lire: pas de correctifs de sécurité).

php4 est mort, ne l'utilisez pas.

1

Oui, il est possible de faire fonctionner votre code sur 4 et 5, par exemple les frameworks php de famouse tels que CodeIgniter et CakePHP supportent également php4 en dehors de php5.

Gardez également à l'esprit que php4 n'est pas utilisé autant que php5. Vous devez avoir un coup d'oeil:

Differences between PHP4 and PHP5

1

Un des plus grands changements dans les méthodes magiques qui sont arrivés en PHP5. Par exemple, vous pouvez effectuer une initialisation lors de la création d'une instance de votre objet à l'aide de la méthode magique __construct(). Cependant, dans l'environnement PHP4, cette méthode ne serait pas exécutée. Un moyen de contourner cela est, pour créer une méthode avec le même nom que votre classe. Par exemple:

<?php 
class SomeName { 

    function __construct() { 
     // do some stuff here 
    } 

    function SomeName() { 
     $this->__construct(); 
     // for PHP 4 support; executes __construct on class initialization 
    } 
} 
$class = new SomeName; 
0

Vous pouvez faire des choses beaucoup plus agréable avec OO que PHP4 PHP5 de. J'ai juste pris la décision de casser la compatibilité PHP4 et cela a significativement amélioré mon code. Avoir des méthodes publiques/privées correctes est agréable, et la nouvelle méthode __toString() est également intéressante.

Je ne pense pas que beaucoup d'hôtes vous limiteraient encore à PHP4. Cela aurait pu être le cas il y a un an, mais certainement pas maintenant. J'ai fait un sondage de paille des utilisateurs et moins de 10% étaient sur PHP4. Parmi ceux-ci, la plupart seraient prêts à améliorer.