PHP (Fiche)
- Logo Php
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
- Système d'exploitation
- Influencé par:
- 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
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).
- - 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.
- - 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 )
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:
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 ?
Web Définitions
Exemples, Applications, Utilisations
Bon pour commencer :
- https://www.youtube.com/playlist?list=PLjwdMgw5TTLVDv-ceONHM_C19dPW1MAMD
- https://www.tutorialrepublic.com/php-examples.php
Exemples généraux
- Php Logiciel - Guidephp
- Relation entre tables: https://www.developpez.net/forums/d1922294/php/php-base-donnees/php-mysql/creer-relation-entre-tables/
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
- en utilisant le champ TextArea : https://www.webslesson.info/2019/06/how-to-insert-multiple-data-into-mysql-in-php-using-textarea-field.html
Sécurités quelques exemples
- Validation des formulaires : https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/securiser-valider-formulaire/
- Création de captcha: https://www.supinfo.com/articles/single/4025-captcha-recaptcha-php
- Protegez-vos-répertoires : https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/3005121-protegez-vos-répertoires
- PHPauth : https://phpauth.github.io/PHPAuth/
- Exemple de class sur phpclasses: https://www.phpclasses.org/package/7103-PHP-Manage-accounts-and-authenticate-users.html
Liste de nombreuses failles et exemples de sécurités :
- https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2873202-protegez-les-donnees
- https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2680162-nayez-jamais-confiance
Notions de sessions
- Via des exemples de page membre (une section membre):
- PHP: http://www.c2script.com/scripts/script-espace-membre-php-s33.html
- https://www.primfx.com/tuto-php-creer-espace-membre-1-3-inscription-156/
- https://www.primfx.com/tuto-php-creer-espace-membre-2-3-profil-connexion-deconnexion-158/
- https://www.primfx.com/tuto-php-creer-espace-membre-3-3-edition-profil-162/
- Script de connexion PHP utilisant PDO avec Session : https://www.webslesson.info/2016/06/php-login-script-using-pdo-with-session.html
- Créer un captcha: https://www.primfx.com/tuto-php-creer-captcha-438/
Notion de class
- https://www.youtube.com/watch?v=KWKrxf7ydpU
- simple : http://phpdebutant.org/article42.php
- syntaxe de base : https://www.php.net/manual/fr/language.oop5.basic.php
Notion d'Objet - Classe - Encapsulation - Héritage - Polymorphisme - Agrégation:
- https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours/introduction-programmation-orientee-objet/
- https://openclassrooms.com/fr/courses/1665806-programmez-en-oriente-objet-en-php
- http://www.lephpfacile.com/cours/24-la-programmation-objet-concepts-fondamentaux
- https://apprendre-php.com/tutoriels/tutoriel-29-les-classes-et-objets.html
- Méthode magique Set et Get : https://apprendre-php.com/tutoriels/tutoriel-49-mthodes-magiques-set-et-get.html
- Méthode magique Call: https://apprendre-php.com/tutoriels/tutoriel-48-mthodes-magiques-call.html
- Méthode magique Clone: https://apprendre-php.com/tutoriels/tutoriel-74-mthodes-magiques-clone.html
- Méthode magique Sleep et Wakeup: https://apprendre-php.com/tutoriels/tutoriel-75-mthodes-magiques-sleep-et-wakeup.html
- Classes abstraites et finales : https://apprendre-php.com/tutoriels/tutoriel-44-les-classes-abstraites-et-finales.html
- Classe native Exception:
- dépendances et couplage des classes poo:
https://blog.developpez.com/rawsrc/p10377/conception/dependances_et_couplage_des_classes_poo
Exemples:
- Pour les mails : http://www.lephpfacile.com/cours/25-la-programmation-objet-premiere-approche
- Pour créer un captcha : https://www.primfx.com/forum/programmation/php/tutoriel-captcha-maison-34/
- Projet d'un espace administration avec du PHP Orienté Objet. Ce projet n'utilise pas de MVC : https://github.com/Espace-administration/
- Authentification :
- 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/
- identification par création de jetons : https://www.linux-professionnel.net/programmation/php---codes-divers/re-identification-par-jeton
- 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
- Télécharger et installer l'exemple puis l'adapter à votre activité:
- 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:
- https://www.phpclasses.org
- exemple: https://www.phpclasses.org/package/10087-PHP-Register-and-login-users-in-a-database-with-PDO.html
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
- Php Code To Search Data In Mysql Database Table And Dispaly Results In Inputs Using PDO: http://1bestcsharp.blogspot.com/2015/10/php-mysql-search-data-by-id-using-pdo.html
- Php : How To Search And Filter Data In Html Table With Select Options Using Php And MySQL : http://1bestcsharp.blogspot.com/2016/07/php-html-table-filter-data.html
- Pagination des résultats de recherche: https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/
- Autres exemples de création de recherche:
- https://www.243tech.com/creer-une-barre-de-recherche-sur-son-site-php-mysql/
- https://www.bonbache.fr/moteur-de-recherche-web-en-php-370.html
- https://www.bonbache.fr/resultats-approchants-de-moteur-de-recherche-php-372.html
- Php Add , Edit , Remove , Find In MySQL Database Using Php With Source Code : http://1bestcsharp.blogspot.com/2015/10/php-insert-update-delete-search-mysql-database-code.html
- Exemple en vidéo
- Moteur complet php5 à php7 (mis à jour 2018): http://blog.internet-formation.fr/2013/09/moteur-de-recherche-php-objet-poo-complet-pagination-surlignage-fulltext/
- des sous partie de ce travail :
- https://blog.axe-net.fr/tuto-mysql-fulltext-in-boolean-mode/
- http://www.finalclap.com/faq/133-mysql-index-fulltext-moteur-recherche
- Implémenter une recherche FULLTEXT avec InnoDB en mode NATURAL ou BOOLEAN :
Préférences
- Tutoriel avec le plus populaires des framework PHP: Symfony exemple pour Jobeet: Jobeet Symfony
Cours et Tutoriels
- Cours complet PHP MySQL : https://www.drametio.com/index.html
- Php Tutoriel - Php.developpez
- Php - Siteduzero
- Php - Phpdebutant.org
- Php - Viaphp.net
- Php - Apprendre-php
- Php - Phpsources.org - Fr
- Php - Oseox.fr - Fr
- Php - Learnphp-tutorial - En
- Php - Freewebmasterhelp - En
- https://www.pierre-giraud.com/php-mysql-apprendre-coder-cours
- Quelques conseils :
Comparaisons, Difficultés, Questions
Sites Internet
- Php.net : Site officiel et son manuel en français : https://www.php.net/manual/fr/index.php
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:
- Méthode archaïque : How to run php file in visual studio code with xampp :https://www.youtube.com/watch?v=ADicfQ2WAiQ