Heim > CMS-Tutorial > WordDrücken Sie > Schauen Sie sich zuerst Themose an, einen Rahmen für WordPress -Entwickler

Schauen Sie sich zuerst Themose an, einen Rahmen für WordPress -Entwickler

Lisa Kudrow
Freigeben: 2025-02-19 11:13:15
Original
956 Leute haben es durchsucht

Themose: Ein moderner Ansatz zur WordPress -Entwicklung

Meine Verachtung für WordPress's Tangled Codebase ist bekannt. Ich empfehle von seiner Verwendung, es sei denn, Sie sind technisch kompetent. Meine Kritik beruht jedoch auf den Wunsch nach Verbesserung - eine Hoffnung, dass eine überlegene Alternative auftauchen wird und einen logischeren und effizienteren Entwicklungsprozess bietet. Jeder Versuch, WordPress zu optimieren, ist meiner Ansicht nach ein positiver Schritt.

Vor kurzem tauchte ein Projekt namens Thesise auf und wurde als "Rahmen für WordPress -Entwickler" in Rechnung gestellt. Dieser Artikel untersucht die Themense, ihre Verwendung und untersucht sein Beispielprojekt - eine Buchhandelsanwendung.

Schlüsselhighlights:

  • Themose ist ein neuartiges Projekt, das als Rahmen für WordPress -Entwickler ausgelegt ist, das die Entwicklung vereinfachen und der chaotischen Plugin -Architektur von WordPress Struktur auferlegt.
  • Im Gegensatz zu herkömmlichen Rahmenbedingungen fungiert die Themen als API, die sich in WordPress integriert, um die Entwicklung zu verbessern. Es ermöglicht Entwicklern, WordPress -Komponenten mit modernen PHP -Funktionen (Namespaces, Klassen, anonymen Funktionen) und Komponisten zu erstellen.
  • Die Installation der
  • -TheSose basiert auf Composer und dem WordPress-Befehlszeilen-Tool. Der Komponist erstellt ein Themoseprojekt, das automatisch die neueste WordPress -Version enthält. Ein Standard -WordPress -Installationsskript vervollständigt das Setup.
  • Die
  • -Themen stammt noch in den frühen Stadien (Version 1.0 ausstehend). Trotz seiner Jugend ist es vielversprechend, bessere Designpraktiken innerhalb des PHP -Ökosystems zu fördern, selbst innerhalb der Einschränkungen des Kerns von WordPress.

Verständnis der Themen

First Look at Themosis, a Framework for WordPress Developers

Der Begriff "Framework" könnte für PHP -Entwickler irreführend sein. WordPress enthält bereits zahlreiche unnötige Komponenten. Frameworks halten sich in der Regel an minimalistische Prinzipien und entkoppelte Komponenten, wobei komplexe Anwendungen aufgebaut sind - nicht umgekehrt.

Themose ist kein Rahmen im traditionellen Sinne. Es ist eine API, die sich in WordPress integriert, um die Entwicklung zu vereinfachen, aber nicht unbedingt ihre Größe verringert. Die Theme bietet APIs zum Erstellen von WordPress -Komponenten mit modernen PHP, einschließlich Namespaces, Klassen, anonymen Funktionen und Komponistenunterstützung.

Im Wesentlichen ist die Themenosis ein mit MVC betriebenes, von LaVavel inspiriertes WordPress-Plugin, das zum Erstellen anderer Plugins verwendet wird. Es enthält eine eigene Router (Laravel-Route-Definition) und eine Templating-Engine (Scout), ähnlich wie Laravel und Phalcon, mit zusätzlicher WordPress-Unterstützung. Zum Beispiel die Vorlagenschleife:

