MFormations
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 :

ActionWindows/LinuxmacOS
Rechercher partoutShift + ShiftShift + Shift
Aller à la classeCtrl + NCmd + N
Aller au fichierCtrl + Shift + NCmd + Shift + N
Naviguer dans les méthodesCtrl + F12Cmd + F12
RenommerShift + F6Shift + F6
Extraire méthodeCtrl + Alt + MCmd + Alt + M
Formatage du codeCtrl + Alt + LCmd + Alt + L
Rechercher dans le projetCtrl + Shift + FCmd + Shift + F
Terminal intégréAlt + F12Alt + F12
VCS commitCtrl + KCmd + 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 :

ExtensionDescription
IntelephenseAutocomplétion, validation, refactoring (payant)
PHP DocBlockerGénération PHPDoc automatique
PHPUnitIntégration PHPUnit/Pest
PHP CS FixerFormatage PSR-12
Laravel Extra IntellisenseAutocomplétion Laravel (routes, config, views)
Laravel BladeColoration syntaxique Blade
Laravel Goto ViewNavigation 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

SiteURLDescription
PHP.nethttps://www.php.netDocumentation officielle, manuel complet
PHP RFChttps://wiki.php.net/rfcPropositions de fonctionnalités en cours
PHP Watchhttps://php.watchNouveautés, breaking changes, compatibilité
Packagisthttps://packagist.orgRegistre des packages Composer
PSR Standardshttps://www.php-fig.orgStandards PHP-FIG (PSR-4, PSR-7, etc.)

Frameworks

SiteURLDescription
Laravelhttps://laravel.comDocumentation officielle Laravel
Laravel Newshttps://laravel-news.comActualités, tutoriels, packages
Symfonyhttps://symfony.comDocumentation officielle Symfony
Symfony Bloghttps://symfony.com/blogAnnonces, articles techniques
Symfony Docshttps://symfony.com/doc/current/index.htmlDocumentation complète

Plateformes d'Apprentissage

PlateformeURLDescription
Laracastshttps://laracasts.comScreencasts Laravel, PHP, TDD, Livewire (~1000+ vidéos)
SymfonyCastshttps://symfonycasts.comTutoriels Symfony, Doctrine, API Platform
PHP The Right Wayhttps://phptherightway.comBonnes pratiques PHP standardisées
Awesome PHPhttps://github.com/ziadoz/awesome-phpListe de ressources PHP organisées
PHP Annotationshttps://php-annotations.readthedocs.ioRéférence sur les attributs/annotations

Veille Technologique

SiteURLDescription
PHP.Watchhttps://php.watchNouveautés PHP, compatibilité ascendante
Stitcher.iohttps://stitcher.ioBlog de Brent Roose (PHP, Laravel)
Laravel Dailyhttps://laraveldaily.comTutoriels Laravel quotidiens
Laravel Newshttps://laravel-news.comActualités de l'écosystème
Beyond Codehttps://beyondco.deBlog Laravel, Livewire, Alpine
Dev.to PHPhttps://dev.to/t/phpArticles 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

PodcastFréquenceHôtesDescription
PHP RoundtableHebdomadairePhil Sturgeon, Ben Edmunds, Buster "Silent Bob" NeeceTalk-show PHP général
Laravel NewsHebdomadaireJake Bennett, Michael DyryndaActualités écosystème Laravel
No CompromisesBi-mensuelJoel Clermont, Aaron SarayPHP, Laravel, bonnes pratiques
WordPress BriefingHebdomadaireWordPressActualités WordPress
North Meets SouthMensuelMiha Vrhovnik, James SecondePHP, Web, Développement
PHPUglyHebdomadaireJohn Congdon, Eric Van Johnson, Tom RidePHP actualités
Symfony StationHebdomadaireReuben WalkerÉcosystème Symfony
Code And CoffeeVariablediverseDéveloppement en général
The Stack OverflowHebdomadaireBen Popper, Sara FordCommunauté, développement
LarachatVariableCommunityDiscussions 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

NewsletterFréquenceContenuInscription
PHP WeeklyHebdomadaireNews, articles, packages, jobsphpweekly.com
Laravel NewsQuotidienActualités Laravellaravel-news.com
Symfony BlogHebdomadaireAnnonces Symfonysymfony.com/blog
PHP AnnotatedMensuelleActualités PHP (JetBrains)blog.jetbrains.com/php
LarafeedHebdomadaireArticles Laravellarafeed.com
Laravel Core AdventuresMensuelleExploration du noyau Laravellaravelcoreadventures.com
Laravel Daily TipsQuotidienneAstuces Laravel courteslaraveldaily.com
Povilas KoropHebdomadaireTutoriels Laravellaraveldaily.com
The Tweeted TimesHebdomadaireTweets PHP/Laravel organiséstweettimes.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

PlateformeURLDescription
PHP Reddithttps://reddit.com/r/PHPCommunauté PHP principale
Laravel Reddithttps://reddit.com/r/laravelCommunauté Laravel
Symfony Reddithttps://reddit.com/r/symfonyCommunauté Symfony
Laravel.iohttps://laravel.ioForum Laravel actif
Symfony Communityhttps://symfony.com/communityForum, Slack Symfony
Stack Overflow PHPhttps://stackoverflow.com/questions/tagged/phpQ&A technique
PHP Discordhttps://discord.gg/phpChat en temps réel
Laracasts Forumhttps://laracasts.com/discussForum 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

TitreAuteurSujet
PHP 8 Objects, Patterns, and PracticeMatt ZandstraOOP PHP, Design Patterns
Laravel: Up & RunningMatt StaufferLaravel complet
Clean Code PHPTraduction communautéPrincipes Clean Code en PHP
Patterns of EAAMartin FowlerPatterns architecture
The Clean ArchitectureRobert C. MartinArchitecture logicielle
Domain-Driven DesignEric EvansDDD
RefactoringMartin FowlerAmélioration de code
Implementing DDDVaughn VernonDDD pratique
Microservices PatternsChris RichardsonArchitecture microservices
Designing Data-Intensive ApplicationsMartin KleppmannSystè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',
];