Maison > Tutoriel CMS > WordPresse > Premièrement, regardez-le, un cadre pour les développeurs WordPress

Premièrement, regardez-le, un cadre pour les développeurs WordPress

Lisa Kudrow
Libérer: 2025-02-19 11:13:15
original
974 Les gens l'ont consulté

Theyosis: 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éâtre 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

First Look at Themosis, a Framework for WordPress Developers

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éâtre 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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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 https://www.php.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.

First Look at Themosis, a Framework for WordPress Developers

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:

  1. La configuration était remarquablement rapide et simple.
  2. 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: https://www.php.cn/link/7101e4daaff4511510bbd4e6a0862fb7 . Comme Themosis est un plugin, le code de la librairie est situé dans son répertoire de plugin:

First Look at Themosis, a Framework for WordPress Developers

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.

First Look at Themosis, a Framework for WordPress Developers

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion

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.

  1. 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')

        ));
Copier après la connexion
  1. Créer pages/test.scout.php:
// Search page
Route::is('search', function(){
    return View::make('search', array('search' => $_GET['s']));
});
Copier après la connexion
  1. Ajouter un contrôleur (controllers/Test_Controller.php):
Route::only('page', 'test', 'test@index');
Copier après la connexion

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.

First Look at Themosis, a Framework for WordPress Developers

Le message "Hello World" rend après le rechargement.

First Look at Themosis, a Framework for WordPress Developers

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')
Copier après la connexion

et la vue:

<?php

class Test_Controller{

    public function index(){

        return View::make('pages.test');

    }

}
Copier après la connexion

rend correctement la page.

First Look at Themosis, a Framework for WordPress Developers

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éâtre 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal