Modern PHP Engineering
Chapitre 20
20 — Ressources PHP
20 — Ressources PHP
Cours 20 — Ressources PHP
20.1 Outils de Développement
PHPStorm
PHPStorm est l'IDE de référence pour le développement PHP, développé par JetBrains.
# Installation via JetBrains Toolbox
# Télécharger depuis https://www.jetbrains.com/toolbox-app/
# Commandes utiles
# Ouvrir un projet depuis le terminal
phpstorm .
# Valider le code avec PHPStan depuis PHPStorm
# Tools > PHP > PHPStan > Run
Fonctionnalités essentielles :
- Autocomplétion intelligente avec inférence de type
- Refactoring avancé (Renommer, Extraire méthode, Déplacer)
- Débogueur intégré (Xdebug/Zend Debugger)
- PHPStan et Psalm intégrés
- Support Laravel via plugin Laravel Idea
- Base de données : requêtes, diagrammes ER
- Tests unitaires intégrés
Raccourcis clavier :
| Action | Windows/Linux | macOS |
|---|---|---|
| Rechercher partout | Shift + Shift | Shift + Shift |
| Aller à la classe | Ctrl + N | Cmd + N |
| Aller au fichier | Ctrl + Shift + N | Cmd + Shift + N |
| Naviguer dans les méthodes | Ctrl + F12 | Cmd + F12 |
| Renommer | Shift + F6 | Shift + F6 |
| Extraire méthode | Ctrl + Alt + M | Cmd + Alt + M |
| Formatage du code | Ctrl + Alt + L | Cmd + Alt + L |
| Rechercher dans le projet | Ctrl + Shift + F | Cmd + Shift + F |
| Terminal intégré | Alt + F12 | Alt + F12 |
| VCS commit | Ctrl + K | Cmd + K |
VS Code
VS Code est une alternative légère avec des extensions PHP puissantes.
Extensions recommandées :
{
"recommendations": [
"bmewburn.vscode-intelephense-client",
"neilbrayfield.php-docblocker",
"recca0120.vscode-phpunit",
"junstyle.php-cs-fixer",
"m1guelpf.better-pest",
"bradymcd.nlsintelephense",
"shevaua.phplint",
"amiralizadeh9480.laravel-extra-intellisense",
"onecentlin.laravel-blade",
"codingyu.laravel-goto-view",
"ctf0.blade-blame",
"shufo.vscode-blade-formatter",
"austenc.laravel-docblock",
"mikestead.dotenv",
"editorconfig.editorconfig",
"github.vscode-github-actions"
]
}
Extensions clés :
| Extension | Description |
|---|---|
| Intelephense | Autocomplétion, validation, refactoring (payant) |
| PHP DocBlocker | Génération PHPDoc automatique |
| PHPUnit | Intégration PHPUnit/Pest |
| PHP CS Fixer | Formatage PSR-12 |
| Laravel Extra Intellisense | Autocomplétion Laravel (routes, config, views) |
| Laravel Blade | Coloration syntaxique Blade |
| Laravel Goto View | Navigation rapide vers les vues |
Laravel Idea (Plugin PHPStorm)
Plugin payant (25€/an) qui ajoute un support profond de Laravel.
Fonctionnalités :
<?php
// Avant Laravel Idea : navigation limitée
Route::get('/users', [UserController::class, 'index']); // Ctrl+clic ne fonctionne pas
// Avec Laravel Idea : navigation complète
// Ctrl+clic sur UserController::class → ouvre le contrôleur
// Ctrl+clic sur 'index' → ouvre la méthode
// Autocomplétion des helpers
return redirect()->route('users.show', $user); // autocomplétion du nom de route
// Autocomplétion des vues
return view('users.index'); // autocomplétion du chemin de vue
// Autocomplétion des relations Eloquent
$user->posts()->where('active', true)->get(); // autocomplétion des relations
// Autocomplétion des configs
config('app.name'); // autocomplétion des clés de config
// Autocomplétion des traductions
__('auth.failed'); // autocomplétion des clés de traduction
// Validation des blocs Blade
// @if, @foreach, @section, @yield avec coloration
Outils de Débogage
<?php
// 1. dd() — dump and die
$user = User::find(1);
dd($user); // Affiche et arrête l'exécution
// 2. dump() — dump sans die
dump($user); // Affiche sans arrêter
// 3. ray() — Spatie Ray
ray($user); // Envoie à l'application Ray
ray('Message de debug');
ray()->queries(); // Affiche toutes les requêtes SQL
// 4. to_ray() — helper Laravel
$user->toRay();
// 5. logs() — log contextuel
logger('Message de debug', ['user' => $user->id]);
// 6. Laravel Debugbar
// Installation : composer require barryvdh/laravel-debugbar --dev
// Affiche en bas de page : requêtes, vues, mémoire, temps
// 7. Xdebug
// Configuration php.ini
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
xdebug.log = /var/log/xdebug.log
20.2 Sites de Référence
Documentation Officielle
| Site | URL | Description |
|---|---|---|
| PHP.net | https://www.php.net | Documentation officielle, manuel complet |
| PHP RFC | https://wiki.php.net/rfc | Propositions de fonctionnalités en cours |
| PHP Watch | https://php.watch | Nouveautés, breaking changes, compatibilité |
| Packagist | https://packagist.org | Registre des packages Composer |
| PSR Standards | https://www.php-fig.org | Standards PHP-FIG (PSR-4, PSR-7, etc.) |
Frameworks
| Site | URL | Description |
|---|---|---|
| Laravel | https://laravel.com | Documentation officielle Laravel |
| Laravel News | https://laravel-news.com | Actualités, tutoriels, packages |
| Symfony | https://symfony.com | Documentation officielle Symfony |
| Symfony Blog | https://symfony.com/blog | Annonces, articles techniques |
| Symfony Docs | https://symfony.com/doc/current/index.html | Documentation complète |
Plateformes d'Apprentissage
| Plateforme | URL | Description |
|---|---|---|
| Laracasts | https://laracasts.com | Screencasts Laravel, PHP, TDD, Livewire (~1000+ vidéos) |
| SymfonyCasts | https://symfonycasts.com | Tutoriels Symfony, Doctrine, API Platform |
| PHP The Right Way | https://phptherightway.com | Bonnes pratiques PHP standardisées |
| Awesome PHP | https://github.com/ziadoz/awesome-php | Liste de ressources PHP organisées |
| PHP Annotations | https://php-annotations.readthedocs.io | Référence sur les attributs/annotations |
Veille Technologique
| Site | URL | Description |
|---|---|---|
| PHP.Watch | https://php.watch | Nouveautés PHP, compatibilité ascendante |
| Stitcher.io | https://stitcher.io | Blog de Brent Roose (PHP, Laravel) |
| Laravel Daily | https://laraveldaily.com | Tutoriels Laravel quotidiens |
| Laravel News | https://laravel-news.com | Actualités de l'écosystème |
| Beyond Code | https://beyondco.de | Blog Laravel, Livewire, Alpine |
| Dev.to PHP | https://dev.to/t/php | Articles communautaires PHP |
20.3 Conférences PHP
Conférences Internationales
| Conférence | Lieu | Fréquence | Prix moyen | Site |
|------------|------|-----------|------------|------|
| Laracon US | USA | Annuelle | $500-700 | laracon.us |
| Laracon EU | Europe | Annuelle | €300-500 | laracon.eu |
| Laracon AU | Australie | Annuelle | $300-500 | laracon.net |
| SymfonyCon | Europe/USA | Annuelle | €400-600 | symfony.com/conferences |
| PHP UK | Londres | Annuelle | £300-500 | phpuk.org |
| PHP Serbia | Belgrade | Annuelle | €100-200 | phpsrbija.rs |
| Dutch PHP | Amsterdam | Annuelle | €300-500 | phpconference.nl |
| AFUP | France | Annuelle | €200-400 | afup.org |
| PHP Russia | Moscou | Annuelle | $100-300 | php Russia |
| Longhorn PHP | USA | Annuelle | $300-500 | longhornphp.com |
| Sunshine PHP | USA | Annuelle | $300-500 | sunshinephp.com |
| Midwest PHP | USA | Annuelle | $300-500 | midwestphp.org |
| PHP Conference | Japon | Annuelle | ¥10000-30000 | phpcon.php.gr.jp |
| PHP Reboot | Lettonie | Annuelle | €100-200 | php.reboot.lv |
Conférences à Suivre
Laracon US :
- Organisation : Laravel LLC
- Période : Juillet/Août
- Lieu variable (New York, San Francisco, etc.)
- Speakers notables : Taylor Otwell, Caleb Porzio, Dries Vints
- Thèmes : Laravel, Livewire, Alpine.js, Filament, écosystème
Laracon EU :
- Organisation : Laravel LLC / Community
- Période : Janvier/Février
- Lieu variable (Amsterdam, Paris, Lisbonne, etc.)
- Ambiance plus intime que Laracon US
- Workshops pré-conférence
SymfonyCon :
- Organisation : Symfony Association
- Période : Automne (Octobre/Novembre)
- Lieu : Alterne Europe et USA
- Speakers : Fabien Potencier, Nicolas Grekas, Ryan Weaver
- Thèmes : Symfony, API Platform, Doctrine, Messenger
PHP UK :
- Organisation : PHP UK Conference
- Période : Février
- Lieu : Londres (Business Design Centre)
- Plus ancienne conférence PHP européenne
- Track unique, forte communauté
Comment Soumettre un CFP
1. Choisir un sujet pointu et original
2. Rédiger un titre accrocheur (max 10 mots)
3. Description courte (100-200 mots) : le problème, la solution, les takeaways
4. Description longue (300-500 mots) : plan détaillé, audience cible
5. Bio : qui êtes-vous, votre expérience, vos talks précédents
6. Notes : contraintes techniques, format (talk standard, workshop, lightning)
Conseils :
- Parler de ce que vous avez vraiment construit
- Montrer du code, des benchmarks, des démos
- Préférer "Comment nous avons résolu X" à "Comment utiliser X"
- Proposer des sujets nouveautés PHP 8.3/8.4, Livewire, FrankenPHP
Vidéos de Conférences
<?php
// Ressources vidéo
$conferenceVideos = [
'Laracon US' => 'https://www.youtube.com/@Laracon',
'Laracon EU' => 'https://www.youtube.com/@LaraconEU',
'SymfonyCon' => 'https://www.youtube.com/@SymfonyCon',
'PHP UK' => 'https://www.youtube.com/@PHPUKConference',
'PHP Serbia' => 'https://www.youtube.com/@PHPSrbija',
];
// Talks recommandés :
// - "Laravel: The Next Chapter" - Taylor Otwell (Laracon US 2023)
// - "Livewire v3" - Caleb Porzio (Laracon US 2023)
// - "PHP 8.x Features" - Nikita Popov (PHP UK 2022)
// - "Symfony 7" - Nicolas Grekas (SymfonyCon 2023)
// - "FrankenPHP" - Kevin Dunglas (SymfonyCon 2023)
20.4 Podcasts PHP
Podcasts Actifs
| Podcast | Fréquence | Hôtes | Description |
|---|---|---|---|
| PHP Roundtable | Hebdomadaire | Phil Sturgeon, Ben Edmunds, Buster "Silent Bob" Neece | Talk-show PHP général |
| Laravel News | Hebdomadaire | Jake Bennett, Michael Dyrynda | Actualités écosystème Laravel |
| No Compromises | Bi-mensuel | Joel Clermont, Aaron Saray | PHP, Laravel, bonnes pratiques |
| WordPress Briefing | Hebdomadaire | WordPress | Actualités WordPress |
| North Meets South | Mensuel | Miha Vrhovnik, James Seconde | PHP, Web, Développement |
| PHPUgly | Hebdomadaire | John Congdon, Eric Van Johnson, Tom Ride | PHP actualités |
| Symfony Station | Hebdomadaire | Reuben Walker | Écosystème Symfony |
| Code And Coffee | Variable | diverse | Développement en général |
| The Stack Overflow | Hebdomadaire | Ben Popper, Sara Ford | Communauté, développement |
| Larachat | Variable | Community | Discussions Laravel |
Podcasts Recommandés
PHP Roundtable :
- Format : Discussion libre avec panel d'experts
- Sujets : Nouveautés PHP, frameworks, outils, carrière
- Épisodes recommandés :
- "PHP 8.4 Features"
- "Fiber and Async PHP"
- "Laravel vs Symfony"
- "Testing Strategies"
- "API Design"
- "Security Best Practices"
No Compromises :
- Format : Court (20-30 minutes), focus sur un sujet
- Style : Pragmatique, opinionated
- Sujets : Laravel, Livewire, Tailwind, workflow
- À écouter : "Boring Architecture", "Testing from day one", "Why we chose Laravel"
Laravel News :
- Format : Revue hebdomadaire des actualités
- Durée : 30-45 minutes
- Segments : News, packages, tips, interview
- Bon pour : Veille rapide de l'écosystème
Outils pour Podcasts
<?php
// Applications de podcast
$apps = [
'Spotify' => 'Cross-platform, gratuit',
'Apple Podcasts' => 'iOS/macOS, intégration native',
'Google Podcasts' => 'Android, Web',
'Overcast' => 'iOS, features avancées (Voice Boost, Smart Speed)',
'Pocket Casts' => 'Cross-platform, payant, excellent UX',
'AntennaPod' => 'Android, open-source, gratuit',
];
20.5 Newsletters
Newsletters Essentielles
| Newsletter | Fréquence | Contenu | Inscription |
|---|---|---|---|
| PHP Weekly | Hebdomadaire | News, articles, packages, jobs | phpweekly.com |
| Laravel News | Quotidien | Actualités Laravel | laravel-news.com |
| Symfony Blog | Hebdomadaire | Annonces Symfony | symfony.com/blog |
| PHP Annotated | Mensuelle | Actualités PHP (JetBrains) | blog.jetbrains.com/php |
| Larafeed | Hebdomadaire | Articles Laravel | larafeed.com |
| Laravel Core Adventures | Mensuelle | Exploration du noyau Laravel | laravelcoreadventures.com |
| Laravel Daily Tips | Quotidienne | Astuces Laravel courtes | laraveldaily.com |
| Povilas Korop | Hebdomadaire | Tutoriels Laravel | laraveldaily.com |
| The Tweeted Times | Hebdomadaire | Tweets PHP/Laravel organisés | tweettimes.com |
Comment les Lire
<?php
// Stratégie de veille
$newsletterStrategy = [
'Quotidien' => [
'Laravel News' => '5 min le matin',
],
'Hebdomadaire' => [
'PHP Weekly' => '30 min le lundi',
'Larafeed' => '15 min le mercredi',
'Povilas Korop' => '15 min le vendredi',
],
'Mensuel' => [
'PHP Annotated' => '30 min début de mois',
'Laravel Core Adventures' => '30 min',
],
];
20.6 Certifications
Certifications PHP
<?php
$certifications = [
'Zend PHP Certification' => [
'provider' => 'Zend by Rogue Wave (Perforce)',
'code' => 'ZCE (Zend Certified Engineer)',
'exam' => '200-810 PHP 5, 200-710 PHP 7 (ancien)',
'format' => '70 questions, 90 minutes',
'prix' => '~250$',
'sujets' => 'PHP basics, OOP, sécurité, bases de données, web features',
'statut' => 'PHP 8 exam non disponible, legacy',
],
'Laravel Certified' => [
'provider' => 'Laravel Certification',
'code' => 'Laravel Certified Developer',
'exam' => 'Online, 60 questions',
'format' => '60 questions, 60 minutes',
'prix' => '~99€',
'sujets' => 'Installation, routing, Eloquent, Blade, testing, security',
'statut' => 'Actif, mis à jour régulièrement',
],
'Symfony Certification' => [
'provider' => 'Symfony Association',
'code' => 'Symfony Certified Developer',
'exam' => 'Online, 80 questions',
'format' => '80 questions, 90 minutes',
'prix' => '~199€',
'sujets' => 'Symfony architecture, Doctrine, Twig, Security, Forms',
'statut' => 'Actif, version Symfony 6/7',
],
'PHP MySQL Certification' => [
'provider' => 'Oracle',
'code' => 'OCP MySQL',
'exam' => '1Z0-902',
'prix' => '~300$',
'sujets' => 'SQL, optimisation, administration, sécurité',
'statut' => 'Actif',
],
'AWS Certified Developer' => [
'provider' => 'Amazon',
'code' => 'AWS Developer Associate',
'exam' => 'DVA-C02',
'format' => '65 questions, 130 minutes',
'prix' => '~150$',
'sujets' => 'Déploiement Laravel sur AWS, Lambda, DynamoDB, S3',
'statut' => 'Actif, recommandé pour Vapor',
],
];
Préparation aux Certifications
Laravel Certified : Plan d'étude
Module 1 : Installation et Configuration (10%)
- Configuration serveur, environnement
- Homestead, Sail, Forge
Module 2 : Routing (10%)
- Routes web, api, console
- Groupes, middleware, namespaces
- Route model binding
Module 3 : Contrôleurs et Middleware (10%)
- Resource controllers
- Single action controllers
- Middleware personnalisé
Module 4 : Eloquent ORM (15%)
- Relations (tous les types)
- Accessors, mutators, casts
- Scopes, collections
- Eager loading, subqueries
Module 5 : Blade (10%)
- Directives, layouts, components
- Slots, stacks, includes
Module 6 : Frontend (5%)
- Vite, Mix
- Livewire, Alpine
Module 7 : Testing (15%)
- PHPUnit, Pest
- Feature tests, unit tests
- HTTP tests, database tests
Module 8 : Sécurité (10%)
- Authentication, authorization
- Gates, policies
- CSRF, XSS, SQL injection
Module 9 : Queues et Jobs (5%)
- Queues, jobs, events
- Horizon, failover
Module 10 : Packages et API (10%)
- Package development
- API resources, Sanctum
- Notifications, mail
Sites d'entraînement :
<?php
$practicePlatforms = [
'Laravel Certification' => 'https://laravelcert.com',
'Zend PHP Practice' => 'https://www.zend.com/training/php-certification',
'Symfony Practice' => 'https://certification.symfony.com',
'Codility' => 'https://www.codility.com',
'HackerRank PHP' => 'https://www.hackerrank.com/domains/php',
'LeetCode PHP' => 'https://leetcode.com/problemset/?language=php',
'Mosse Institute' => 'https://www.mosseinstitute.com/certifications',
];
Valeur des Certifications
Avantages :
- Valide vos connaissances (curriculum standardisé)
- Distingue votre CV sur le marché
- Peut être exigée par certains employeurs (consulting)
- Structure votre apprentissage
Inconvénients :
- Coût non négligeable
- Nécessite recyclage régulier
- Ne remplace pas l'expérience pratique
- Certaines certifs sont obsolètes (Zend PHP non mis à jour)
- Débat dans la communauté sur leur valeur réelle
Recommandation :
- Laravel Certified si vous travaillez quotidiennement avec Laravel
- Symfony Certification si vous êtes dans l'écosystème Symfony
- AWS Developer Associate si vous déployez sur AWS/Vapor
- Éviter Zend PHP (obsolète, non mis à jour)
20.7 Références et Standards
PHP FIG (Framework Interop Group)
<?php
$psrStandards = [
'PSR-1' => 'Basic Coding Standard',
'PSR-3' => 'Logger Interface',
'PSR-4' => 'Autoloading Standard',
'PSR-6' => 'Caching Interface',
'PSR-7' => 'HTTP Message Interface',
'PSR-11' => 'Container Interface',
'PSR-12' => 'Extended Coding Style',
'PSR-13' => 'Hypermedia Links',
'PSR-14' => 'Event Dispatcher',
'PSR-15' => 'HTTP Handlers',
'PSR-16' => 'Simple Cache',
'PSR-17' => 'HTTP Factories',
'PSR-18' => 'HTTP Client',
'PSR-20' => 'Clock Interface',
'PSR-21' => 'Internationalization',
];
Outils d'Analyse Statique
<?php
$staticTools = [
'PHPStan' => [
'description' => 'Analyse statique PHP',
'niveaux' => '0-10 (max = 10+ bleeding edge)',
'commande' => 'vendor/bin/phpstan analyse',
'config' => 'phpstan.neon.dist',
'avantage' => 'Détection d\'erreurs à la compilation',
],
'Psalm' => [
'description' => 'Analyse statique par Vimeo',
'niveaux' => '1-8 (le plus strict = 1)',
'commande' => 'vendor/bin/psalm',
'config' => 'psalm.xml.dist',
'avantage' => 'Taint analysis, cycle detection',
],
'Larastan' => [
'description' => 'PHPStan pour Laravel',
'package' => 'nunomaduro/larastan',
'commande' => 'vendor/bin/phpstan analyse',
'config' => 'phpstan.neon.dist (extension: ./vendor/nunomaduro/larastan/extension.neon)',
'avantage' => 'Comprend les facades, Eloquent, helpers Laravel',
],
'Phan' => [
'description' => 'Analyse statique par Etsy',
'github' => 'phan/phan',
'commande' => 'phan',
'avantage' => 'Très rapide, nombreuses analyses',
],
];
20.8 Communautés
Forums et Discussions
| Plateforme | URL | Description |
|---|---|---|
| PHP Reddit | https://reddit.com/r/PHP | Communauté PHP principale |
| Laravel Reddit | https://reddit.com/r/laravel | Communauté Laravel |
| Symfony Reddit | https://reddit.com/r/symfony | Communauté Symfony |
| Laravel.io | https://laravel.io | Forum Laravel actif |
| Symfony Community | https://symfony.com/community | Forum, Slack Symfony |
| Stack Overflow PHP | https://stackoverflow.com/questions/tagged/php | Q&A technique |
| PHP Discord | https://discord.gg/php | Chat en temps réel |
| Laracasts Forum | https://laracasts.com/discuss | Forum Laracasts |
Réseaux Sociaux
<?php
$socialAccounts = [
'Twitter/X' => [
'@laravelphp' => 'Compte officiel Laravel',
'@symfony' => 'Compte officiel Symfony',
'@phpweekly' => 'PHP Weekly newsletter',
'@LaravelNews' => 'Laravel News',
'@calebporzio' => 'Créateur Livewire/Alpine',
'@taylorotwell' => 'Créateur Laravel',
'@nicolasgrekas' => 'Core Symfony',
'@driesvints' => 'Core Laravel',
'@mattstauffer' => 'Core Laravel, auteur',
'@spatie_be' => 'Spatie, packages PHP',
],
'LinkedIn' => [
'Laravel' => 'Laravel company page',
'Symfony' => 'Symfony company page',
'JetBrains' => 'PHPStorm updates',
'PHP.net' => 'PHP official page',
],
'Mastodon' => [
'@phpmastodon@phpc.social' => 'Instance PHP Mastodon',
'@laravel@phpc.social' => 'Laravel sur Mastodon',
],
];
20.9 Ressources par Spécialité
Pour Débutants
1. **PHP The Right Way** — Guide des bonnes pratiques
2. **Laracasts PHP Track** — Vidéos progressives (gratuites)
3. **PHP.net Manual** — Documentation officielle lisible
4. **Laravel Bootcamp** — Application Laravel pas à pas
5. **Symfony Demo App** — Application Symfony d'exemple
Pour Développeurs Intermédiaires
1. **Laracasts** — Tout le catalogue (abonnement ~15$/mois)
2. **SymfonyCasts** — Tutoriels Symfony profonds
3. **Stitcher.io Blog** — Articles avancés de Brent Roose
4. **Laravel Daily** — Tutoriels quotidiens
5. **Spatie Blog** — Articles techniques de qualité
Pour Architectes
1. **Martin Fowler Blog** — Patterns d'architecture
2. **DDD par Eric Evans** — Domain-Driven Design
3. **Clean Architecture** — Robert C. Martin
4. **Patterns of EAA** — Fowler, appliqué PHP
5. **Architecture Laravel** — Documentation officielle
20.10 Ressources DevOps
Infrastructure
# Docker
docker run --rm -v ${PWD}:/app -w /app composer:latest composer install
# Forge
# laravel forge deploy
# forge env:push production
# forge php:install 8.3
# Vapor (Laravel)
# vapor deploy production
# Deployer
dep deploy production
# Envoyer
# Envoyer Zero Downtime Deployment
Monitoring
<?php
$monitoringTools = [
'Laravel Telescope' => 'Débogage Laravel local/développement',
'Laravel Pulse' => 'Monitoring production (requêtes, queues, etc.)',
'Sentry' => 'Error tracking (PHP, JavaScript)',
'Flare' => 'Error tracking Laravel (spatie)',
'Clockwork' => 'Extension Chrome pour débogage PHP',
'Blackfire' => 'Profilage performance (SensioLabs)',
'Tideways' => 'Profilage et monitoring PHP',
'New Relic' => 'APM complet (PHP, serveur, base de données)',
'DataDog' => 'APM, logs, infrastructure',
];
20.11 Veille Automatisée
Outils de Veille
<?php
$watchtools = [
'GitHub Stars' => 'Follow les repos clés (laravel, symfony, spatie)',
'Twitter Lists' => 'Liste des comptes PHP influents',
'Feedly' => 'Agrégateur RSS (PHP.net blog, blogs devs)',
'Reddit' => 'Multi-reddit PHP/Laravel/Symfony',
'Dev.to' => 'Follow tags PHP, Laravel, Symfony',
'Medium' => 'Follow publications PHP',
'YouTube' => 'Playlists conférences PHP',
'Mastodon' => 'Follow @phpmastodon@phpc.social',
'Telegram' => 'Groupes PHP/Laravel/Symfony',
'Discord' => 'Serveurs communautaires PHP',
];
// Organisation quotidienne
$dailyRoutine = [
'Matin (15 min)' => [
'Laravel News (newsletter)',
'PHP Weekly newsletter',
'Reddit PHP/Laravel top posts',
'Twitter timeline PHP',
],
'Midi (10 min)' => [
'Dev.to trending PHP',
'GitHub trending PHP repos',
],
'Soir (15 min)' => [
'Feedly articles non lus',
'YouTube suggestions',
'Podcast en cours',
],
];
20.12 Ressources par Projet
Projet Fil Rouge
Pour le projet fil rouge du cours, les ressources suivantes sont recommandées :
# Documentation projet
# - Laravel best practices
# - Filament admin panel docs
# - Livewire documentation
# - Alpine.js documentation
# Packages recommandés
composer require filament/filament
composer require livewire/livewire
composer require spatie/laravel-permission
composer require spatie/laravel-medialibrary
composer require barryvdh/laravel-debugbar --dev
composer require laravel/telescope --dev
# Ressources design
# - Tailwind UI (composants)
# - Laravel Jetstream (starter kit)
# - Blade UI Kit
20.13 Références Bibliographiques
Livres Recommandés
| Titre | Auteur | Sujet |
|---|---|---|
| PHP 8 Objects, Patterns, and Practice | Matt Zandstra | OOP PHP, Design Patterns |
| Laravel: Up & Running | Matt Stauffer | Laravel complet |
| Clean Code PHP | Traduction communauté | Principes Clean Code en PHP |
| Patterns of EAA | Martin Fowler | Patterns architecture |
| The Clean Architecture | Robert C. Martin | Architecture logicielle |
| Domain-Driven Design | Eric Evans | DDD |
| Refactoring | Martin Fowler | Amélioration de code |
| Implementing DDD | Vaughn Vernon | DDD pratique |
| Microservices Patterns | Chris Richardson | Architecture microservices |
| Designing Data-Intensive Applications | Martin Kleppmann | Systèmes distribués |
Blogs Techniques
<?php
$technicalBlogs = [
'https://stitcher.io' => 'Brent Roose — PHP, Laravel, performances',
'https://martinfowler.com' => 'Martin Fowler — Architecture, refactoring',
'https://spatie.be/blog' => 'Spatie — Packages PHP, Laravel',
'https://beyondco.de/blog' => 'Beyond Code — Laravel, Livewire, Alpine',
'https://laravel-news.com/blog' => 'Laravel News — Actualités, tutoriels',
'https://symfony.com/blog' => 'Symfony Blog — Annonces, articles',
'https://php.watch' => 'PHP Watch — Nouveautés PHP',
'https://dev.to/t/laravel' => 'Dev.to Laravel — Articles communauté',
'https://medium.com/tag/laravel' => 'Medium Laravel — Articles variés',
'https://laraveldaily.com' => 'Laravel Daily — Astuces, tutoriels',
];