Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2007, 16h23   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 10
Points : 10
Par défaut [POO] Compatibilité de code PHP4 & PHP5

Bonjour tout le monde,
Je me suis penché dernièrement sur le passage d’un biblio que j’ai fait de PHP4 à PHP5.
J’ai lu un peu partout que la façon de déclarer les attributs changeait (var $attr devenant private, protected ou public $attr), idem pour la déclaration d’un constructeur…
Je trouve tout cette POO dans PHP très intéressante (à la base je suis programme java depuis des années) mais je dois hélas maintenir la compatibilité avec PHP4.

Voici un bête exemple de mon code actuel

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
<?php
 
/** require_once */
require_once(dirname(__FILE__)."/AbstractBody.class.php");
require_once(dirname(__FILE__)."/../Colonne.class.php");
 
class GpGet extends AbstractBody {
 
	var $_property;
 
	var $_title;
 
	var $_key;
 
	var $_hidden = FALSE;
 
	var $_sortable;
 
    /**
     * Constructeur
   	 * @param string property Attribut property
   	 * @param string title Attribut title
	 * @access public
     */
    function GpGet($property, $title="") {
    	$this->setProperty($property);	
    	$this->setTitle($title);	
    }
 
    function initColonne() {
 
		$col = new Colonne();
		$col->setProperty($this->getProperty());
		$this->setColonneProperties($col);
		$col->setListeActionIcon($this->getListeActionIcon());
		return $col;
    }
 
...
} 
 
?>
Bon j’ai donc testé ma biblio avec la beta EasyPHP 2 intégrant PHP5, sans toucher à mon code.
Et là … oh surprise, tout fonctionne !!!

Y a-t-il un risque futur, un effet de bord qui m’aurait échappé si je fais tourner le même code sous PHP4 et PHP 5 ?
Merci d’avance
joebarteam88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2007, 19h05   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
PHP 5 assure la compatibilité du code PHP 4 essentiellement dans la limite des extensions utilisées : certaines d'entres elles n'existant plus en PHP 5 (à moins, comme domxml, qu'elle soit "maintenue" sous PECL) et de tout ce qui est lié à la configuration (beaucoup de choses sont par défaut désactivées, donc réglables, sur PHP 5 alors que PHP 4 les acceptait parfois par défaut, suivant sa version - register_globals, les tableaux $HTTP_METHODE_VARS, ...)

La POO en est le plus bel exemple : les attributs de votre classe déclarés par var sont toujours valables/utilisables et deviennent public en PHP 5 ; un constructeur portant le nom de la classe continue à être cherché (après le constructeur unifié - __construct - si je ne m'abuse).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 04h16   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2002
Messages : 42
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 42
Points : 10
Points : 10
Merci beaucoup pour tes explications julp
joebarteam88 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h19.


 
 
 
 
Partenaires

Hébergement Web