Différences entre versions de « PHP (Fiche) »

De Didaquest
Aller à la navigationAller à la recherche
 
(15 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
* '''Logo Php'''
+
* [[Fichier:elephant-php-logo.png|100px]][[Fichier:elipse-php-logo.png|100px]]
[[Fichier:elephant-php-logo.png|100px]]
 
[[Fichier:elipse-php-logo.png|100px]]
 
  
 
= C'est quoi ? =
 
= 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]].
 
* '''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'''
 
* '''Traduction'''
* '''Licence ou Copyright'''
+
* '''Licence ou Copyright''': [[Licence : Logiciel libre]] / [[Licence : Gratuit]]
** [[Licence : Logiciel libre]]  
+
* '''Système d'exploitation''': [[Multiplateforme]]
** [[Licence : Gratuit]]
+
* '''Influencé par''': [[Perl]] / [[C]] / [[C++]] / [[Java]]
* '''Système d'exploitation'''
 
** [[Multiplateforme]]
 
* '''Influencé par''':
 
** [[Perl]]
 
** [[C]]
 
** [[C++]]
 
** [[Java]]
 
 
* '''Téléchargement et Démonstration'''
 
* '''Téléchargement et Démonstration'''
* '''Utilitaires nécessaires'''
 
Voici une liste de logiciels, de programmes ou d'interfaces permettant une utilisation simplifiée et optimisée:
 
**
 
  
= Documentation =
+
= Principe via un serveur =
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).
+
[[Fichier:Php-principe-via-serveur.png|vignette]]
*
+
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 :
:- '''Voir la liste des fonctions classées par thèmes''' : https://www.php.net/manual/fr/funcref.php
+
 
Si vous ne savez pas exactement quelle fonction vous cherchez, si vous voulez flâner un peu et avoir la liste des fonctions classées par catégories… c'est la première méthode que vous utiliserez.
+
* 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.
:- '''Accéder à la présentation d'une fonction dont on connaît le nom''' : 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 )
+
* PHP exécute le code des fichiers .php et renvoie le résultat à Apache, qui se charge à son tour de l'envoyer au visiteur.
Si vous connaissez le nom d'une fonction, mais que vous ne savez pas vous en servir, c'est cette seconde méthode que l'on utilisera. C'est la méthode la plus simple, la plus rapide, et la plus fréquemment utilisée.
+
 
:- Tutoriel pour utiliser la documentation PHP:
+
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) :
::: https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918372-utilisez-la-documentation-php
 
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.
 
  
 
= Concepts associés ? =
 
= Concepts associés ? =
* [[Programmation impérative]]
+
* [[Programmation impérative]] / [[Programmation orientée objet]] / [[Programmation fonctionnelle]]
* [[Programmation orientée objet]]
 
* [[Programmation fonctionnelle]]
 
  
 
= Web Définitions =
 
= Web Définitions =
* [[Php - Wikipedia]]
+
* [[Php - Wikipedia]] / [[Php - Phpmyvisites.net]] / [[Php - Dicodunet]] / [[Php - Codes-sources]]
* [[Php - Phpmyvisites.net]]
+
 
* [[Php - Dicodunet]]
+
= Documentation et utilitaires nécessaires =
* [[Php - Codes-sources]]
+
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 [https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918372-utilisez-la-documentation-php] : 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 =
 
= Exemples, Applications, Utilisations =
Ligne 47 : Ligne 37 :
 
* https://www.youtube.com/playlist?list=PLjwdMgw5TTLVDv-ceONHM_C19dPW1MAMD
 
* https://www.youtube.com/playlist?list=PLjwdMgw5TTLVDv-ceONHM_C19dPW1MAMD
 
* https://www.tutorialrepublic.com/php-examples.php
 
* https://www.tutorialrepublic.com/php-examples.php
 +
 +
Un Rappel et une intro: PHP For Beginners HTML/CSS/PHP - Sample Tutorial For Easy Understanding
 +
* https://www.youtube.com/watch?time_continue=580&v=zexDCbd4--M
  
 
== Exemples généraux ==
 
== Exemples généraux ==
Ligne 183 : Ligne 176 :
  
 
== Préférences ==
 
== 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
 +
 
* Tutoriel avec le plus populaires des framework PHP: [[Symfony]] exemple pour Jobeet: [[Jobeet Symfony]]
 
* Tutoriel avec le plus populaires des framework PHP: [[Symfony]] exemple pour Jobeet: [[Jobeet Symfony]]
  
Ligne 203 : Ligne 202 :
  
 
= Comparaisons, Difficultés, Questions =
 
= Comparaisons, Difficultés, Questions =
* une comparaison de 2005 des éditeurs PHP encore d'actualité: https://php.developpez.com/comparatifs/editeurs/
+
* Exemple de comparaisons de 2005 des éditeurs PHP encore d'actualité: [https://php.developpez.com/comparatifs/editeurs/]
 +
* PHP5 versus PHP7: [https://www.lije-creative.com/php-7-vs-php-5-x-quelles-sont-les-differences/]
  
 
= Sites Internet =
 
= Sites Internet =
* [[Php.net]] : Site officiel et son manuel enfrançais : https://www.php.net/manual/fr/index.php
+
* [[Php.net]] : Site officiel et son manuel en français : https://www.php.net/manual/fr/index.php
  
 
= Avec Visual Studio Code =
 
= Avec Visual Studio Code =
Ligne 215 : Ligne 215 :
  
 
  Utilitaire a mettre:
 
  Utilitaire a mettre:
* '''PHP Extension Pack
+
* '''PHP Extension Pack'''
'''* '''PHP Debug
+
* '''PHP Debug'''
'''* Pour formater le code :
+
* 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 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"}
 
  { "phpfmt.php_bin": "C:/xampp/php/php.exe"}
:: Moins puissante : PHP Formatter (pour formateur le code) nécessite un PHP-CS-Fixer
+
:: '''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''' : 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.selectedBrowser": "Chrome",
 
     "open-php-html-js-in-browser.customUrlToOpen": "http://localhost:8888/${relativeDirnameDocumentRoot}/${fileBasename})",
 
     "open-php-html-js-in-browser.customUrlToOpen": "http://localhost:8888/${relativeDirnameDocumentRoot}/${fileBasename})",
     "open-php-html-js-in-browser.documentRootFolder": "C:\\xampp\\htdocs\\",
+
     "open-php-html-js-in-browser.documentRootFolder": "C:\\xampp\\htdocs\\"}
    "phpfmt.php_bin": "C:/xampp/php/php.exe"}
+
 
 +
* '''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:
 
Quelques astuces en plus:
 
* Méthode archaïque : How to run php file in visual studio code with xampp :https://www.youtube.com/watch?v=ADicfQ2WAiQ
 
* Méthode archaïque : How to run php file in visual studio code with xampp :https://www.youtube.com/watch?v=ADicfQ2WAiQ
 +
 +
= PHP & API =
 +
* Un bon exemple PHP-API-JSON: [https://www.lije-creative.com/tuto-application-php-api-json/]
 +
= Espace programmeurs et développeurs =
 +
* Nombreuses Questions / Réponses : https://www.ipgirl.com/ip/php
 +
* Très bons exemples :
 +
** https://phppot.com
 +
** https://www.webslesson.info/search/label/php et particulièrement: http://demo.webslesson.info
 +
=> https://www.webslesson.info/2016/03/read-excel-data-and-insert-into-mysql-database-using-php.html
  
 
= Bibliographie et Webographie =
 
= Bibliographie et Webographie =

Version actuelle datée du 10 octobre 2019 à 09:39

  • 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