-- Installation

Notes


Installation

Créer un projet Laravel

composer create-project laravel/laravel ns_back
cd ns_back

Configurer la base de données

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbns01
DB_USERNAME=root
DB_PASSWORD=root
php artisan key:generate
php artisan migrate

Activer le routage API _ installe Laravel Sanctum – crée le fichier routes/api.php

Lien : VOIR

php artisan install:api

Lancer le Serveur

php artisan serve

Accès API : http://127.0.0.1:8000/api/ Note : – « . http://127.0.0.1:8000 » : // Vérifier le port qui change parfois et qui peut causer des erreurs : 8000/8001/8002 …etc.

 

 

-- SOS Terminal

php artisan db:seed

Ou pour un seul fichier

php artisan make:seeder XyyyTableSeeder

Recommencer à zéro

php artisan migrate:fresh --seed

 

php artisan config:clear

 

php artisan cache:clear  // Si vous utilisez le cache d'application
php artisan view:clear   // Pour vider le cache des vues (Blade)
php artisan route:cache  // Pour vider le cache des routes
php artisan bootstrap:cache // Pour vider le cache du bootstrap

Vérifie les routes ont bien été crées

php artisan route:list

Les routes de l’API définies dans le fichier routes/api.php. Avec plusieurs méthodes
Route::get, Route::post, Route::put, Route::delete

Exemple :

Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Route::get('/users/{id}', [UserController::class, 'show']);
Route::put('/users/{id}', [UserController::class, 'update']);
Route::delete('/users/{id}', [UserController::class, 'destroy']);

-- Documentation de l'API 1

Swagger/OpenAPI :
endpoints
paramètres
réponses
odes d’erreur
https://editor.swagger.io

http://localhost:8000/api/documentation

-- Les bonnes pratiques pour la conception de bases de données


 

Plan


Séance 25/02/2025 13H30 – NG –

how-to-choose-the-best-email-address ## all-you-need-to-know-about-database-design ## Donnees-spatiales-avec-MySQL

La conception efficace d’une base de données est essentielle pour garantir la performance, la sécurité et la maintenabilité des données. En plus des principes généraux abordés précédemment, il est crucial de considérer des pratiques spécifiques pour certains types de données couramment utilisés. Voici des recommandations détaillées pour la gestion de ces données :

Noms et prénoms 👥

Lors de la conception de champs pour les noms et prénoms, il est important de prévoir une longueur suffisante pour accueillir la diversité culturelle et linguistique des noms, tout en optimisant les performances.

  • Longueur recommandée : Une limite de 50 à 100 caractères pour les prénoms et les noms de famille est généralement adéquate. Cette plage permet de gérer les noms composés ou issus de différentes cultures sans compromettre l’efficacité du système.
  • Normalisation des données : Pour éviter les doublons et les erreurs typographiques, il est conseillé de normaliser les noms en appliquant des règles telles que la conversion en minuscules ou la suppression des accents, selon les besoins spécifiques de l’application.

Adresses e-mail 📧

Le stockage des adresses e-mail nécessite une attention particulière pour assurer leur validité et compatibilité avec les standards internationaux.

  • Longueur maximale : Conformément à la norme RFC 5321, une adresse e-mail peut comporter jusqu’à 254 caractères. Cette spécification tient compte de 64 caractères pour la partie locale (avant le symbole « @ ») et de 255 caractères pour le domaine (après « @ »), bien que la somme totale soit limitée à 254 caractères.
  • Validation : Avant de stocker une adresse e-mail, il est essentiel de vérifier sa conformité aux standards en utilisant des expressions régulières ou des bibliothèques dédiées. Cette validation prévient les erreurs et garantit l’intégrité des données.

Mots de passe 🔐

La gestion sécurisée des mots de passe est cruciale pour protéger les utilisateurs et les systèmes contre les accès non autorisés.

  • Longueur et complexité : Il est recommandé de permettre des mots de passe d’au moins 12 caractères, intégrant une combinaison de lettres majuscules, minuscules, chiffres et caractères spéciaux. Cette complexité réduit le risque de compromission par des attaques par force brute.
  • Longueur maximale : Limiter la longueur des mots de passe à 128 caractères offre un équilibre entre sécurité, compatibilité système et performance. Des mots de passe excessivement longs peuvent entraîner des problèmes de compatibilité et des impacts sur les performances lors du hachage et de la vérification.
  • Stockage sécurisé : Les mots de passe ne doivent jamais être stockés en clair. Utilisez des algorithmes de hachage robustes tels que bcrypt, scrypt ou Argon2, qui intègrent des mécanismes de salage et d’itération pour renforcer la sécurité.

