Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Les bases du PHP Partie 2

Par Anis BENZIANE Publié le 06/10/2019 à 18:54:27 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Introduction

Cet article divisé en deux parties permet d'avoir un rappel des bases pour le PHP

Sommaire :

OOP & PHP

Rappel OOP

Objet

Classe

Attribut d’instance / de classe

Méthodes d’instance / de classe

Constructeur

Encapsulation

Visibilité des membres

Getter/Setter

Héritage

Syntaxe : class exemple extends exemple2 {…}

Concept : Tous les membres publics et protégés de la classe mère sont accessibles à l’intérieur des sous classes. Une sous classe peut étendre une et une seule classe

Classe abstraite

Interface

Exception

Erreur : Différence entre ce que l’application devrait faire et ce qui est réellement possible. Il faut apprendre à les gérer dans les applications. Une exception est un type d’erreur qui permet une interaction évolué. Ils sont issus de la classe exception. Elles sont manipulable plus facilement.

Exception Class :

4 attributs utiles accessibles par getters :

  • Message : un message d’erreur

  • Code: un code d’erreur numérique

  • Fichier: nom du fichier

  • Ligne : fichier ligne ou l’exception est jeté

Créer une exception : $exception1 = new Exception (‘message’);

Exception Throw : Une fois qu’une exception est créée, elle doit être exécutée avec throw. Avant ça, une exception est un objet Php classique. (Throw $myException ;). Avec throw, le block est stoppé & PHP paramètre automatiquement les exceptions $line et $class.

Try/Catch: Permet de manipuler une exception

Fonctionnalité Php 5.3

Namespaces: Fragmente votre application en « zones ». Evite les collisions avec les noms de classes. (Fonctionne comme les packages en JAVA). Spécificité PHP : Représenté par \

Fonction anonymes: Stock des fonctions dans des variables. Utile pour passer des callbacks aux fonctions PHP.

PDO

Introduction

PDO : accès aux bases de données

Avant PDO : accès aux bases de données avec mysqli pour MySQL ; oci8 pour Oracle …

Avec PHP 5.1 : PDO : fournit une facilité d’utilisation, une plus grande abstraction ; base commune pour tous les connecteurs de la DBMS (Database Manager System) PDO MySQL / PDO oracle / PDO SQL Server … Avantages : Ecrit en langage C ; Optimisation ; Peut exécuter tous les types de requêtes

Bases

3 principales classes utilisées:

  • PDO: Lien DB

  • PDOStatement : Déclaration & ses résultats

  • PDOException: Exception throw quand une erreur se produit

DB Connection: Créer une instance PDO ; le constructeur prend 3 paramètres DSN (mysql : host=localhost ; port=3306 ; dbname=exemple), username & password. Instance PDO peut prendre en compte une exception.

Après être connecté à la DB, on peut exécuter des fonctions grâce à :

  • int exec (string $stmt) : exécute instructions SQL & retourne un nombre de lignes affectées par l’instruction

  • PDOStatement query (string $stmt) : exécute instructions SQL & renvoie ses résultats en tant qu’objet PDOStatement

Gestions des transactions

Transaction: utile lorsque l’on veut un ensemble définit de requêtes. Changement appliqué sont nommées «commit».

Instances PDO fournissent 3 méthodes: fonction utilisée pour exécuter les mêmes instructions SQL à plusieurs reprises avec efficacité. Elles fonctionnent en 3 étapes:

  • Préparer: un modèle d’instruction SQL est créé et envoyé à la base de données

  • La base de données compile et exécute l’optimisation des requêtes sur le modèle de l’instruction SQL

  • Exécuter : l’application lie les valeurs des paramètres et la base de données exécute l’instruction

Avantage : Réduit le temps, la préparation de la requête est effectuée une seule fois & utiles contre les injections SQL.

MVC Pattern

Model : Récupère les valeurs de source de données

View : Représente l’interface utilisateur et est appelé par le Controller

