Programmation Orientée Objet avec PHP 5

La dernière version de PHP (version 5 ) offre davantage de possibilités pour la Programmation Orientée Objet (POO). Connaissant déjà cette méthode de programmation (avec d'autres langages tels JAVA ou C++), j'ai eu envie de m'y plonger et de voir ce que peut apporter la POO à un langage de programmation web (php dans mon cas). J'ai donc commencé à programmer quelques fonctionnalités en objet pour les 3 portails de Coconews  : Guadeloupe, Martinique et Guyane. J'ai utilisé la POO pour développer la zone privilège (bientôt en ligne) et le support par ticket.

poo

La POO est, comme son nom l'indique, basée sur la notion d'objet. Un objet possède des attributs (repésentant l'état de l'objet) et des méthodes (représentant des opérations applicables à l'objet). Toute la façon d'imaginer, de penser le code est remis en question par rapport au php classique (dit "procédural"). Il faut un petit temps d'adaptation pour faire du code réellement en objet. La difficulté provient du fait que l'on a parfois du mal à imaginer certaines notions virtuelles sous forme d'objet.

Ce qui est appelée "classe", est tout ce qui définit un objet. Un objet est unique (on parle ici d'instance ou d'occurence de classe) mais deux objets peuvent être instanciés à partir de la même classe. Donc la première chose à faire en POO, c'est de créer une classe (après avoir analyser le problème et savoir ce que l'on veut faire exactement. Voici sommairement la syntaxe à respecter pour créer une première classe (contenu du fichier MaClasse.class.php) :

class MaClasse {
	private $id;
	private $attribut;
	public function __construct($id= null, $attribut= null)
	{
		if(!empty($id)) {
			$this->id = $id;
		}
		if(!empty($attribut)) {
			$this->attribut = $attribut;
		}
	}

	public function affiche()
	{
		echo "L'attribut vaut $this->attribut";
	}
}

Quelques explications sur la classe créée ci-dessus :

  • Une des premières règles de la POO est que le nom de la classe doit commencer par une majuscule. Après avoir indiqué le nom de la classe, on définit les attributs de cette classe (ici les attributs sont id et attribut. La première fonction (__construct) est appelé le constructeur de la classe. C'est grâce à cette fonction que l'on peut créer un objet de cette classe en faisant simplement "new()" (voir ci-après).
  • La variable $this est une variable spécifique à la POO, elle permet d'indiquer que c'est cet objet qui est modifié. $this->id correspond à l'attribut id de l'objet sur lequel on travaille.
  • La deuxième fonction (affiche) est une méthode de l'objet, ici c'est une méthode toute simple qui permet d'afficher, avec une phrase, la valeur de l'attribut nommé attribut.

Une fois la classe créée, il faut pouvoir s'en servir et créer des objets de cette classe :

include("MaClasse.class.php");$objet = new MaClasse(1, 10);$objet->affiche();

La première ligne permet d'inclure le fichier contenant la classe. La deuxième instruction permet de créer un nouvel objet grâce à l'appel au constructeur avec le mot "new". Après cette ligne, on a donc un objet MaClasse (nommé "$objet") dont les attributs id et attribut ont respectivement 1 et 10 comme valeur. Enfin la dernière ligne affiche : "L'attribut vaut 10".

Voici donc le nécessaire pour débuter avec la POO en PHP. Malgré le temps d'adapation à la philosophie de la POO, cette technique de programmation fait gagner du temps. En effet, on se trouve, à la fin, avec un code plus compréhensible (surtout sur des gros projets), plus facilement réutilisable et surtout plus facilement maintenable.

Enfin, je mets quelques liens qui m'ont permis de débuter avec la Programmation Orientée Objet en PHP. Je préfère apprendre avec des exemples concrets, donc la plupart de ces liens vous en présenteront :

Commentaires

  • Click Here
    Magnificent goods from you, man. I have have in mind your stuff previous to and
    you are simply too magnificent. I actually like what
    you've received here, certainly like what you are stating and
    the way during which you assert it. You are making it enjoyable and you continue to take care
    of to keep it sensible. I can't wait to learn much more from you.
    This is really a wonderful web site.
  • sexy gaming
    แถมยังมีการพนัน ในลักษณะของเกมต่างๆที่เบิกบาน ซึ่งสิ่งเหล่านี้เป็น สิ่งที่เป็น ลักษณะเด่นของเว็บ แห่งนี้ ซึ่งกรรมวิธีสร้างช่องทางที่ดีให้เราพวกเราก็หาโอกาสจากการเล่นเกมส์เหล่านี้นะครับเปลี่ยนแปลงมาเป็น ช่องทางให้กับพวกเราให้เราได้สร้างจังหวะให้กับตัวเองให้มากที่สุด แนวทางการที่ต่างกันออกไป แต่ละแนวทางการ ก็ขึ้นอยู่กับเกมนั่นๆว่า

    แต่ละเกมมีความ มีความยากง่ายขนาดไหน ซึ่งช่องทางสำหรับเพื่อการที่จะเรียนหรือ หาวิธีการต่างๆเกี่ยว กับเกมเหล่านี้นั้น ก็มีอยู่มากในเว็บไซต์ มีเกมให้เล่นจำนวนมากแล้วก็ มีบทความแนวทางการต่างๆสำหรับในการที่จะมาบอกว่าเกมต่างๆนั้น มีวิธีการเล่นเป็น
  • fun88 ทางเข้า 2021
    What i do not realize is in truth how you are not really a lot more neatly-appreciated than you might be right
    now. You're so intelligent. You understand thus significantly in terms
    of this topic, made me in my opinion consider it from so
    many numerous angles. Its like men and women are not involved
    until it is something to do with Lady gaga! Your own stuffs great.
    At all times maintain it up!
  • situs ozzo188
    Hi there, You have done a fantastic job. I will definitely digg it and personally recommend to
    my friends. I'm sure they will be benefited from
    this web site.
  • therapist
    Hey there! I know this is kinda off topic however I'd figured
    I'd ask. Would you be interested in trading links or maybe guest writing a blog article or vice-versa?
    My website goes over a lot of the same topics as yours and I
    believe we could greatly benefit from each other.

    If you are interested feel free to send me an email.
    I look forward to hearing from you! Fantastic blog by the way!
  • counseling
    Great post. I was checking constantly this weblog and I'm inspired!
    Very helpful information particularly the closing section :
    ) I take care of such info much. I used to be looking for
    this particular info for a very long time. Thank you and
    good luck.
  • mia malkova xxx
    Heya this is kind of of off topic but I was wanting
    to know if blogs use WYSIWYG editors or if you have to manually code with HTML.
    I'm starting a blog soon but have no coding skills so I
    wanted to get guidance from someone with experience.
    Any help would be greatly appreciated!

Ajouter un commentaire