Comparaison détaillée de WordPress et du CMS d'octobre

Je m'appelle Pavel Lovtsevich, je suis co-fondateur et CTO du studio web LOVATA. L'une des principales plateformes sur lesquelles nous développons des projets pour nos clients est October CMS, avec laquelle nous travaillons depuis près de 6 ans.



Ce CMS était un peu en avance sur son temps et n'a pas immédiatement gagné en popularité bien méritée. Cependant, au cours des dernières années, il a connu une sorte de renaissance, comme en témoignent les nombreuses références à lui dans l'environnement anglophone des développeurs.



Afin de maintenir cette vague avec cette traduction, je commence une série d'articles sur ce magnifique CMS.




De nombreuses personnes recherchent désormais des alternatives à WordPress. Dans cet article, nous le comparerons au CMS d'octobre et explorerons les questions importantes à prendre en compte pour trouver le bon CMS pour vos projets.



Il y a trois mois (l'article original a été écrit au printemps 2019 -... Note stylos), WordPress a publié le Gutenberg , pour étendre la possibilité d'éditer du contenu par défaut. ce qui a incité de nombreuses personnes insatisfaites de ce changement à rechercher un CMS alternatif. Certains utilisateurs ont choisi de fourchetteWordPress "pré-Gutenberg". Mais cela n'a pas vraiment beaucoup de sens, puisque WordPress a accumulé une dette technique colossale au cours de ses 15 années d'existence. Si je cherchais une alternative à WordPress, j'essaierais de trouver une plateforme mature construite sur une technologie moderne.



Dans cet article, nous comparerons WordPress avec un CMS octobre similaire, mais plus moderne , pour de nombreux paramètres techniques et non techniques. Le but n'est pas de vous convaincre d'utiliser WordPress ou de passer au CMS d'octobre. Je vais essayer de vous montrer quels critères doivent être pris en compte lors du changement de plateforme. La même comparaison peut et doit être faite avec d'autres plateformes avant de prendre une décision éclairée.



Pourquoi October CMS



J'ai entendu parler d'octobre quand il est devenu le meilleur CMS de fichiers plats de 2018. Après cela, j'ai commencé à étudier cet outil et j'ai passé beaucoup de temps à y plonger du point de vue de l'utilisateur et du développeur. J'ai vite réalisé qu'elle était un sujet de comparaison très approprié. Je l'ai choisi, et non des options alternatives comme Grav , Statamic , ButterCMS , Joomla , Drupal , Jekyll , Hugo , etc. Et voici les principales raisons:



  • J'ai compris le fonctionnement d'Octobre CMS (contrairement à Grav);
  • C'est gratuit et open source (contrairement à Statamic et ButterCMS);
  • En cinq ans, il peut être considéré comme relativement nouveau (contrairement à Joomla et Drupal);
  • Il contient la génération de contenu dynamique et fonctionne en PHP (contrairement à Jekyll et Hugo).


Je pense qu'octobre est une bonne option car il est basé sur Laravel , un framework utilisé pour créer des applications Web modernes. Au cours des sept années de son existence, il a gagné la reconnaissance des développeurs, comme en témoigne la vaste communauté et l'écosystème. Et développer sur ce framework est un contraste marqué avec l'écriture de code pour WordPress. Si dans ce dernier cas il s'agit principalement de programmation procédurale, alors dans Laravel, il est explicitement orienté objet.



Quelle est la différence?



Ci-dessous, je comparerai WordPress et octobre dans différentes catégories et soulignerai les avantages et les inconvénients de chacun. Mais je ne choisirai pas de gagnant, car ce n'est pas le but de l'article. Et, dans tous les cas, il n'y a pas de CMS «meilleur» ou «meilleur». Chacun d'eux a ses propres forces et faiblesses, ce qui les rend plus ou moins adaptés à une tâche, un projet, une entreprise ou une équipe spécifique. De plus, il peut être utile pour un projet d'utiliser plusieurs CMS, par exemple en utilisant un pour la gestion des données et un autre pour le rendu des pages. C'est à vous de décider lequel des dizaines de systèmes est le mieux adapté à votre tâche.



Aucune conclusion définitive ne peut être tirée dans cet article, car nous envisageons ici l'une des nombreuses options. Par exemple, nous pouvons également trouver des comparaisons sur le Web comme «WordPress contre Drupal contre Joomla», «WordPress contre les générateurs de sites statiques» ou encore «WordPress contre Medium». Comme aucun de ces articles ne donne une image complète, aucune de ces comparaisons ne peut et ne doit pas être considérée comme définitive. Comparons donc.



Philosophie et public cible



Ce n'est pas un hasard si presque un site Web sur trois est créé sur WordPress . Depuis sa création, il s'est efforcé d'être aussi convivial que possible , et il a bien fonctionné. WordPress a éliminé les difficultés d'utilisation potentielles pour tous les utilisateurs, quel que soit leur niveau d'éducation ou leurs connaissances techniques. Le fondateur de WordPress, Matt Mullenweg, a exprimé l'avis que la devise de WordPress, «Démocratiser les publications», pour cette époque signifie ce qui suit:



"Les personnes de toutes origines, intérêts et capacités devraient avoir accès à un logiciel qui leur permet de s'exprimer sur un réseau ouvert et de s'approprier leur contenu."


WordPress est facile à utiliser pour tout le monde, et son inclusivité se confirme également du côté du développement: il n'est pas rare de trouver des personnes sans expérience en codage (comme des spécialistes du marketing, des concepteurs, des blogueurs, des vendeurs, etc.) qui lancent avec succès leurs sites. WordPress est centré sur l'utilisateur et les besoins des utilisateurs sont plus importants que les besoins des développeurs.



Octobre CMS, au contraire, est plus axé sur le développeur, ce qui a été clairement compris depuis la sortie :



«Octobre CMS propose une hypothèse audacieuse mais évidente: les clients ne construisent pas de sites Web, les développeurs le font. Le rôle du client est de gérer le site et de clarifier ses besoins commerciaux. Le développeur Web et l'industrie elle-même tournent autour de la médiation de ces facteurs. "


Selon ses fondateurs , la mission d'octobre CMS est de "prouver que la construction de sites Internet n'est pas très difficile". Le CMS d'octobre basé sur Laravel est un bon point de départ pour écrire du code modulaire réutilisable. Il vous permet de développer des applications bien conçues qui seront faciles à personnaliser et à prendre en charge à long terme. De telles applications peuvent être maintenues et entièrement personnalisables sans l'utilisation de solutions de contournement («béquilles») - ce qui attire les programmeurs sérieux.



October CMS peut également offrir une excellente expérience utilisateur, mais ce n'est pas aussi simple et convivial que WordPress. Les utilisateurs devront comprendre comment certaines fonctions fonctionnent avant de les utiliser. Par exemple, pour comprendre comment intégrer un formulaire via un plugin, vous devrez lire une longue instruction, ce qui est plus compliqué que la fonction intuitive de glisser-déposer trouvée dans plusieurs plugins de formulaire dans WordPress.



Installation



WordPress peut être installé en cinq minutes , bien que de nombreuses personnes notent qu'avec tous les plugins pris en compte, cela prend généralement 15 minutes ou plus . De plus, WordPress propose la fonctionnalité Multisite , qui vous permet de créer un réseau de plusieurs sites virtuels en une seule installation. Cette fonctionnalité permet à l'agence d' administrer facilement les sites de plusieurs clients .



L'installation d'Octobre CMS est également très simple: l' installation de l' Assistant lui-même prend encore moins de cinq minutes, et si vous l'installez via une installation sur console , alors encore plus rapidement. Ce dernier peut être fait en naviguant simplement vers le répertoire cible puis en exécutant la commande



curl -s https://octobercms.com/api/installer | php 


Après cela, vous devez entrer la configuration de la base de données, sinon elle se comporte comme un CMS à fichier plat. Une fois l'installation terminée, nous aurons un site Web entièrement fonctionnel, mais assez simple pour le moment. Si vous ajoutez du temps pour installer et configurer les plug-ins requis, vous pouvez vous attendre à ce que cela prenne au moins 15 minutes.



image



sécurité



Tout le monde ne considère pas WordPress comme sûr en raison du grand nombre de vulnérabilités constamment découvertes. Cela oblige les utilisateurs à continuer à mettre à jour le CMS lui-même et tous les plugins installés tout le temps pour éviter les menaces de sécurité. Parmi les problèmes majeurs, il y a la prise en charge des anciennes versions de PHP qui ne sont plus prises en charge par la communauté des développeurs PHP (WordPress prend actuellement en charge PHP 5.2.4, tandis que la dernière version de PHP entièrement prise en charge est la 5.6). Ce problème devrait être résolu en avril 2019, lorsque WordPress commencera officiellement à prendre en charge les versions 5.6 et supérieures de PHP (Le problème a déjà été résolu. - Approx. Transl.) .



En outre, la menace pour la sécurité de WordPress n'est pas tant dans ses problèmes internes, mais en raison de sa grande popularité, qui fait du système une cible pour les pirates. Cependant, cela fonctionne également dans la direction opposée: la distribution généralisée de WordPress signifie que son équipe de sécurité doit prendre son travail au sérieux, rechercher et corriger constamment les vulnérabilités, sinon jusqu'à un tiers des sites Web sur Internet sont menacés. Les enjeux sont trop élevés.



Octobre CMS, en revanche, n'a aucun problème de sécurité de réputation. Cependant, comme seuls 27 000 sites actifs sont créés en octobre(par rapport à des millions sur WordPress), nous ne pouvons pas évaluer les deux systèmes de manière égale. Cependant, l'équipe de développement CMS d'octobre prend la sécurité au sérieux. Cela est démontré par la valeur de l'invite d'installation de l'Assistant pour entrer l'URL du backend du CMS, qui est défini sur / backend par défaut, mais peut être changé pour autre chose pour rendre plus difficile pour les pirates de naviguer sur le site. En revanche, la modification des URL de connexion et de backend WordPress à partir de /wp-login.php et / wp-admin n'est possible que via un plugin . De plus, October CMS peut fonctionner comme un CMS à fichier plat (c'est -à- dire sans base de données) et éviter les vulnérabilités de base de données telles que les injections SQL.



Pile technologique



WordPress et CMS d'octobre fonctionnent sur la pile LAMP traditionnelle: Linux, Apache, MySQL et PHP. Cependant, seul PHP est requis: vous pouvez également utiliser Windows, Nginx, MariaDB, etc. Octobre CMS peut se comporter comme un CMS à fichier plat, c'est-à-dire qu'il peut se passer de base de données, mais au détriment de la fonctionnalité (par exemple, les articles de blog disparaissent) ... La seule chose qui reste garantie est la fonctionnalité des pages, qui est considérée comme la base de la création et de la publication de contenu et constitue la fonction principale.



En ce qui concerne la pile des langues, les sites Web créés à l'aide de WordPress et du CMS d'octobre sont basés sur HTML, CSS et JavaScript (notez que PHP est utilisé pour générer du HTML). October CMS facilite également l' utilisation des fichiers LESS et SASS .



Le paradigme de la programmation



WordPress utilise le principe de la programmation fonctionnelle , basée sur le calcul en appelant une fonction qui n'a pas d'état d'application. Bien que les développeurs WordPress n'aient pas à s'en tenir à la programmation fonctionnelle (par exemple, pour coder leurs thèmes et plugins), ce paradigme a été repris par le code système principal pour maintenir la compatibilité avec les versions précédentes pendant 15 ans. Cela a été l'un des piliers du succès de WordPress, mais cela conduit à une accumulation de dette technique .



D'autre part, October CMS utilise un paradigme de programmation impératifbasé sur le calcul en manipulant l'état des objets. October CMS est basé sur Laravel, un framework entièrement construit sur les principes de la programmation orientée objet . Ces principes vous permettent de créer des applications modulaires basées sur les concepts de Model-View-Controller pour découpler l'interface utilisateur des données d'application, l' injection de dépendances pour personnaliser les dépendances de classe et également découpler l'interface pour définir les services de base fournis par le framework.



Crochets



La programmation dans WordPress peut être décrite comme un "développement Hook". Un hook est un mécanisme qui vous permet de modifier le comportement ou la valeur par défaut et permet à un autre code d'exécuter les fonctions correspondantes. Les hooks sont lancés via des "actions" qui vous permettent d'exécuter des fonctions supplémentaires et des "filtres" qui vous permettent de modifier les valeurs.



Les hooks qui sont répandus dans la base de code WordPress sont l'un de mes aspects préférés de la programmation WordPress. Ils permettent aux plugins d'interagir les uns avec les autres, de base ou de thème, fournissant un support de base pour la programmation orientée aspect .



La bonne nouvelle est que Laravel (et, par conséquent, octobre CMS) prend également en charge le concept de crochets, appelé"Événements" . Ils fournissent une implémentation simple du concept d'observateur, permettant à votre code de s'abonner et d'écouter les événements qui se produisent dans votre application pour réagir au besoin. Les événements vous permettent de décomposer des fonctionnalités complexes en composants que vous pouvez installer indépendamment. Ce faisant, ils interagiront entre eux, ce qui vous permettra de créer des applications modulaires.



Dépendance à l'égard des bibliothèques JavaScript



La dernière version de WordPress inclut par défaut Gutenberg basé sur React.js pour la création de contenu. Par conséquent, le développement de WordPress est désormais principalement basé sur JavaScript (principalement via React ). Bien qu'il soit possible d'utiliser d'autres frameworks et bibliothèques, comme en témoignent les blocs Elementor pour Gutenberg, basés sur Marionette .



De plus, WordPress est toujours basé sur Backbone.js (pour Media Manager) et jQuery (code hérité), mais la dépendance vis-à-vis de ces bibliothèques devrait disparaître à mesure que Gutenberg deviendra la nouvelle valeur par défaut.



October CMS dépend de jQuery, qu'il utilise pour implémenter son optionCadre AJAX pour charger des données à partir du serveur sans rafraîchir la page du navigateur.



Pages, thèmes, plugins



WordPress et CMS d'octobre voient la page comme l'unité de base pour créer et publier du contenu (dans le cas de WordPress, en plus des publications). Les deux prennent en charge la modification de l'apparence de votre site à l'aide de thèmes et vous permettent d'installer et d'étendre les fonctionnalités à l'aide de plugins.



Bien que les concepts soient les mêmes dans les deux CMS, il existe plusieurs différences de mise en œuvre. En conséquence, ils se comportent légèrement différemment.



Dans WordPress, les pages sont définies comme du contenu et sont stockées dans une base de données. Par conséquent, le contenu de la page ne peut être créé que via le CMS (par exemple, dans le panneau d'administration) et le passage d'un thème à un autre ne rend pas la page existante inaccessible. Grâce à cela, l'ensemble du processus est assez fluide.



En revanche, les pages CMS d'octobre sont des fichiers statiques stockés dans le répertoire du thème. L'avantage de cette solution architecturale est que le contenu de la page peut être créé à partir d'une application externe, par exemple, des éditeurs de texte comme Sublime ou Visual Studio Code . D'un autre côté, lorsque vous passez d'un thème à un autre, vous devez recréer ou copier manuellement les pages du thème actuel vers le nouveau thème, sinon elles disparaîtront.



Il est important de noter que le CMS d'octobre permet le routage des pages. Par conséquent, les pages sont utilisées non seulement comme conteneurs pour le contenu, mais également pour la fonctionnalité. Par exemple, un plugin de blog dépend d'une page pour afficher une liste d'articles de blog à une URL sélectionnée, une autre page pour afficher un article de blog à une URL sélectionnée différente, et ainsi de suite. Si l'une de ces pages disparaît, la fonctionnalité associée du plugin deviendra indisponible et cette URL générera une erreur 404. Par conséquent, le CMS d'octobre ne sépare pas complètement les thèmes et les plugins du CMS et ne change pas de thème avec soin.



image



Fonctionnalités et plugins prêts à l'emploi



WordPress offre des fonctionnalités de base minimales qui peuvent être améliorées avec des plugins . Il adhère à la règle 80-20 pour décider d'inclure ou non certaines fonctionnalités dans son noyau.



S'ils profitent à 80% des utilisateurs, alors ils sont inclus, sinon ils sont implémentés via des plugins. Lors de l'installation de plugins sur le site, ceux-ci peuvent conduire à un code de ballonnementsi trop sont installés. Les plugins peuvent également mal fonctionner les uns avec les autres, exécuter du code similaire ou charger des ressources similaires, ce qui entraîne des performances sous-optimales. Par conséquent, bien que le lancement d'un site WordPress soit relativement facile, le maintenir et le maintenir dans un état optimal et performant à mesure que de nouvelles fonctionnalités sont ajoutées est plus un défi.



image



Octobre CMS essaie également d'offrir une fonctionnalité de base minimale. Trop: la seule fonction garantie est la création et la publication de pages. Pour tout le reste, nous devrons installer l'un des plugins. En d'autres termes, il y a tout ce dont vous avez besoin et rien de plus.



L'objectif est clair: la plupart des sites simples sont constitués de pages uniquement, peut-être même sans articles de blog, utilisateurs ou connexions. Pourquoi une application chargerait-elle des ressources pour eux si elles ne sont pas nécessaires? En conséquence, les fonctionnalités de blog , de gestion des utilisateurs , de traduction et d'autres fonctions sont disponibles sur le marché officiel .



image



October CMS inclut également certaines fonctionnalités qui (bien que pas toujours nécessaires) peuvent grandement améliorer l'application. Par exemple, il fournit une prise en charge intégrée pour télécharger des fichiers multimédias sur Amazon S3 et y accéder via CDN Rackspace... Il dispose également de Media Manager, qui est principalement utilisé via des plugins, par exemple, pour ajouter des images au blog. Les pages peuvent également utiliser le Gestionnaire de médias pour incorporer des fichiers multimédias, mais le CMS est livré avec une section Actifs pour charger les fichiers multimédias pour eux, ce qui semble plus pratique.



Il me semble qu'Octobre CMS permet de créer les applications les plus simples, principalement pour des sites simples. Mais il peut y avoir des conséquences désagréables. Cela peut conduire à une surcharge de code, car la ligne entre ce qui est nécessaire et ce qui ne l'est pas est très mince et difficile à déterminer à l'avance dans le CMS.



Cela est facile à ressentir si nous regardons le concept d '"utilisateur": dans WordPress, les utilisateurs et les administrateurs de site appartiennent à la même entité utilisateur (et nous pouvons faire d'un utilisateur un administrateur via des rôles et privilèges). Dans le CMS d'octobre, ces deux concepts sont implémentés séparément: une fonctionnalité d'administration «prête à l'emploi» est disponible, qui peut se connecter au panneau d'administration et modifier les paramètres, tandis que les utilisateurs enregistrés sont implémentés via un plug-in distinct. Ces deux types d'utilisateurs ont différents processus de connexion et différentes tables de base de données pour le stockage des données. Ainsi, peut-être que le principe DRY (ne vous répétez pas) est violé.



Ce problème se pose non seulement en relation avec le comportement de l'entité, mais aussi dans les champs de données qu'elle doit contenir. Par exemple, les champs de données utilisateur sur un site doivent-ils être prédéfinis? Un champ avec un numéro de téléphone est-il requis? Et le champ URL d'Instagram, considérant qu'Instagram est devenu très populaire relativement récemment? Si nous construisons un site Web professionnel, ne devrions-nous pas utiliser la boîte LinkedIn au lieu d'Instagram? Ces décisions dépendent sans ambiguïté de la situation et ne peuvent être prises ni par le CMS ni par le plugin.



Un plugin CMS d'octobre appelé User implémente le système utilisateur, mais sans la présence de champs personnalisés. Et le plugin User Plus ajoute quelques champs personnalisés supplémentaires. S'ils ne suffisent pas, il existe un plugin User Plus + qui ajoute encore plus de champs personnalisés. À quel moment est-il temps d'arrêter?(Chez LOVATA, nous avons développé notre propre plugin Buddies , qui a résolu ce problème et vous permet de créer n'importe quel nombre de champs personnalisés. - Approx. Transl.)



Un autre problème - s'il n'y a pas de place pour ajouter de nouvelles fonctionnalités à une entité, cela conduit à la création d'un autre objet très similaire , simplement pour prendre en charge les capacités requises. Par exemple, en octobre CMS, par défaut, il y a une fonction de création de page, et vous pouvez également créer des pages statiques via le plugin... Leur essence est la même: les pages et les pages statiques sont enregistrées en tant que fichiers statiques. La seule chose qui les différencie (pour autant que je sache) est que les pages statiques sont éditées avec un éditeur visuel au lieu d'un éditeur HTML et peuvent être ajoutées au menu. Il me semble que seules les différences structurelles, telles que le stockage d'un objet en tant que fichier statique et d'un autre dans la base de données, peuvent expliquer la création d'un objet supplémentaire pour la page (il y a une pull request pour cela ), mais pour la fonctionnalité simple que nous avons maintenant, cela conduit à gonfler code.



Ainsi, October CMS vous permet de créer des applications Web de manière très économique et efficace, par exemple en supprimant la base de données lorsqu'elle n'est pas nécessaire. Mais l'application peut aussi devenir trop gonflée car les développeurs sont obligés d'implémenter plusieurs solutions pour des objets similaires, ce qui peut rendre son utilisation difficile («Dois-je utiliser une page ou une page statique?»).



Puisque ni WordPress ni le CMS d'octobre n'ont trouvé la solution parfaite pour éviter les ballonnements, toute architecture d'application doit être soigneusement conçue pour éviter de futurs problèmes.



Création de contenu



Gutenberg apporte deux innovations à WordPress: il utilise des composants comme entité pour créer des sites Web, ce qui présente plusieurs avantages par rapport au codage blob HTML, et introduit une nouvelle entité appelée "bloc", qui après l'achèvement de Gutenberg Phase 2 en 2019 (déjà implémentée. - Env. Trad.) . Il proposera un moyen unifié d’inclure du contenu dans le site, ce qui simplifiera le travail de l’utilisateur par rapport au processus chaotique d’ajout de contenu à l’aide de codes courts, de TinyMCE, de menus, de widgets, etc.



image



Étant donné que les blocs Gutenberg peuvent créer et enregistrer du HTML statique dans le cadre d'articles de blog, l'installation de plusieurs blocs Gutenberg ne conduit pas nécessairement à un code de gonflement sur le site côté utilisateur. Il peut être limité par des inconvénients côté administrateur. Par conséquent, Gutenberg peut être considéré comme une bonne approche pour créer des sites de manière modulaire avec une interface utilisateur simple mais puissante pour créer du contenu. Le plus gros inconvénient est peut-être la nécessité d'apprendre React, ce qui n'est pas facile .



Si l'unité principale de création de contenu dans WordPress est les composants React, alors October CMS est basé sur l'idée qu'un bon vieux HTML suffit pour créer des sites Web. En effet, lors de la création d'une page, nous travaillons avec un éditeur HTML classique (Markup).



image



Si la page était purement HTML statique, il n'y aurait pas besoin d'un CMS. Mais les pages du CMS d'octobre sont écrites à l'aide de modèles Twig qui sont compilés en code PHP simple et optimisé. Ils peuvent être basés sur les mises en page (mises en page), qui contiennent des éléments répétitifs tels que l'en-tête et le pied de page, peuvent entraîner des espaces réservés (espaces réservés), qui sont définis dans la mise en page pour autoriser les paramètres de contenu sur la page, et peuvent également inclure des éléments paresseux (partiels), qui sont sont essentiellement des morceaux de code réutilisables.



De plus, les pages peuvent contenir des blocs de contenu(contenu), qui sont des fichiers texte, HTML ou Markdown qui peuvent être modifiés séparément. Ils peuvent également contenir des composants , qui sont des fonctionnalités implémentées à l'aide de plugins. Enfin, si HTML n'est pas suffisant et que nous devons créer du code dynamique, des fonctions PHP peuvent être ajoutées .



L'éditeur complet est HTML. Il n'y a pas de zones de texte avec TinyMCE pour l'édition visuelle du contenu - du moins pas via l'interface par défaut (cette fonctionnalité est laissée aux plugins). Par conséquent, nous pouvons dire que vous devez connaître le HTML pour utiliser le CMS d'octobre. En outre, plusieurs options de création de contenu (pages, mises en page, espaces réservés, parcelles, blocs de contenu, composants et fonctions PHP) peuvent être très efficaces, mais elles ne sont pas aussi faciles à utiliser que via l'interface de bloc WordPress unifiée. Les choses peuvent devenir encore plus compliquées à mesure que d'autres éléments peuvent être ajoutés, tels que des pages et des menus statiques ou des extraits.. Et certains d'entre eux, par exemple les pages et les pages statiques, ont apparemment la même fonctionnalité, ce qui complique le choix de quoi et quand utiliser.



Je pense que presque tout le monde peut administrer un site WordPress. Mais October CMS est plus pratique pour les développeurs que pour un utilisateur sans connaissances techniques. Par conséquent, les programmeurs peuvent l'aimer, mais les personnes d'autres domaines de l'interface peuvent ne pas sembler intuitives.



Gestionnaire de médias



WordPress et CMS CMS ont tous deux un gestionnaire de médias qui vous permet d'ajouter des fichiers multimédias à votre site sans effort, prend en charge l'ajout de plusieurs fichiers en même temps par glisser-déposer et affiche des images dans la zone de contenu. Ils se ressemblent et se comportent à peu près de la même manière: la seule différence claire que j'ai remarquée est que le Media Manager pour WordPress vous permet d'incorporer des galeries d'images, tandis que le Media Manager pour le CMS d'octobre vous permet de créer manuellement la structure de dossiers qui héberge les fichiers téléchargés.



image



Mais depuis l'avènement de Gutenberg, les capacités multimédias de WordPress se sont considérablement étendues: vous pouvez désormais intégrer des vidéos, des images et des galeries de photos, contrairement à l'éditeur TinyMCE, qui ne propose qu'une version imprécise de son apparence sur le site. Ils ont également ajouté des fonctions intéressantes mais faciles à utiliser qui sont présentées dans cette vidéo .



Internationalisation



Le noyau WordPress utilise gettext pour permettre la traduction des thèmes et des plugins . En commençant par un fichier .pot contenant toutes les chaînes à traduire, nous devons créer un fichier .po contenant leur traduction dans la langue appropriée. Ce fichier est ensuite compilé dans un fichier binaire .mo, adapté à l'extraction rapide des traductions. Parmi les outils pour accomplir ces tâches figurent GlotPress (en ligne) et Poedit (application téléchargeable). De manière pratique, ce mécanisme fonctionne également dans la localisation côté client pour Gutenberg.



image



WordPress n'a plus de solutions de traduction de contenu de base, et ils ne les proposeront pas avant la quatrième phase de Gutenberg(prévu pour 2020 ou plus tard). Pour l'instant, cette fonctionnalité sera fournie par des plugins qui proposent différentes stratégies pour stocker et gérer le contenu traduit. Par exemple, des plugins comme Polylang et WPML stockent chaque traduction sur une ligne distincte d'une table de base de données personnalisée. Cela est pratique car le contenu n'est pas mélangé, mais il est plus lent car il nécessite une jointure interne supplémentaire des deux tables lors de l'interrogation de la base de données. Le plugin qTranslate X stocke toutes les traductions dans un champ de la table de base de données d'origine. De cette façon, les données sont demandées plus rapidement, mais en raison du mélange de contenu, le site peut se casser si vous désactivez le plugin. Il nous reste à choisir la stratégie qui répond le mieux à nos besoins.



Octobre CMS ne prend pas en charge le multilinguisme via le noyau, mais via un plug-in créé par une équipe régulière . Ce plugin garantit une intégration sans erreur dans le système. D'un point de vue fonctionnel, il fait son travail, mais d'un point de vue développement, le plugin n'est pas tout à fait parfait.



Dans WordPress, une page est juste un article avec un type d'article «page», et il existe un mécanisme de traduction unique pour eux. Le CMS d'octobre a des objets «page», «page statique» et «article de blog». Bien que très similaires, ils nécessitent trois traductions différentes! Le contenu de la «page» peut inclure des codes de message (par exemple, des codes nommés nav.content, header.title, etc.), chacun contenant ses propres traductions pour tous les paramètres régionaux en tant qu'objet JSON sérialisé dans la table de base de données rainlab_translate_messages.



Le contenu de la page statique est généré dans un nouveau fichier statique pour chaque locale, bien que toutes les URL traduites pour tous les paramètres régionaux ne soient pas stockées dans le fichier correspondant, mais dans le fichier de langue par défaut.



Le contenu du billet de blog est stocké en tant qu'objet JSON sérialisé avec une ligne par locale dans la table de base de données rainlab_translate_attributes, et l'URL traduite est stockée avec une ligne par locale dans la table de base de données rainlab_translate_indexes.



Je ne sais pas si cette complexité est liée à la manière dont le plugin a été implémenté, ou à l'architecture du CMS d'octobre. Dans tous les cas, c'est un autre exemple de surcharge de code indésirable pendant le développement.



Gestion des plugins



WordPress et October CMS offrent un gestionnaire de plugins avancé qui vous permet de trouver, d'installer de nouveaux plugins et de mettre à jour les plugins précédemment installés vers la dernière version - le tout via un backend.



image



Gestion des dépendances



Octobre CMS utilise Composer comme gestionnaire de packages, permettant aux plug-ins de télécharger et d'installer leurs dépendances pendant l'installation, offrant ainsi un développement indolore.



WordPress, en revanche, n'a pas officiellement implémenté Composer (comme tout autre gestionnaire de dépendances PHP) car il n'y a pas d'accord sur le fait qu'un site WordPress est ou une dépendance . Par conséquent, s'ils ont besoin de Composer pour des projets, les développeurs doivent l'ajouter eux-mêmes .



Avec le passage à Gutenberg, NPM est devenu le gestionnaire de dépendances JavaScript préféré, les outils de développement populaires en dépendent et les bibliothèques clientes sont constamment publiées sous forme de packages autonomes.dans le registre NPM .



Interaction avec la base de données



WordPress propose des fonctions pour récupérer les données de la base de données (par exemple, get_posts) et les stocker (par exemple, wp_insert_post et wp_update_post). Lors de la récupération des données, nous pouvons transmettre des paramètres de filtrage, de limitation et d'organisation des résultats pour indiquer si le résultat doit être transmis en tant qu'instance de la classe ou en tant que tableau de propriétés, etc. Lorsque la fonction ne satisfait pas pleinement nos exigences (par exemple, lorsque nous devons exécuter INNER JOIN avec une table utilisateur), nous pouvons interroger la base de données directement via la variable globale $ wpdb. Lors de la création d'un plugin avec un type d'enregistrement personnalisé, le code exécutera très probablement des requêtes SQL personnalisées pour récupérer et / ou enregistrer des données dans des tables utilisateur.Ainsi, WordPress essaie de fournir un accès à la base de données via des fonctions communes dans la première étape et un accès de bas niveau à la base de données dans la deuxième étape.



October CMS adopte une approche différente: au lieu de se connecter directement à la base de données, l'application utilise l' ORM Eloquent de Laravel pour accéder et manipuler les données de la base de données à l'aide d' instances de classe (modèles). Grâce à cela, l'interaction avec la base de données doit également être basée sur les principes de la programmation orientée objet. Il s'agit d'un accès de haut niveau; le plugin peut récupérer et / ou sauvegarder des données sans écrire de chaîne SQL, simplement en suivant les règles de création de tables et d' établissement de relations entre objets . Par exemple, le code ci-dessous récupère un objet de la base de données via le modèle de vol, modifie la propriété et l'enregistre à nouveau.



$flight = Flight::find(1);
$flight->name = 'Darwin to Adelaide';
$flight->save();




Mise à jour du modèle de données



Une autre raison du succès de WordPress (outre le fait qu'il ne viole pas la rétrocompatibilité) était l' architecture de sa base de données... Il a été conçu pour permettre aux applications de se développer au fil du temps. Cet objectif est atteint grâce à des méta-propriétés, c'est-à-dire des propriétés qui peuvent être librement ajoutées à l'objet de base de données à tout moment. Ces propriétés ne sont pas stockées dans une colonne de la table d'objets correspondante (wp_posts, wp_users, wp_comments ou wp_terms), mais comme une ligne dans la méta-table correspondante (wp_postmeta, wp_usermeta, wp_commentmeta ou wp_termmeta) et récupérées à l'aide d'un INNER JOIN. Par conséquent, si la récupération de ces méta-valeurs est plus lente, elles offrent de la flexibilité. Autrement dit, le modèle de données d'application a rarement besoin de reconstruire l'architecture à partir de zéro pour implémenter de nouvelles fonctionnalités.



image



October CMS n'utilise pas de méta-propriétés, mais peut stocker plusieurs valeurs arbitraires. Ils n'apparaissent pas directement sous forme de colonnes dans les tables de base de données, comme un objet JSON sérialisé . Sinon, lorsque l'objet a besoin d'une nouvelle propriété, nous devons ajouter une nouvelle colonne au tableau correspondant (cela utilise les plugins User Plus et User Plus + mentionnés précédemment). Pour mettre à jour le schéma de la base de données de l'application, October CMS s'appuie sur les migrations Laravel, qui sont des ensembles d'instructions pour l'exécution du schéma (comme l'ajout ou la suppression d'une colonne, le changement de nom d'un index, etc.). Ils sont exécutés lors de la mise à jour du logiciel, par exemple lorsqu'une nouvelle version du plug-in est installée.



Caractéristiques sans tête



WordPress et October CMS peuvent être utilisés de manière autonome. Autrement dit, nous pouvons considérer un CMS comme un système de gestion de contenu qui rend le contenu disponible via une API, permet à un site Web d'être affiché côté client et peut prendre en charge d'autres applications telles que le mobile. En effet, WordPress évolue progressivement vers le sans tête, l'éditeur de contenu Gutenberg lui-même considérant WordPress comme un CMS sans tête. En conséquence, Gutenberg peut également fonctionner avec n'importe quel autre CMS, comme vous pouvez le voir dans l'exemple de Drupal Gutenberg (Il existe déjà une implémentation Gutenberg pour le CMS d'octobre . - Ed. Transl.) .



Le système headless doit implémenter une sorte d'API pour renvoyer des données, telles que REST ou GraphQL... WordPress prend en charge REST via l' API WP REST , fournissant des points de terminaison le long de la route prédéfinie / wp-json / wp / v2 / ...; Octobre CMS prend en charge REST via les plug - ins RESTful et le générateur d'API , qui vous permettent de créer des points de terminaison personnalisés et, par conséquent, de prendre en charge le contrôle de version dans le cadre de l'URL du point de terminaison et peuvent fournir une meilleure protection contre les bots. WordPress prend également en charge GraphQL via WPGraphQL , mais October CMS n'a pas ses implémentations.



Surtout, un système sans tête doit offrir des capacités de gestion de contenu efficaces. Comme nous l'avons mentionné, WordPress dispose d'une architecture de base de données robuste qui propose de nombreux objets de données (utilisateurs, publications et publications personnalisées, pages, catégories, balises et taxonomies personnalisées, commentaires). Ils peuvent être utilisés pour bien modéliser l'application, des méta-propriétés pour étendre ces objets de données (ce qui permet à l'application de mettre à jour son modèle de données en conséquence et sans changements significatifs), et également en utilisant le plugin Advanced Custom Fields pour combler le vide dans l'établissement de relations entre les objets de données. De plus, le plugin VersionPress vous permet de contrôler la gestion des versions du contenu de la base de données à l'aide de Git. Autrement dit, WordPressbon pour la gestion de contenu.



Octobre CMS peut exclure une base de données et se comporter comme un système de fichiers plat, ou avoir une base de données et se comporter comme un hybride, stockant le contenu de la page en tant que fichiers statiques et articles de blog dans la base de données. Par conséquent, le contenu n'est pas centralisé et nécessite une approche différente pour le gérer. Par exemple, bien que nous puissions utiliser Git pour contrôler les versions de page, il n'y a pas de support de contrôle de version dans la base de données en soi. La solution à ce problème consiste à remplir les données de la base de données via des semoirsqui, en tant que code, peut être versionné et exécuté lors du déploiement. En outre, octobre CMS n'offre pas de modèle de base de données intégré avec des objets de données prédéfinis qui satisferaient les besoins de la plupart des applications. Par conséquent, pour implémenter son modèle de données , l'application aura très probablement besoin d'un développement individuel, ce qui demande plus de travail. D'un autre côté, cela peut être plus efficace (par exemple, accéder à une propriété depuis une colonne est plus rapide que depuis une ligne dans une autre table en utilisant INNER JOIN dans les méta-propriétés WordPress).



Prise en charge de la CLI



WordPress et October CMS peuvent être interagis via la console à l'aide de l'interface de ligne de commande (CLI): dans WordPress, cela se fait via WP-CLI , et en octobre CMS via Artisan de Laravel. En plus des commandes Laravel, October CMS implémente plusieurs commandes natives pour les mises à jour du système, les migrations de bases de données, etc. Ces outils rendent l'accès au site en dehors du navigateur très pratique, par exemple pour les tests.



Hébergement



Trouver un hébergeur pour un site WordPress ne pose aucun problème. Compte tenu de la part de marché de WordPress, il y a des dizaines, voire des centaines, de fournisseurs en concurrence les uns avec les autres; c'est un marché très dynamique. Le seul problème est de trouver le fournisseur le plus approprié pour un site particulier sur la base de toutes les offres. Après tout, ils peuvent varier en termes de prix, de qualité, de type, de bande passante et de capacité de stockage, de support client, d'emplacement, de fréquence de mise à jour du matériel et d'autres critères permettant de naviguer principalement à travers des avis qui les comparent.



Malgré le fait qu'il n'y en a pas autant pour October CMS, il existe un certain nombre de fournisseurs d'hébergement proposant leurs services, vous pouvez donc les comparer et choisir le bon. Beaucoup d'entre eux sont partenaires d'Octobre CMSD'autres sont faciles à trouver dans un moteur de recherche , mais comme je n'ai pas trouvé d'article critique ou de comparaison indépendant, choisir le plus approprié sera un peu plus difficile.



Marché, écosystème et valeur



L'écosystème commercial WordPress est évalué à 10 milliards de dollars par an . Cela témoigne du grand nombre de personnes et d'entreprises qui ont pu gagner de l'argent en proposant des produits et services WordPress, tels que le développement de sites Web, l'hébergement, le développement de thèmes et de plugins , le support, la sécurité et autres. En effet, il est tellement volumineux qu'il est même légèrement gonflé, en ce sens que très souvent on peut trouver différents plugins qui résolvent le même problème, des plugins qui ne fonctionnent pas ou qui n'ont pas été mis à jour depuis des années, et des thèmes qui se ressemblent.



Cependant, lors de la construction d'un nouveau site, la taille et la diversité de l'écosystème signifient également que nous sommes plus susceptibles de trouver au moins un plugin qui implémente chacune des fonctionnalités requises, ce qui nous fait économiser de l'argent sans avoir à développer nous-mêmes la fonctionnalité. La présence de thèmes personnalisables vous permet de créer un site Web avec un design assez unique avec un minimum d'effort. En conséquence, vous pouvez facilement créer et exécuter un site WordPress pour moins de 100 $, ce qui fait de ce CMS la bonne option pour les projets avec n'importe quel budget.



Étant relativement nouveau, il n'a que cinq ans ( déjà six ans. - Env. Trad.), OctoberCMS est certainement en retard sur WordPress en termes d'écosystème et de taille de marché, mais il ne cesse de croître. Actuellement, il existe plus de 600 plugins et plusieurs thèmes sur son marché (en juin 2020, plus de 900 plugins et environ 200 sujets ont été publiés. - Env. Traduction) . En termes de plugins, l'équipe CMS d'octobre demande à la communauté de faire un effort pour créer des plugins originaux qui offrent des fonctionnalités qui ne sont pas encore fournies par d'autres.



Ainsi, bien que plus de 600 plugins ne soient pas beaucoup, ils offrent au moins plus de 600 fonctionnalités différentes. Autrement dit, bien qu'il n'y ait aucun moyen de choisir entre plusieurs fournisseurs, nous pouvons nous attendre à couvrir les besoins de base typiques d'un site Web tels que les blogs, les commentaires, le forum, l'intégration des médias sociaux, le commerce électronique et autres. De plus, comme les fondateurs d'Octobre CMS vérifient personnellement tous les plugins présentés et les évaluent conformément aux recommandations de qualité , nous pouvons nous attendre à ce que ces plugins fonctionnent comme prévu.



Un autre avantage est que les plugins d'octobre peuvent inclure des éléments des packages Laravel (bien que tous ne soient pas compatibles avec Octoberau moins pas de hacks). Mais il y a peu de propositions sur des sujets, c'est-à-dire que nous devrons probablement développer notre propre thème, en embauchant un développeur pour cette tâche. Le thème du CMS d'octobre est le plus susceptible d'être un développement individuel, car les thèmes et les plugins ne sont pas complètement séparés, ce qui rend le marché facilement remplaçable le plus difficile à créer. Mais c'est un problème temporaire: après la sortie de cette fonction, les pages peuvent être stockées dans la base de données et l'échange de thèmes ne doit pas violer la fonctionnalité.



À mon avis, en raison du moins de thèmes et de plugins, créer un site simple sur OctoberCMS coûtera plus cher que créer un site similaire sur WordPress. Mais pour les sites complexes, la meilleure architecture d'octobre (paradigmes de programmation orientée objet et Model-View-Controller) rend le logiciel plus facile à maintenir et, par conséquent, potentiellement moins cher.



Communauté



Faire partie de la communauté WordPress et y avoir accès est l'une des raisons les plus convaincantes d'utiliser WordPress. Cela n'est pas seulement dû à la taille (il alimente près d'un tiers de tous les sites Web dans le monde, il y a tellement de parties prenantes associées à WordPress et sa communauté est incroyablement grande), mais à la diversité. La communauté WordPress comprend des personnes de professions différentes - développeurs, spécialistes du marketing, designers, blogueurs, vendeurs, etc., des personnes de tous les continents et de tous les pays, parlant de nombreuses langues, d'horizons sociaux et économiques différents, ayant des antécédents éducatifs différents, des handicaps ou sans qu'ils représentent des entreprises, des organisations à but non lucratif et gouvernementales, etc. Par conséquent, il est probable que quel que soit le problème auquel nous sommes confrontés, quelqu'un pourra probablement vous aider sur l'un desforums d'assistance . Contribuer à WordPress est également assez simple: l' équipe Make WordPress rassemble des parties prenantes intéressées à soutenir différents projets (accessibilité, conception, internationalisation, et bien d'autres) et organise comment et à quelle fréquence ils communiquent - principalement via un canal en votre chat Slack dédié .



De plus, la communauté WordPress est réelle et tangible: elle n'existe pas seulement sur Internet, mais se rassemble hors ligne sur WordCamps et autres rencontres à travers le monde. En 2018145 WordCamps ont eu lieu dans 48 pays, avec un total combiné de 45 000 billets vendus et un total de 5 400 réunions avec 687 groupes. Par conséquent, il est probable qu'il y ait une cellule locale à proximité que tout le monde puisse rejoindre pour demander de l'aide, apprendre à utiliser la plateforme, apprendre régulièrement et enseigner aux autres. En ce sens, WordPress n'est pas seulement un CMS, mais plus important encore, ce sont des personnes. Par conséquent, vous ne devez jamais prendre la décision d'abandonner WordPress uniquement en raison de ses caractéristiques techniques, il est également important de prendre en compte sa communauté.



image



La communauté CMS d'octobre est parfois plus petite et moins diversifiée que la communauté WordPress, bien qu'elle ne cesse de croître suite à sa popularité croissante. Octobre propose un forum de supportoù vous pouvez demander de l'aide, cependant, il n'est pas très actif. Il y a aussi un chat Slack (officiellement gelé pour le moment, la communauté se déplace vers Discord - environ Transl.) , Qui est assez actif et dans lequel les fondateurs d'Octobre sont régulièrement enregistrés pour s'assurer que toutes les demandes sont correctement résolues. Ce chat est une excellente occasion d'obtenir des conseils simples et des astuces de vie sur l'utilisation d'Octobre, mais c'est principalement pour les développeurs: il n'y a pas de canaux sur l'accessibilité, le design, l'internationalisation et d'autres sujets, comme dans WordPress. Au moins pour l'instant. Il n'y a actuellement aucune conférence concernant le CMS d'octobre, mais il y a Laracon - une conférence pour la communauté Laravel.



Mainteneur et politique de gestion de projet



Pouvons-nous être sûrs que le logiciel durera longtemps, et si nous décidons de démarrer le projet aujourd'hui, nous n'aurons pas à passer à une autre plateforme à l'avenir? Combien de personnes sont impliquées dans le développement de logiciels? Qui décide dans quelle direction il va?



WordPress a fait un tiers de tous les sites dans le monde, et il a suffisamment de parties intéressées contribuant au développement de logiciels, vous ne pouvez donc pas avoir peur que les sites ne soient plus servis. Cependant, WordPress mène actuellement des discussions internes sur le modèle de gestion, et de nombreux membres de la communauté affirment que les décisions concernant l'orientation de WordPress sont prises unilatéralement par Automattic , qui exécute WordPress.com... Une étape clé a été la décision de lancer Gutenberg, ce que de nombreux participants n'étaient pas d'accord. Gutenberg a clairement manqué de communication de la part de la direction du projet pendant les étapes de développement et de publication. En conséquence, de nombreux membres de la communauté remettent en question le rôle du «dictateur mou» que le fondateur de WordPress et PDG d'Automattic, Matt Mullenweg, a historiquement envisagé, et explorent différents modèles de gouvernance pour trouver un modèle plus adapté pour l'avenir de WordPress. Il reste à voir si cette quête entraînera des changements ou si le statu quo restera.



Les décisions concernant la direction du développement d'Octobre CMS sont principalement prises par les fondateurs Alexei Bobkov et Samuel Georges , ainsi que par le développeur et community manager Luke Towers. Octobre CMS n'est pas encore familier avec un tel luxe comme un problème de gestion: maintenant, ils se préoccupent davantage de comment rendre un projet durable et comment le faire générer des revenus pour l'équipe de développement.



Documentation



La documentation WordPress n'est pas complète , mais elle fait un très bon travail. Mais si vous prenez en compte toute la documentation sur WordPress de toutes les sources, comme les sites célèbres ( Smashing Magazine , astuces CSS , etc.), les sites spécialisés ( WPShout , WPBeginner et bien d'autres), les blogs personnels, les cours en ligne, presque il n'y a aucun aspect du travail avec WordPress qui n'ait pas encore été abordé.