@loop(array('post_type' => 'post', 'posts_per_page' => -1))

    <h1>{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

verwendet die WordPress -API für das Abrufen von Daten, und die Loop -Kläufe wurde speziell für WordPress -Inhaltsschleifen entwickelt.

Installation

Die Installation von

Die Installation von Komponisten und WordPress-Befehlszeilen umfasst. Das Erstellen eines Themoseprojekts mit Composer enthält automatisch die neueste WordPress -Version. Ein Standard -WordPress -Installationsskript schließt das Setup ab. Siehe die offiziellen Installationsanweisungen oder experimentieren Sie zuerst mit dem Beispielprojekt (siehe unten).

Beispielprojekt: Die Bookstore -App

Themose liefert ein Beispiel für Buchhandlungsanwendungen.

Testen Sie die Buchhandlungs -App

Um es zu testen, können Sie Homestead verbessert verwenden. Registrieren Sie eine neue Website mit:

@loop(array('post_type' => 'post', 'posts_per_page' => -1))

    <h1>{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Denken Sie daran, die bookstore.local -Datei Ihres Hosts /etc/hosts hinzuzufügen (gemäß dem Gehöft verbesserte Anweisungen).

klonen Sie das Repository (git clone https://www.php.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_example) und greifen Sie auf die Installationsverfahren unter http://bookstore.local:8000 zu. Befolgen Sie die Anweisungen. Dieses Setup ermöglicht das Experimentieren ohne Risiko - stellt die VM einfach um, um Änderungen zurückzuversetzen.

First Look at Themosis, a Framework for WordPress Developers

Während das anfängliche Erscheinungsbild nicht bahnbrechend ist (jede WordPress -Site kann ähnlich konfiguriert werden), stechen zwei wichtige Beobachtungen heraus:

  1. Setup war bemerkenswert schnell und unkompliziert.
  2. Die Leistung war überraschend schnell, da die zusätzlichen Schichten von Denose auf die WordPress -API zugreifen.

Codeprüfung

Der Code des Buchhandels befindet sich auf GitHub: https://www.php.cn/link/7101e4daaff4511510bbd4e6a0862fb7 . Da die Themen ein Plugin ist, befindet sich der Code des Buchhandels in seinem Plugin -Verzeichnis:

First Look at Themosis, a Framework for WordPress Developers

Drei Hauptunterordner existieren: app (mit Themse betriebene WordPress-Logik), src (Themenosis-Quellcode-Aufhebung anderer Frameworks) und vendor (Komponistenabhängigkeiten).

Während der Code moderne Praktiken (Namespaces, Klassen, umfassende Dokumentation) enthält, verbleiben kleinere veraltete Elemente (z. B. <?php defined('DS') or die('No direct script access.');, Schließung von PHP -Tags).

Die Themencode wird an zwei Stellen verteilt: Routing und Präsentation befinden sich im Thema, während die Anwendungslogik im Plugin -Ordner liegt.

First Look at Themosis, a Framework for WordPress Developers

MVC -Struktur

Die MVC-Struktur ist gut definiert, obwohl die Fragmentierung über zwei übergeordnete Ordner verbessert werden kann. Der routes -Fordner (ähnlich wie Laravel) verwendet eine vergleichbare Syntax. Controller werden von Ansichten getrennt und Modelle werden von Controllern verwendet, wodurch Daten an Ansichten weitergegeben werden. Ein Beispiel aus home.controller.php:

@loop(array('post_type' => 'post', 'posts_per_page' => -1))

    <h1>{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Ansichten Verwenden Sie eine Punktnotation für TRAversal (z. B. pages.home Karten zu app/views/pages/home.scout.php).

Routing mit Parametern

Routing ist einfach. Die Suchseite verwendet beispielsweise direkt die Suchfunktionalität von WordPress:

- map: bookstore.local
      to: /home/vagrant/Code/themosis_example
Nach dem Login kopieren
Dieser Ansatz abstrakt

Erstellen einer benutzerdefinierten Seite

Erstellen wir eine benutzerdefinierte Seite mit einem Controller und einer Ansicht.

fügen Sie eine Route zu
    :
  1. hinzu 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')

        ));
Nach dem Login kopieren
erstellen
    :
  1. pages/test.scout.php
// Search page
Route::is('search', function(){
    return View::make('search', array('search' => $_GET['s']));
});
Nach dem Login kopieren
einen Controller hinzufügen (
    ):
  1. controllers/Test_Controller.php
Dies würde in den meisten Frameworks "Hallo Welt" für
Route::only('page', 'test', 'test@index');
Nach dem Login kopieren
rendern. Da die Themen jedoch auf WordPress abhängt, müssen wir die Seite zum System hinzufügen.

/test

First Look at Themosis, a Framework for WordPress Developers Die Nachricht "Hello World" macht nach dem Nachladen.

First Look at Themosis, a Framework for WordPress Developers Um den Seiteninhalt einzuschließen, müssen wir auf die globale

Variable zugreifen und an die Ansicht weitergeben. Dies zeigt WordPresss globales variables Vertrauen.

$post Ändern des Controllers:

und die Ansicht:
@include('header')

Hello World

@include('footer')
Nach dem Login kopieren

rendert die Seite richtig.
<?php

class Test_Controller{

    public function index(){

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

    }

}
Nach dem Login kopieren

First Look at Themosis, a Framework for WordPress Developers Während die leistungsstarken Wrapper zum Rendern von WordPress -Inhalten Struktur und Klarheit und Verbesserung der Steifigkeit von WordPress.

Schlussfolgerung

Themose bietet eine Laravel-ähnliche Erfahrung für die Entwicklung von WordPress-Plugin. Es führt die dringend benötigte Struktur und Kapselung in die Plugin-Architektur von WordPress ein.

Obwohl noch in den frühen Stadien (Version 0.8), ist sie ein vielversprechendes Projekt. Die Einführung guter Designpraktiken ist für die PHP -Community von entscheidender Bedeutung, und die Themensiose bietet einen wertvollen Beitrag, selbst innerhalb der Grenzen des Kerns von WordPress.

(Der häufig gestellte Fragen wurde aufgrund von Längenbeschränkungen weggelassen, kann jedoch leicht umgezogen und ähnlich wie der Rest des Textes aufgenommen werden.)

Das obige ist der detaillierte Inhalt vonSchauen Sie sich zuerst Themose an, einen Rahmen für WordPress -Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage