PHP (Fiche)

De Didaquest
Aller à la navigationAller à la recherche
  • Elephant-php-logo.pngElipse-php-logo.png

C'est quoi ?

  • Définition : PHP (sigle de PHP: Hypertext Preprocessor) est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. PHP est un langage impératif disposant depuis la version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plateforme plus qu'un simple langage informatique.
  • Traduction
  • Licence ou Copyright: Licence : Logiciel libre / Licence : Gratuit
  • Système d'exploitation: Multiplateforme
  • Influencé par: Perl / C / C++ / Java
  • Téléchargement et Démonstration

Principe via un serveur

Php-principe-via-serveur.png

Quand vous créez des sites web avec PHP par exemple, vous associez le langage avec un serveur web HTTP comme Apache ou Nginx. Chacun se répartit les rôles :

  • Apache gère les demandes de connexion HTTP au serveur. C'est lui qui fait en quelque sorte la circulation et qui gère les entrées/sorties.
  • PHP exécute le code des fichiers .php et renvoie le résultat à Apache, qui se charge à son tour de l'envoyer au visiteur.

Comme plusieurs visiteurs peuvent demander une page en même temps au serveur, Apache se charge de les répartir et de les exécuter en parallèle dans des threads différents. Chaque thread utilise un processeur différent sur le serveur (ou un noyau de processeur) :

Concepts associés ?

Web Définitions

Documentation et utilitaires nécessaires

Liste non exhaustive de logiciels, de programmes ou d'interfaces permettant une utilisation simplifiée et optimisée:

Documentation

La documentation PHP est très complète, bien organisée, gratuite, disponible sur Internet, et traduite dans de très nombreuses langues (dont le français).