Coordonnées géographiques 🌍

Le stockage précis des données géographiques est essentiel pour les applications nécessitant des calculs de distance ou des représentations cartographiques.

  • Types de données : Utilisez le type DECIMAL pour stocker les latitudes et longitudes, ce qui permet une précision adéquate pour la plupart des applications. Par exemple, DECIMAL(9,6) offre une précision jusqu’à ~0,11 mètre, tandis que DECIMAL(10,8) affine cette précision à ~1,1 millimètre.
  • Types spatiaux : Pour des besoins plus avancés, MySQL propose des types de données spatiaux tels que POINT, qui permettent de stocker des coordonnées géographiques et d’effectuer des requêtes géospatiales complexes.

URL 🌐

Les URL peuvent varier considérablement en longueur et en complexité, nécessitant une gestion adaptée dans la base de données.

  • Type de données : Utilisez VARCHAR(2048) pour stocker des URL, cette longueur étant généralement suffisante pour la majorité des cas.
  • Validation et indexation : Avant de stocker une URL, validez sa structure pour vous assurer qu’elle est bien formée. De plus, l’ajout d’un index sur le champ URL peut améliorer les performances des requêtes, notamment si le champ est fréquemment utilisé dans des filtres ou des recherches.

Prix et montants monétaires 💰

La manipulation de valeurs monétaires requiert une précision rigoureuse pour éviter les erreurs d’arrondi et garantir l’exactitude des transactions financières.

  • Type de données : Le type DECIMAL est recommandé pour stocker des valeurs monétaires, car il offre une précision fixe. Par exemple, DECIMAL(10,2) permet de représenter des montants jusqu’à 99 999 999,99, couvrant ainsi une large gamme de valeurs financières.
  • Considérations supplémentaires : Évitez d’utiliser des types à virgule flottante comme FLOAT ou DOUBLE pour les montants monétaires, car ils peuvent entraîner des imprécisions dues aux représentations binaires des nombres décimaux.

Pseudonymisation des données 🔒

Pour protéger la confidentialité des données sensibles, la pseudonymisation est une technique efficace qui remplace les identifiants directs par des pseudonymes.

  • Techniques : Utilisez des méthodes de hachage ou de chiffrement pour transformer les données personnelles en pseudonymes. Assurez-vous que les clés de chiffrement sont gérées de manière sécurisée et que seules les personnes autorisées peuvent accéder aux données originales.
  • Conformité : La pseudonymisation aide à se conformer aux réglementations sur la protection des données, telles que le RGPD, en réduisant les risques associés au traitement des données personnelles.

 

Les bonnes pratiques pour la conception de bases de données

Les bonnes pratiques pour la conception de bases de données


 

Plan



Séance 25/02/2025 13H30 – NG –

how-to-choose-the-best-email-address ## all-you-need-to-know-about-database-design ## Donnees-spatiales-avec-MySQL

La conception efficace d’une base de données est essentielle pour garantir la performance, la sécurité et la maintenabilité des données. En plus des principes généraux abordés précédemment, il est crucial de considérer des pratiques spécifiques pour certains types de données couramment utilisés. Voici des recommandations détaillées pour la gestion de ces données :

Noms et prénoms 👥

Lors de la conception de champs pour les noms et prénoms, il est important de prévoir une longueur suffisante pour accueillir la diversité culturelle et linguistique des noms, tout en optimisant les performances.

  • Longueur recommandée : Une limite de 50 à 100 caractères pour les prénoms et les noms de famille est généralement adéquate. Cette plage permet de gérer les noms composés ou issus de différentes cultures sans compromettre l’efficacité du système.
  • Normalisation des données : Pour éviter les doublons et les erreurs typographiques, il est conseillé de normaliser les noms en appliquant des règles telles que la conversion en minuscules ou la suppression des accents, selon les besoins spécifiques de l’application.

