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.
Création de « MarkItLikeItsHot » : un wrapper FastAPI pour le moteur de conversion MarkItDown de Microsoft
Cet article détaille le développement d'un microservice Python nommé « MarkItLikeItsHot », conçu pour rationaliser la conversion de contenu en Markdown dans Willow CMS. Ce microservice utilise un wrapper FastAPI autour de la puissante bibliothèque MarkItDown de Microsoft, permettant une conversion transparente des fichiers, des URL et du texte brut en Markdown propre et formaté. Nous explorerons les technologies sous-jacentes, aborderons la structure du code et mettrons en évidence des aspects clés tels que le déploiement, les tests et la configuration de Docker.
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.
À 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.