En octobre CMS, la situation de la documentation dans des sources tierces est très loin de WordPress, mais la documentation sur son propre site est assez étendue et elle sera certainement suffisante pour commencer le développement. Les fondateurs d'octobre ajoutent régulièrement de nouveaux documents. Un aspect que j'ai personnellement aimé est la duplication de la documentation Laravel dans la documentation d' octobre pour toutes les questions pertinentes, de sorte que le lecteur n'a pas besoin de remplir les blancs et de deviner quel est le domaine d'octobre et ce qu'est Laravel.



Mais il y a aussi des inconvénients. La documentation d'octobre utilise des termes dérivés de Laravel, tels que middleware, conteneur de service, façades et contrats, sans explication adéquate de ce que c'est. Par conséquent, il peut être utile de lire d'abord la documentation Laravel. Heureusement, il est vaste et compréhensible, et les captures d'écran Laracasts de Laravel sont une autre excellente source pour apprendre non seulement Laravel, mais aussi le développement Web en général.



Production



J'ai décidé de découvrir quelles fonctionnalités pourraient attirer les développeurs à la recherche d'alternatives à WordPress en comparant WordPress à un CMS similaire. Il était censé être un CMS open source gratuit basé sur PHP et créant du contenu dynamique avec le soutien de plusieurs communautés. Parmi les CMS qui remplissaient ces conditions, j'ai choisi le CMS d'octobre à titre de comparaison, parce que j'en savais déjà quelque chose, et parce que j'aime son approche modulaire propre fournie par Laravel. Je pense que c'est une nouvelle approche du développement de sites Web.



