Dans cet article, nous verrons comment utiliser le plugin Queue de CakePHP pour gérer et exécuter efficacement les tâches en arrière-plan. Nous explorerons la structure, l'implémentation et les avantages de cette approche, en nous concentrant sur le répertoire `src/Job` et les composants associés de Willow CMS.
Refactorisation du code de la couche modèle dans Willow CMS avec CakePHP Behaviors
Cet article couvre le refactoring du code lié au comportement de l'arbre CakePHP et aux slugs dans Willow CMS. À l'origine, les articles et les balises avaient du code dupliqué pour les opérations d'arborescence. Cela a été refactorisé dans OrderableBehavior, rendant le code réutilisable et testable. De même, la gestion des slugs, auparavant dispersée sur plusieurs emplacements, a été consolidée dans le nouveau SlugBehavior. Ce comportement gère la génération, la validation et l'historique des slugs, simplifiant les classes ArticlesTable et TagsTable tout en ajoutant des fonctionnalités telles que la génération automatique de slugs à partir des titres, les slugs personnalisés et le suivi de l'historique des slugs pour un meilleur référencement. Ce refactoring a considérablement réduit la duplication de code et amélioré la maintenabilité et la testabilité.
Migrations dans CakePHP
Les migrations sont un outil de CakePHP permettant de gérer les modifications du schéma de base de données. Elles permettent de modifier la structure de votre base de données de manière contrôlée par version, ce qui facilite le suivi, le partage et le déploiement des modifications dans différents environnements ou installations de votre application. CakePHP dispose d'outils permettant de générer des instantanés de la structure de votre base de données et des migrations entre elles. Étant donné que les migrations peuvent également exécuter des instructions de langage de requête sur votre base de données, elles peuvent également être utilisées pour modifier les données. Willow CMS a évolué au fil de plusieurs versions depuis sa mise en ligne sur ce site, certaines de ces versions nécessitant des modifications du schéma et des données de la base de données. Dans cet article, je vais vous présenter quelques exemples pratiques de la manière dont j'ai géré cela.
Simplifier l'affichage des images avec des traits PHP et des méthodes magiques
Dans cette plongée technique approfondie, nous explorons comment la combinaison de traits PHP et de méthodes magiques peut simplifier considérablement la génération d'URL d'image dans un CMS. L'article décrit l'implémentation d'ImageUrlTrait, une solution intelligente qui remplace le code verbeux et sujet aux erreurs par une approche propre et maintenable. En exploitant le mécanisme de traits de PHP pour la réutilisation du code et les méthodes magiques pour la gestion dynamique des propriétés, la solution permet aux développeurs d'accéder facilement à différentes tailles d'image via des propriétés intuitives telles que $image->smallImageUrl ou $image->largeImageUrl. La transformation d'appels d'aide HTML complexes et imbriqués en une approche simplifiée basée sur les éléments démontre des améliorations significatives en termes de lisibilité et de maintenabilité du code.
Limitation de débit et blocage d'IP dans Willow CMS
Cet article de blog détaille la mise en œuvre de la limitation de débit et du blocage IP dans un CMS Willow, en se concentrant sur les composants clés du code et leur raison d'être. Ces informations sont destinées aux développeurs qui cherchent à mettre en œuvre des mesures de sécurité similaires dans leurs projets. Depuis que Willow a été mis en ligne pour ce site, il a été intéressant de consulter les journaux et de voir toutes les tentatives de Singapour pour trouver des exploits !
Tests unitaires PHP dans Willow CMS
Ce guide complet détaille la manière dont les tests PHPUnit sont implémentés dans Willow CMS, à la fois localement et via GitHub Actions. L'infrastructure de test comprend 116 tests et 414 assertions, offrant une assurance qualité robuste. La configuration s'articule autour de cinq composants clés : un fichier de configuration PHPUnit, GitHub Actions pour l'intégration continue, un code de cas de test partagé pour les principes DRY, des tests de contrôleur pour les fonctionnalités critiques et des rapports de couverture de code. Le système utilise l'exécution de tests aléatoires pour garantir l'indépendance et inclut des scénarios de test d'administrateur et de non-administrateur. Le flux de travail GitHub Actions est particulièrement remarquable, exécutant des tests sur plusieurs versions de PHP et intégrant divers contrôles de qualité, notamment PHPStan et PHP CodeSniffer.
À propos
Bienvenue sur willowcms.app. Ce site utilise Willow, un système de gestion de contenu que je développe en open source. Vous y trouverez des mises à jour de développement, des fonctionnalités phares et des guides sur l'utilisation de Willow pour vos propres sites.