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

  • Closing A Sale
    Howdy! I realize this is somewhat off-topic however I needed to ask.
    Does running a well-established website such as yours take a massive amount work?
    I'm brand new to blogging but I do write in my diary every day.
    I'd like to start a blog so I can easily share my own experience
    and thoughts online. Please let me know if you have any
    recommendations or tips for brand new aspiring blog owners.
    Thankyou!
  • Professional Development Training Adelaide
    After I originally commented I appear to have clicked on the -Notify
    me when new comments are added- checkbox and now whenever a comment is added I get 4 emails with
    the exact same comment. There has to be a means you are able to remove me from
    that service? Kudos!
  • real estate in cyprus
    Terrific post but I was wanting to know if you could write
    a litte more on this subject? I'd be very thankful
    if you could elaborate a little bit further. Appreciate it!
  • auto impostor
    My family alwways say tat I am wasting my time here at web, but I know I am gettig knowledge daily by reading thes
    pleasant articles or reviews.
  • Lifed Jeep Wrangler
    I believe what you posted made a great deal of sense.
    But, consider this, suppose you wrote a catchier post title?
    I am not saying your information isn't good, however suppose you added a title that grabbed a
    person's attention? I mean Programmation Orientée Objet avec PHP 5
    is a little boring. You ought to glance at Yahoo's front page and watch how they create article headlines to get people to open the links.
    You might add a related video or a related picture or two to get readers
    excited about what you've got to say. Just my opinion, it would make your posts a little bit more interesting.
  • https://blip.fm/dockeast20
    There’s no technique to get their salaries paid in Bitcoin based on an all-time excessive
    of 48,696. Bitcoin miners hosted and cloud compilers Q blocks can get disturbed because of all these ways.

    Illegal drug traffickers money out your place on the cryptocurrencies you should buy to.
    Mined cryptos have fully examine cryptocurrency
    and learn to transact purchase sell. The time period will be securely transferred between any two folks purchase the
    digital foreign money. They educate and information traders how to pick and that can be arrange.
    Extra on the next halving is going to assist set buyers the worth.
    The Minnesota-based firm's Twitter account gained more than 75 of that the blockchain. Blockchain account.

    Along with your linked bank account and steer clear of a 3rd function as the platform
    I'll. Why not you can afford to miss if you actually need
    a checking account. Complete a web-based enterprise forward of time can reach volumes of 1,000 BTC, and the platform.
  • Medigap Rates
    Awesome! Its actually amazing article, I have got much clear idea concerning from this article.
  • Medicare Advantage vs Medicare Supplements
    Howdy! I realize this is somewhat off-topic however I had to ask.
    Does managing a well-established blog such as yours take a large amount of work?
    I'm brand new to writing a blog however I do write
    in my diary on a daily basis. I'd like to start a blog so I can easily share my own experience and feelings online.
    Please let me know if you have any kind of ideas or tips for new aspiring bloggers.
    Thankyou!
  • Medicare Changes
    My brother suggested I would possibly like this website.
    He was entirely right. This publish actually made my day. You cann't believe just how a lot time I had spent for
    this information! Thank you!
  • inheritance solicitors
    Wow! Finally I got a weblog from where I be capable of genuinely get useful facts regarding my
    study and knowledge.
  • car towing tempe
    What's up mates, pleasant article and fastidious arguments commented at
    this place, I am really enjoying by these.
  • Ian
    • 12. Ian Le Mer 03 fév 2021
    Nice post. I learn something new and challenging on sites I stumbleupon every day.

    It will always be exciting to read articles from other writers and use a little something from their sites.
  • jumppy (singapore) pte Ltd,
    I visit every day a few blogs and information sites to read articles or
    reviews, but this weblog offers quality based content.

Voir plus de commentaires

Ajouter un commentaire