Controller : Processus et réponses à des événements et peut modifier les données du modèle

Processus d’une requête:Un client demande à afficher une page ; Controller obtient la requête ; View intègre les données et la page est renvoyé au client

Avantages: La séparation des préoccupations (améliore la réutilisabilité) ; gain de temps ; flexibilité pour le dvpt.

Inconvénient: Pas intéressant pour les petits projets

Juste un modèle: juste une façon d’organiser le code.

Database: Les Controller ont accès à la base de données ; ils transmettent des données à View. Pas d’accès de View au Model.

Symfony

Vue d’ensemble

Source : https://www.journaldunet.com/web-tech/developpeur/1135511-l-architecture-de-symfony2-au-crible/

Framework: Un ensemble de composants qui structure l'application et qui va contraindre la maniere dont vous allez la développer, il est toujours associé à un language de programmation.

Avantage:

  • Evite de réécrire toujours la même chose : les Framework de devloppement web intègrent quasiment tous des outils simples, efficaces et surtout éprouvés pour gérer les cas d’utilisations de l’authentification, la connexion aux différentes sources de données.

  • Industrialisation, rationalisation : Les Framework permettent à leurs utilisateurs de développer des applications plus robustes, plus évolutives et plus industrialisables.

  • Profiter des évolutions : Si on utilise un Framework front-end CSS/JS, on peut mettre à jour les librairies pour qu’elles soient au gout du jour.

Inconvénient :

  • Courbe d’apprentissage : Certains Framework permette aux développeurs de monté en compétence rapidement, d’autres demandent un temps d’apprentissages beaucoup plus long

  • Connaissances préalables : Une mauvaise connaissance des concepts généraux est généralement synonyme de mauvaise compréhension des princes des bases des Framework, et donc de choix techniques pas judicieux.

  • Couplage & dépendance : Un Framework est synonyme de dépendance.

Architecture

Symfony est un Framework MVC libre écrit en PHP.

L’arborescence: Plutôt flexible mais celle de la distribution Standard Edition reflète la structure typique et recommandée d’une application Symfony :

  • App/: configuration de l’application

  • Src/: Code PHP du projet

  • Vendor/ : bibliothèques

  • Web/ : Répertoire Web racine

Principales entités participant au traitement d’une requête:

  • Le Kernel: C’est le cœur du Framework, c’est un composant interne.

  • Le Service Container : est un composant qui permet d’avoir des « services » à notre disposition.

MVC Pattern dans Symfony

Symfony respect le modèle MVC. Ce qui permet de séparer le code en 3 couches:

  • Couche Modèle : contenant le traitement logique des données

  • Couche Vue : couche où interagit l’utilisateur. Dans symfony elle est principalement faite de Template PHP

  • Couche Contrôleur : morceau de code qui appelle le modèle pour obtenir certaines données qu’il passe à la Vue pour le rendu au client

Requêtes

En PHP accès aux requêtes utilisateurs avec Get & Post et accès aux sessions utilisateurs avec Session.

Avec Symfony, possibilité d’accéder à ces valeurs en obtenant le contexte de la requête :

  • $this -> query (contient un objet ParameterBag contenant tous les paramètres GET)

  • $this -> request (contient un objet ParameterBag contenant tous les paramètres POST)

  • getSession () : renvoie un objet Session contenant toutes les valeurs SESSION

  • getSession () : renvoie un objet Session contenant toutes les valeurs SESSION

Bundle Concept

Un bundle est un module compatible avec n’importe quelle application Symfony. Il contient une multitude d’éléments comme des contrôleurs, des Template, des règles de routage ou des services. Les bundles sont les seules entités capables de modifier le comportement de l’application, la quasi-totalité de ce que l’on développe sera contenu dans des bundles.

Unit Test

Les Test Unitaires sont la pour tester le bon fonctionnement de l’application, qu’elle corresponde bien au cahier des charges. Cela se fait pendant le décodage de l’application, pour vérifier qu’il n’y ai pas de bugs.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels