Premièrement, regardez-le, un cadre pour les développeurs WordPress
Feb 19, 2025 am 11:13 AMTheyosis: une approche moderne du développement WordPress
Mon dédain pour la base de code Tangled de WordPress est bien connu. Je conseille de son utilisation, sauf si vous êtes techniquement compétent. Cependant, mes critiques découlent d'un désir d'amélioration - un espoir qu'une alternative supérieure émergera, offrant un processus de développement plus logique et efficace. Toute tentative de rationalisation de WordPress est, à mon avis, une étape positive.
Récemment, un projet appelé Theyosis a fait surface, présenté comme un "cadre pour les développeurs WordPress". Cet article explore la thèse, son utilisation et examine son exemple de projet - une application de librairie.
Faits saillants de la clé:
- The Themosis est un nouveau projet con?u comme un cadre pour les développeurs WordPress, visant à simplifier le développement et à imposer une structure à l'architecture du plugin chaotique de WordPress.
- Contrairement aux cadres traditionnels, la Theosose fonctionne comme une API qui s'intègre à WordPress pour améliorer le développement. Il permet aux développeurs de créer des composants WordPress en utilisant des fonctionnalités PHP modernes (espaces de noms, classes, fonctions anonymes) et compositeur.
- L'installation de Theososis repose sur le compositeur et l'outil de ligne de commande WordPress. Le compositeur crée un projet Theyosis, incorporant automatiquement la dernière version WordPress. Un script d'installation WordPress standard termine la configuration.
- La théatre en est encore à ses débuts (version 1.0 en attente). Malgré ses jeunes, il est prometteur de promouvoir de meilleures pratiques de conception au sein de l'écosystème PHP, même dans les contraintes du noyau de WordPress.
Comprendre la thèse
Le terme "framework" pourrait être trompeur pour les développeurs PHP. WordPress contient déjà de nombreuses composantes inutiles. Les cadres adhèrent généralement aux principes minimalistes et aux composants découplés, avec des applications complexes construites sur eux - pas l'inverse.
La théatre n'est pas un cadre au sens traditionnel. Il s'agit d'une API qui s'intègre à WordPress pour simplifier le développement mais qui ne réduit pas nécessairement sa taille. Theyosis fournit des API pour créer des composants WordPress en utilisant PHP moderne, y compris les espaces de noms, les classes, les fonctions anonymes et la prise en charge des compositeurs.
Essentiellement, la Theosis est un plugin WordPress inspiré de Laravel propulsé par MVC utilisé pour construire d'autres plugins. Il comprend son propre routeur (définition de l'itinéraire de style Laravel) et son moteur de modèles (Scout), similaire à Laravel et Phalcon, avec un support WordPress supplémentaire. Par exemple, la boucle de modèle:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
utilise l'API WordPress pour la récupération des données, et la classe Loop
est spécifiquement con?ue pour les boucles de contenu WordPress.
Installation
L'installation de Theosis implique le compositeur et l'outil de ligne de commande WordPress. La création d'un projet Theyosis avec Composer comprend automatiquement la dernière version WordPress; Un script d'installation WordPress standard finalise la configuration. Reportez-vous aux instructions d'installation officielles ou expérimentez d'abord l'exemple du projet (détaillé ci-dessous).
Exemple de projet: l'application de la librairie
Theyosis fournit un exemple d'application de la librairie.
Tester l'application de la librairie
Pour le tester, vous pouvez utiliser Homestead amélioré. Enregistrez un nouveau site avec:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
N'oubliez pas d'ajouter bookstore.local
au fichier /etc/hosts
de votre h?te (selon les instructions améliorées de la propriété).
cloner le référentiel (git clone http://ipnx.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_example
) et accéder à la procédure d'installation à http://bookstore.local:8000
. Suivez les instructions. Cette configuration permet l'expérimentation sans risque - reconstruisez simplement la machine virtuelle pour retourner les modifications.
Bien que l'apparence initiale ne soit pas révolutionnaire (tout site WordPress peut être configuré de la même manière), deux observations clés se distinguent:
- La configuration était remarquablement rapide et simple.
- Les performances étaient étonnamment rapides, compte tenu des couches supplémentaires de Theyosis accédant à l'API WordPress.
Examen du code
Le code de la librairie réside sur github: http://ipnx.cn/link/7101e4daaff4511510bbd4e6a0862fb7 . Comme Themosis est un plugin, le code de la librairie est situé dans son répertoire de plugin:
Trois sous-dossiers principaux existent: app
(Logique WordPress alimentée par Theyosis), src
(code source de Thesosis - Recouillage d'autres frameworks) et vendor
(dépendances des compositeurs).
Bien que le code intègre des pratiques modernes (espaces de noms, classes, documentation complète), des éléments obsolètes mineurs demeurent (par exemple, <?php defined('DS') or die('No direct script access.');
, cl?turant les balises PHP).
Le code de Thesosis est distribué sur deux emplacements: le routage et la présentation résident dans le thème, tandis que la logique d'application est dans le dossier du plugin.
Structure MVC
La structure MVC est bien définie, bien que la fragmentation à travers deux dossiers parents puisse être améliorée. Le dossier routes
(similaire à Laravel) utilise une syntaxe comparable. Les contr?leurs sont séparés des vues et les modèles sont utilisés par les contr?leurs, passant des données aux vues. Un exemple de home.controller.php
:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
Les vues utilisent la notation de points pour la traversée (par exemple, pages.home
cartes à app/views/pages/home.scout.php
).
routage avec paramètres
Le routage est simple. La page de recherche, par exemple, utilise directement la fonctionnalité de recherche de WordPress:
- map: bookstore.local to: /home/vagrant/Code/themosis_example
Cette approche résume la fonction de recherche intrinsèquement défectueuse de WordPress, facilitant le remplacement plus facile.
Création d'une page personnalisée
Créons une page personnalisée avec un contr?leur et une vue.
- Ajoutez un itinéraire à
routes.php
:
return View::make('pages.home')->with(array( 'promo' => Books::getPromoBook($this->page), 'books' => Books::getPopularBooks($this->bookId), 'news' => News::get(), 'newspage' => get_page_by_path('news') ));
- Créer
pages/test.scout.php
:
// Search page Route::is('search', function(){ return View::make('search', array('search' => $_GET['s'])); });
- Ajouter un contr?leur (
controllers/Test_Controller.php
):
Route::only('page', 'test', 'test@index');
Cela rendrait "Hello World" pour /test
dans la plupart des cadres. Cependant, parce que The Theyosis repose sur WordPress, nous devons ajouter la page au système.
Le message "Hello World" rend après le rechargement.
Pour inclure le contenu de la page, nous devons accéder à la variable globale $post
et la transmettre à la vue. Cela met en évidence la dépendance variable globale de WordPress.
Modification du contr?leur:
@include('header') Hello World @include('footer')
et la vue:
<?php class Test_Controller{ public function index(){ return View::make('pages.test'); } }
rend correctement la page.
Bien que quelque peu complexe, les emballages puissants pour rendre le contenu WordPress fournissent une structure et une clarté, améliorant la rigidité de WordPress.
Conclusion
La théatre offre une expérience de type Laravel pour le développement des plugins WordPress. Il introduit une structure et une encapsulation indispensables à l'architecture du plugin de WordPress.
Bien que toujours dans ses premiers stades (version 0.8), la Theosis est un projet prometteur. L'adoption de bonnes pratiques de conception est cruciale pour la communauté PHP, et Theyosis offre une contribution précieuse, même dans les limites du c?ur de WordPress.
(La section des questions fréquemment posées a été omise en raison de contraintes de longueur mais pourrait être facilement paraphrasée et incorporée de manière similaire au reste du texte.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les principales raisons pour lesquelles WordPress provoque une augmentation de l'utilisation du processeur du serveur comprennent des problèmes de plug-in, une requête de base de données inefficace, une mauvaise qualité du code du thème ou une augmentation du trafic. 1. Premièrement, confirmez s'il s'agit d'une charge élevée causée par WordPress via des outils supérieurs, HTOP ou Panel de configuration; 2. Entrez le mode de dépannage pour activer progressivement les plug-ins pour dépanner les goulots d'étranglement des performances, utilisez QueryMonitor pour analyser l'exécution du plug-in et supprimer ou remplacer les plug-ins inefficaces; 3. Installez les plug-ins de cache, nettoyez les données redondantes, analysez les journaux de requête lents pour optimiser la base de données; 4. Vérifiez si le sujet a des problèmes tels que la surcharge de contenu, les requêtes complexes ou le manque de mécanismes de mise en cache. Il est recommandé d'utiliser des tests de sujet standard pour comparer et optimiser la logique de code. Suivez les étapes ci-dessus pour vérifier et résoudre l'emplacement et résoudre le problème un par un.

Les fichiers JavaScript de mini-divateur peuvent améliorer la vitesse de chargement du site Web WordPress en supprimant les blancs, les commentaires et le code inutile. 1. Utilisez des plug-ins de cache qui prennent en charge la compression de fusion, tels que W3TotalCache, Activer et sélectionner le mode de compression dans l'option "Minify"; 2. Utilisez un plug-in de compression dédié tel que FastvelocityMinify pour fournir un contr?le plus granulaire; 3. Compressez manuellement les fichiers JS et téléchargez-les via FTP, adapté aux utilisateurs familiers avec les outils de développement. Notez que certains thèmes ou scripts plug-in peuvent entrer en conflit avec la fonction de compression, et vous devez tester soigneusement les fonctions du site Web après l'activation.

Les méthodes pour optimiser les sites WordPress qui ne reposent pas sur les plug-ins comprennent: 1. Utilisez des thèmes légers, tels que Astra ou GeneratePress, pour éviter les thèmes de pile; 2. Comprimer et fusionner manuellement les fichiers CSS et JS pour réduire les demandes HTTP; 3. Optimiser les images avant le téléchargement, utilisez le format WebP et la taille du fichier de contr?le; 4. Configure.htaccess pour activer le cache du navigateur et connecter à CDN pour améliorer la vitesse de chargement des ressources statique; 5. Limiter les révisions de l'article et nettoyer régulièrement les données redondantes à la base de données.

TransientAPI est un outil intégré dans WordPress pour stocker temporairement les données d'expiration automatique. Ses fonctions principales sont SET_TRANSIENT, GET_TRANSIENT et DELETE_TRANSIENT. Par rapport à OptionsAPI, les transitoires prennent en charge la définition du temps de survie (TTL), qui convient aux scénarios tels que les résultats de la demande d'API de cache et les données informatiques complexes. Lorsque vous l'utilisez, vous devez prêter attention à l'unicité de la dénomination clé et de l'espace de noms, du mécanisme de ?délétion paresseux? de cache et du problème qui peut ne pas durer dans l'environnement de cache d'objet. Les scénarios d'application typiques incluent la réduction de la fréquence de demande externe, le contr?le du rythme d'exécution de code et l'amélioration des performances de chargement des pages.

PluginCheck est un outil qui aide les utilisateurs de WordPress à vérifier rapidement la compatibilité et les performances du plug-in. Il est principalement utilisé pour identifier si le plug-in actuellement installé a des problèmes tels que incompatibles avec la dernière version de WordPress, les vulnérabilités de sécurité, etc. 1. Comment démarrer le chèque? Après l'installation et l'activation, cliquez sur le bouton "runascan" en arrière-plan pour numériser automatiquement tous les plug-ins; 2. Le rapport contient le nom du plug-in, le type de détection, la description du problème et les suggestions de solutions, ce qui facilite le traitement prioritaire des problèmes graves; 3. Il est recommandé d'exécuter des inspections avant de mettre à jour WordPress, lorsque les anomalies du site Web sont anormales ou exécutées régulièrement pour découvrir les dangers cachés à l'avance et éviter les problèmes majeurs à l'avenir.

Le moyen le plus efficace de prévenir le spam de commentaires est de l'identifier et de l'intercepter automatiquement par des moyens programmatiques. 1. Utilisez des mécanismes de code de vérification (tels que Googler captcha ou hcaptcha) pour distinguer efficacement les humains et les robots, en particulier adaptés aux sites Web publics; 2. Définissez des champs cachés (technologie de miel) et utilisez des robots pour remplir automatiquement les fonctionnalités pour identifier les commentaires du spam sans affecter l'expérience utilisateur; 3. Vérifiez la liste noire des mots clés du contenu des commentaires, filtrez les informations sur les spams par la correspondance des mots sensibles et faites attention à éviter les erreurs de jugement; 4. Jugez la fréquence et la source IP des commentaires, limitez le nombre de soumissions par unité de temps et établissez une liste noire; 5. Utilisez des services anti-spam tiers (comme Akismet, CloudFlare) pour améliorer la précision d'identification. Peut être basé sur le site Web

Lorsque vous développez des blocs Gutenberg, la méthode correcte des actifs d'Enqueue comprend: 1. Utilisez Register_Block_Type pour spécifier les chemins de chemin de l'éditor_script, editor_style et style; 2. Enregistrez les ressources via WP_register_Script et WP_register_style dans Functions.php ou plug-in, et définissez les dépendances et versions correctes; 3. Configurez l'outil de construction pour sortir le format du module approprié et assurez-vous que le chemin est cohérent; 4. Contr?lez la logique de chargement du style frontal via ADD_THEME_SUPPORT ou ENQUEUE_BLOCK_Assets pour s'assurer que la logique de chargement du style frontal est assurée.

Pour ajouter des champs utilisateur personnalisés, vous devez sélectionner la méthode d'extension en fonction de la plate-forme et faire attention à la vérification des données et au contr?le d'autorisation. Les pratiques courantes incluent: 1. Utilisez des tables supplémentaires ou des paires de valeurs clés de la base de données pour stocker des informations; 2. Ajoutez des bo?tes d'entrée à l'extrémité avant et intégrer à l'extrémité arrière; 3. Conserver les vérifications du format et les autorisations d'accès aux données sensibles; 4. Mettez à jour les interfaces et les modèles pour prendre en charge un nouvel affichage et édition de champ, tout en prenant en compte l'adaptation mobile et l'expérience utilisateur.
