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://m.miracleart.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://m.miracleart.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 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.

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.

La clé pour ajouter des règles de réécriture personnalisées dans WordPress est d'utiliser la fonction add_rewrite_rule et de vous assurer que les règles prennent effet correctement. 1. Utilisez add_rewrite_rule pour enregistrer la règle, le format est add_rewrite_rule ($ regex, $ redirect, $ after), où $ regex est une URL de correspondance d'expression régulière, $ redirect spécifie la requête réelle et $ après contr?le l'emplacement de la règle; 2. Les variables de requête personnalisées doivent être ajoutées via add_filter; 3. Après modification, les paramètres de liaison fixe doivent être rafra?chis; 4. Il est recommandé de placer la règle en ?haut? pour éviter les conflits; 5. Vous pouvez utiliser le plug-in pour afficher la règle actuelle pour plus de commodité

Robots.txt est crucial pour le référencement des sites Web WordPress et peut guider les moteurs de recherche pour craquer un comportement, éviter le contenu en double et améliorer l'efficacité. 1. Les chemins du système de bloc tels que / wp-admin / et / wp-incluses /, mais évitez de bloquer accidentellement le / les téléchargements / répertoire; 2. Ajouter des chemins de sitemap tels que le plan du site: https://yourdomain.com/sitemap.xml pour aider les moteurs de recherche à découvrir rapidement des cartes de site; 3. Limite / Page / et URL avec des paramètres pour réduire les déchets du robot, mais veillez à ne pas bloquer les pages d'archives importantes; 4. évitez les erreurs courantes telles que le blocage accidentellement de l'ensemble du site, le plug-in de cache affectant les mises à jour et l'ignorer la correspondance des terminaux et des sous-domaines mobiles.

1. Utilisez le plug-in Performance Analysis pour localiser rapidement les problèmes. Par exemple, QueryMonitor peut afficher le nombre de requêtes de base de données et d'erreurs PHP, BlackBoxProfiler génère des rapports d'exécution de fonction et NewRelic fournit une analyse au niveau du serveur; 2. L'analyse des performances d'exécution de PHP nécessite la vérification des fonctions longues, l'utilisation des outils de débogage et l'allocation de mémoire, tels que XDebug génère des graphiques de flamme pour aider à l'optimisation; 3. 4. Combiner des outils externes tels que GooglePageSpeedInsights, Gtmetrix et WebPageTest pour évaluer le front-end Plus

WordPressRequireSAtleastPhp7.4, bien que 8.0orHigheReriSreComMendForBetterformanceAnDecurity.olderversionsLIVEL5

InspectorControls est un composant utilisé dans le développement de Gutenberg pour ajouter des commandes personnalisées dans la barre latérale droite. 1. Il appartient au package @ wordPress / Block-Editor. 2. Il est souvent utilisé avec Panelbody, TextControl et d'autres composants. 3. Lorsque vous l'utilisez, vous devez introduire et raisonnablement disposer des types de contr?le tels que des zones de texte, des sélections de traction, des commutateurs, des curseurs et des sélecteurs de couleurs dans edit.js. 4. Faites attention au regroupement des paramètres, gardez-les simple, soutenez l'internationalisation et optimisez les performances.