Dans cet article, je n'ai pas essayé de choisir un gagnant, mais simplement analysé quand il était logique de choisir l'un ou l'autre CMS, en comparant leurs forces et leurs faiblesses. Il n'y a pas de "meilleur" CMS, il n'y a que le plus approprié pour une situation spécifique. En outre, toute personne recherchant un CMS à utiliser sur un projet spécifique avec une équipe spécifique et un budget spécifique doit comparer toutes les propositions pour voir laquelle est la meilleure pour un projet spécifique. Il est important de ne pas se limiter à quelques CMS, comme je l'ai fait dans cet article, mais de leur donner une chance à tous.



En tant que développeur, j'aime ce que j'ai vu dans CMS d'octobre, surtout qu'il vous permet de créer des applications modulaires qui sont exposées via Laravel. Je considérerais ce CMS pour un nouveau site. Mais en écrivant cet article, j'ai aussi redécouvert WordPress. Comme il est très populaire, WordPress a été beaucoup critiqué, principalement en ce qui concerne sa base de code obsolète et, plus récemment, l'introduction de Gutenberg. Cependant, WordPress a de grandes fonctionnalités (comme un modèle de base de données évolutif) qui sont rarement louées mais qui méritent également d'être considérées. Et surtout, WordPress ne doit pas être considéré uniquement d'un point de vue technique: la taille de la communauté et de l'écosystème le place à un ou deux niveaux au-dessus des alternatives. En bref, certains projets peuvent bénéficier de l'utilisation de WordPress,tandis que d'autres préfèrent utiliser le CMS d'octobre ou une autre plateforme.



En terminant, je voudrais souligner que l'apprentissage du fonctionnement d'un CMS particulier est en soi très utile, que vous décidiez ou non d'utiliser ce CMS particulier. Par exemple, je travaille sur WordPress depuis des années, et en savoir plus sur le CMS d'octobre est une nouvelle approche d'un sujet qui m'a appris beaucoup de choses (comme avoir des directives de normes PHP ) que je n'ai pas rencontrées dans WordPress. Maintenant, c'est à moi de décider de changer le CMS ou de rester sur WordPress.



All Articles