Giter Site home page Giter Site logo

afpapoo's Introduction

PHP Programmation Orientée Objet - Intro

Ce qu'elle apporte

La programmation orientée objet apporte de la structure. Cela permet de créer un standard de développement au niveau personnel mais aussi, et surtout au niveau professionnel. Ce sera plus facile de coder en équipe en passant par de l'orienté objet.

La différence avec le procédural

  • Création d'une structure au prélable
  • Meilleure encapsulation et sécurisation des données

Principes de base de la POO

  • Abstraction : La façon de déterminer les informations nécessaires pour une entité dans le monde extérieur

  • Héritage : Le concept de la hiérarchisation du débit de données. Les données devront naviguer du haut vers le bas.

  • Encapsulation : Le concept qui permet de décider les données qui navigueront verticalement. (Visibilité )

  • Polymorphisme : Le concept qui permet de déterminer les changements de comportements en lien avec le besoin créé par l'héritage.

Input -> [POO] -> Output

Parent : Utilisateur -> Enfant : Admin & Modérateur

Composants de la POO

Classes

Les classes sont la façon de déterminer la structure des données. C'est le squelette de ces données.

  • Propriétés : Ce sont les variables que chaque objet (ou instances) de la classe vont posséder.

  • Accesseurs/Modificateurs (Getters/Setters) : Ce sont les fonctions de base qui permettent d'accéder et de modifier les propriétés des objets.

  • Méthodes : Ce sont les fonctions propres à cette classe que chaque objet (ou instance) de la classe vont posséder. Les méthodes peuvent être surchargées (pensez overwrite) par leurs enfants pour créer une méthode du même nom.

  • Constructeur : C'est une fonction qui sert lors de la création de chaque objet propre à la classe. Elle permet de définir des valeurs de base pour chaque objet.

  • Modificateurs d'accès : Les modificateurs ce sont les mots-clés que l'on retrouve avant les propriétés et méthodes de nos classes qui permettent de déterminer la visibilité de ces propriétés/méthodes. private : C'est le modificateur qui est le plus restrictif puisqu'il empêche l'accès à l'extérieur de la classe mais aussi lors de l'héritage. public : C'est le modificateur le moins restrictif puisqu'il permet l'accès à l'extérieur de la classe mais aussi lors de l'héritage. protected : C'est le modificateur qui est conseillé pour l'héritage puisqu'il empêche l'accès à l'extérieur de la classe mais permet l'accès lors de l'héritage.

  • Héritage : Une classe peut hériter d'une autre classe et récupérer toutes les propriétés et méthodes qui sont publiques ou protected. Cette héritage permet une hiérarchisation de l'application.

  • Abstraction : On peut créer des classes abstraites qui ne sont pas instantiables, mais qui permettent de définir le squelette des classes qui vont hériter de celle-ci.

Objets

Les objets sont un type de données primitive, qui permettent d'instancier la classe. Cela signifie que la classe devient concrète pour un cas précis.

Namespaces

Les namespaces sont des environnements d'exécution du code qui fonctionnent comme des couches (layers). Par défaut le namespace est le namespace global, c'est à dire que c'est l'environnement qui englobe toute votre application. Toutes les classes sont déclarées dans le même environnement par défaut. Créer un nouveau namespace sert à profiter d'un environnement stérile et libre de toutes variables/méthodes/fonctions.

Projet Blog POO

afpapoo's People

Contributors

negialba avatar

Watchers

 avatar

Forkers

kcrozes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.