:- Liste des fonctions classées par thèmes : https://www.php.net/manual/fr/funcref.php
- Présentation d'une fonction dont on connaît le nom et que l'on veux comprendre : Pour accéder directement à la présentation d'une fonction, tapez l'adresse suivante dans votre navigateur : php.net/nom_de_la_fonction (exemple pour comprendre la fonction maxdb_prepare il suffit de mettre dans le navigateur l'url suivante: php.net/maxdb_prepare )
- Tutoriel pour utiliser la documentation PHP [1] : Le but de cette annexe est de montrer comment la doc' fonctionne, afin d'être capables de trouver facilement et seul l'information recherchées.

Exemples, Applications, Utilisations

Bon pour commencer : 
Un Rappel et une intro: PHP For Beginners HTML/CSS/PHP - Sample Tutorial For Easy Understanding

Exemples généraux

Plusieurs exemples rapide à comprendre : 
Quelques bases simples et avancées: https://www.sitedudev.com/cours/php
Débutant : https://www.bonbache.fr/formation-technique-php-debutant-3-7-1.html
Avancé : https://www.bonbache.fr/formation-technique-php-debutant-3-7-2.html
Du simple au complexe : https://www.primfx.com/tutos/php/
  • Créer des articles : Système d'articles en PHP -
1- Rédaction et Affichage: https://www.primfx.com/systeme-articles-php-1-redaction-affichage-467/
2- Edition et Suppression: https://www.primfx.com/systeme-articles-php-2-edition-suppression-468/
3- Miniatures: https://www.primfx.com/systeme-articles-php-3-miniatures-469/
Comment insérer plusieurs données dans Mysql en PHP 
Sécurités quelques exemples

Liste de nombreuses failles et exemples de sécurités :

Notions de sessions

  • Via des exemples de page membre (une section membre):
  • Script Espace administrateur
Script de connexion PHP utilisant PDO avec Session : https://www.webslesson.info/2016/06/php-login-script-using-pdo-with-session.html

Notion de class

Notion d'Objet - Classe - Encapsulation - Héritage - Polymorphisme - Agrégation: 
https://apprendre-php.com/tutoriels/tutoriel-41-les-exceptions-1re-partie.html
https://apprendre-php.com/tutoriels/tutoriel-42-les-exceptions-2me-partie.html
  • dépendances et couplage des classes poo:

https://blog.developpez.com/rawsrc/p10377/conception/dependances_et_couplage_des_classes_poo

Exemples:
exemple 1: https://alexwebdevelop.com/user-authentication/
exemple 2: https://github.com/delight-im/PHP-Auth
voir le cas de la class Role : https://github.com/delight-im/PHP-Auth/blob/master/src/Role.php
Bon exemple sur la gestion selon les roles: https://www.sitepoint.com/role-based-access-control-in-php/
avec JWT: https://github.com/lcobucci/jwt
Goodbye PHP Sessions, Hello JSON Web Tokens : https://coderwall.com/p/8wrxfw/goodbye-php-sessions-hello-json-web-tokens
Exemple complet avec Espace membre et admin
  • Espace membre version 3 en php 5 :
Pour comprendre : https://codes-sources.commentcamarche.net/source/54940-espace-membre-version-3-en-php-5
Pour installer : instructions: Comme le site a disparu voici son ancienne version

https://web.archive.org/web/20130304105812/http://dbmwebdesign.fr/Modules/espace-membre/creer-espace-membre.html

Télécharger et installer l'exemple puis l'adapter à votre activité:

https://web.archive.org/web/20140811153451if_/http://dbmwebdesign.fr/Modules/espace-membre/medias/ESPACE_MEMBRE_V3-Par%20Jejescript_et_dbmwebdesign.rar

localisation sur notre machine : C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete

login : lina mot de pass: tu le connais comme d'habitude

les classes sont toutes dans un seul fichier : function.php
elles sont appelées via le fichier header.php
Comprendre avec des cas simples : 
::: avatar.php ( C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\membre\avatar.php ou C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\avatar.php) qui appel la classe avatar du fichier function.php
::: regarder le cas de la class Smiley  qui est appelé dans la page C:\xampp\htdocs\lina\Exercicesurlesclasses\ESPACE_MEMBRE_V3-complete\administrateur\messageAll.php
::: aussi voir la class captcha qui est appelé dans


Ressources pour les class:

Exemples de Gestion PHP et MySQL

Des exemples en PDO:

PHP Pdo Code : How To Insert Data Into MySQL Database Form Inputs Text Using Php: http://1bestcsharp.blogspot.com/2015/10/php-mysql-insert-data-from-form-pdo.html
Comment insérer plusieurs données dans Mysql en PHP en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html

Créer un moteur de recherche en PHP et mysql

  • En PDO
  • Autres exemples de création de recherche:
- https://www.youtube.com/watch?v=fWnty4p5v5M
- https://www.youtube.com/watch?v=OxCCOSmyYxY
des sous partie de ce travail :
http://blog.axe-net.fr/recherche-pertinence-mysql-fulltext/
http://blog.axe-net.fr/tuto-mysql-fulltext-in-boolean-mode/


Préférences

  • Un gestionnaire de présence absence d'étudiants expliqué de A à Z :

https://www.webslesson.info/2019/05/online-student-attendance-system-project-in-php.html

  • Un gestionnaire de bibliothèque:
Complet avec les codes : https://github.com/tarikulislam786/OLMS
Un autre concurrent sans les codes: https://www.youtube.com/watch?time_continue=204&v=tr0mtdknOKQ

Cours et Tutoriels

Comparaisons, Difficultés, Questions

  • Exemple de comparaisons de 2005 des éditeurs PHP encore d'actualité: [2]
  • PHP5 versus PHP7: [3]

Sites Internet

Avec Visual Studio Code

Préliminaire : https://code.visualstudio.com/docs/languages/php

  • Dans le cas de xampp, pour indiquer le chemin du php.exe il faut mettre dans le settings.json :
{ "php.validate.executablePath": "C:/xampp/php/php.exe"}
Utilitaire a mettre:
  • PHP Extension Pack
  • PHP Debug
  • Pour formater le code :
phpfmt - PHP formatter Grande notoriété : Dans le cas de xampp, mettre le chemin du php.exe dans le settings.json
{ "phpfmt.php_bin": "C:/xampp/php/php.exe"}
PHP Formatter Moins puissante et en plus pour formateur le code nécessite un PHP-CS-Fixer et des librairies
  • Open PHP/HTML/JS In Browser : Dans le cas de xampp, mettre le chemin du serveur dans le settings.json
   {"open-php-html-js-in-browser.selectedBrowser": "Chrome",
   "open-php-html-js-in-browser.customUrlToOpen": "http://localhost:8888/${relativeDirnameDocumentRoot}/${fileBasename})",
   "open-php-html-js-in-browser.documentRootFolder": "C:\\xampp\\htdocs\\"}
  • php-class-helper : pour créer plus rapidement des class

(remarque: Il y a deux versions la plus récente a moins de popularité mais c'est une dérivée de la première)

Plus ancienne et plus populaire : php-class-helper de predrag-nikolic.php-class-helper
Plus récente, moins populaire mais plus : Class Helper de tiansin.php-class-helper

Quelques astuces en plus:

PHP & API

  • Un bon exemple PHP-API-JSON: [4]

Espace programmeurs et développeurs

=> https://www.webslesson.info/2016/03/read-excel-data-and-insert-into-mysql-database-using-php.html

Bibliographie et Webographie