Évaluation du projet PHP
Liste des critères d'évaluation du projet MVC.
- Respect du modèle MVC
- lancement du fichier index, appel contrôleur, appel structure html et appel de la vue.
- Séparation du code de gestion (PHP) et code d'affichage (html).
-
Création d'objets PHP pour la gestion des flux d'informations entre la base de données et les vues.
-
Faire la création, mise à jour et suppression d'un article de la base de données.
-
Faire la création, mise à jour et suppression d'un utilisateur de la base de données.
-
Faire la connexion d'un utilisateur et maintenir la connexion durant la session.
-
Afficher des liens de menu et des fonctionnalités du blog uniquement pour les membres connectés
-
Bloquer l'accès aux pages de gestions pour les utilisateurs non connectés.
-
Documentation du code source en respectant le standard PHPDoc.
-
Utilisation de Jquery AJAX pour valider une connexion utilisateur ou un formulaire quelconque du site et/ou une suppression d'article ou utilisateur.
-
Connexion à la base de données avec PDO et sécurisation des requêtes SQL
-
Installation d'un environnement de développement :
-
serveur web, moteur de base de données, configuration d'un IDE avec les modules de création automatique de documentation (ex:PHPDocumentor).
-
Respect des conventions de nommages des méthodes, variables, objet...
-
Respect du principe de développement SOLID avec une fonction par méthode.
-
Mise en place des bonnes pratiques pour sécuriser votre application.
- Cryptage des mots de passe utilisateur.
- Filtrage des données
- Création d'un connexion spécifique pour votre scripte PHP
Création d'un moteur de recherche d'articles
Listes des fonctionnalités
Afficher un formulaire de recherche d'articles
-
champ mots clés : ce champ va récupérer une liste de mots clés séparés par des espaces.
Il faudra rechercher dans la base de données les articles dont un des mots est présent soit dans le titre,
soit dans le texte de l'article.
-
Un champ de sélection par thématique. Si l'utilisateur renseigne ce champ, il ne faudra afficher uniquement les articles concernant
le thème sélectionné.
-
Un champ auteur : si le champ est renseigné, il faudra afficher les articles dont le nom de l'auteur correspond.
Principes de recherches et d'affichage
Si l'utilisateur renseigne des mots clés et une thématique alors il faudra afficher les articles du thème choisi qui comportent
les mots clés renseignés.
Si l'utilisateur renseigne des mots clés et un auteur, il faudra afficher les articles de l'auteur dont les mots
clés correspondent.
Si l'utilisateur renseigne un auteur et une thématique, il faudra afficher les articles de l'auteur
correspondant à la thématique.
Etc.
Algorithme
Création d'une classe PHP dédiée à la recherche
Créer une classe PHP qui va traiter la demande d'informations provenant du formulaire html.
La classe devra traiter et stocker les informations du formulaire.
Pour cela il faudra des propriétés (variables) correspondant aux champs du formulaire.
Des méthodes de classe pour récupérer, traiter et stocker chaque champ de recherche.
Il pourrait être bien par exemple de faire une méthode de classe pour traiter chaque champ de recherche.
Donc trois méthodes pour récupérer et traiter les trois champs de recherches (mots clés, thématique, auteur).
Cela pour éviter d'avoir une méthode avec trop de fonction PHP dedans.
Et pourquoi pas une méthode générique qui va appeler une par une les trois méthodes ci-dessus.
Cette méthode générique sera utilisée dans le contrôleur pour éviter d'écrire trois ligne d'appel de méthodes.
La classe aura d'autres méthodes pour créer une requête dynamique, récupérer les infos dans la base de données,
transmettre le résultat de la requête, etc. A vous de choisir ce que vous souhaitez mettre dedans.
Reflexion
Pour le développeur, il faudra trouver une solution pour récupérer les mots clés renseigner et les séparer pour
les traiter un par un.
Il faudra créer une requête SQL dynamique qui va se construire en fonction du nombre de mots clés mais aussi
en fonction des autres champs renseignés.
La requête comportera soit des mots clés, soit une thématique, soit un auteur ou alors l'ensemble des
possibilités de recherche.
Affichage
L'affichage comportera la liste des articles trouvés en base de données et classés par ordre chronologique.
Il faudra donc faire un tri sur la date de création de l'article (Le plus récent en premier).
Le résultat affichera pour chaque article :
le titre de l'article
les 250 premiers caractères du texte de l'article
le nom de l'auteur
la date de création
La thématique
Vous pouvez afficher les trois derniers points sur la même ligne pour gagner de la place.
AJAX
La recherche se fera en méthode AJAX.
Lors de la validation du formulaire, les données du formulaire seront transmises au serveur via la méthode AJAX de Jquery.
L'affichage du résultat se fera donc sans recharger la page.
Le but est de pouvoir garder les infos de recherche dans le formulaire de recherche pour pouvoir modifier rapidement une recherche.
Et surtout ne pas laisser l'utilisateur attendre avec une page qui se recharge.
Lors de la recherche, vous pourrez afficher un message ou un GIF animé pour indiquer que la recherche est en cours.
Le message ou le GIF sera caché ou supprimé de la page dès que le résultat de recherche sera disponible pour l'affichage.