Adresses e-mail 📧

Le stockage des adresses e-mail nécessite une attention particulière pour assurer leur validité et compatibilité avec les standards internationaux.

  • Longueur maximale : Conformément à la norme RFC 5321, une adresse e-mail peut comporter jusqu’à 254 caractères. Cette spécification tient compte de 64 caractères pour la partie locale (avant le symbole « @ ») et de 255 caractères pour le domaine (après « @ »), bien que la somme totale soit limitée à 254 caractères.
  • Validation : Avant de stocker une adresse e-mail, il est essentiel de vérifier sa conformité aux standards en utilisant des expressions régulières ou des bibliothèques dédiées. Cette validation prévient les erreurs et garantit l’intégrité des données.

Mots de passe 🔐

La gestion sécurisée des mots de passe est cruciale pour protéger les utilisateurs et les systèmes contre les accès non autorisés.

  • Longueur et complexité : Il est recommandé de permettre des mots de passe d’au moins 12 caractères, intégrant une combinaison de lettres majuscules, minuscules, chiffres et caractères spéciaux. Cette complexité réduit le risque de compromission par des attaques par force brute.
  • Longueur maximale : Limiter la longueur des mots de passe à 128 caractères offre un équilibre entre sécurité, compatibilité système et performance. Des mots de passe excessivement longs peuvent entraîner des problèmes de compatibilité et des impacts sur les performances lors du hachage et de la vérification.
  • Stockage sécurisé : Les mots de passe ne doivent jamais être stockés en clair. Utilisez des algorithmes de hachage robustes tels que bcrypt, scrypt ou Argon2, qui intègrent des mécanismes de salage et d’itération pour renforcer la sécurité.

Coordonnées géographiques 🌍

Le stockage précis des données géographiques est essentiel pour les applications nécessitant des calculs de distance ou des représentations cartographiques.

  • Types de données : Utilisez le type DECIMAL pour stocker les latitudes et longitudes, ce qui permet une précision adéquate pour la plupart des applications. Par exemple, DECIMAL(9,6) offre une précision jusqu’à ~0,11 mètre, tandis que DECIMAL(10,8) affine cette précision à ~1,1 millimètre.
  • Types spatiaux : Pour des besoins plus avancés, MySQL propose des types de données spatiaux tels que POINT, qui permettent de stocker des coordonnées géographiques et d’effectuer des requêtes géospatiales complexes.

URL 🌐

Les URL peuvent varier considérablement en longueur et en complexité, nécessitant une gestion adaptée dans la base de données.

  • Type de données : Utilisez VARCHAR(2048) pour stocker des URL, cette longueur étant généralement suffisante pour la majorité des cas.
  • Validation et indexation : Avant de stocker une URL, validez sa structure pour vous assurer qu’elle est bien formée. De plus, l’ajout d’un index sur le champ URL peut améliorer les performances des requêtes, notamment si le champ est fréquemment utilisé dans des filtres ou des recherches.

Prix et montants monétaires 💰

La manipulation de valeurs monétaires requiert une précision rigoureuse pour éviter les erreurs d’arrondi et garantir l’exactitude des transactions financières.

  • Type de données : Le type DECIMAL est recommandé pour stocker des valeurs monétaires, car il offre une précision fixe. Par exemple, DECIMAL(10,2) permet de représenter des montants jusqu’à 99 999 999,99, couvrant ainsi une large gamme de valeurs financières.
  • Considérations supplémentaires : Évitez d’utiliser des types à virgule flottante comme FLOAT ou DOUBLE pour les montants monétaires, car ils peuvent entraîner des imprécisions dues aux représentations binaires des nombres décimaux.

Pseudonymisation des données 🔒

Pour protéger la confidentialité des données sensibles, la pseudonymisation est une technique efficace qui remplace les identifiants directs par des pseudonymes.

  • Techniques : Utilisez des méthodes de hachage ou de chiffrement pour transformer les données personnelles en pseudonymes. Assurez-vous que les clés de chiffrement sont gérées de manière sécurisée et que seules les personnes autorisées peuvent accéder aux données originales.
  • Conformité : La pseudonymisation aide à se conformer aux réglementations sur la protection des données, telles que le RGPD, en réduisant les risques associés au traitement des données personnelles.