ホームページ > CMS チュートリアル > &#&プレス > まず、WordPress開発者のフレームワークであるThemosisを見てください

まず、WordPress開発者のフレームワークであるThemosisを見てください

Lisa Kudrow
リリース: 2025-02-19 11:13:15
オリジナル
956 人が閲覧しました

領域:WordPress開発への現代的なアプローチ

WordPressのもつれたコードベースに対する私の軽daはよく知られています。あなたが技術的に熟練していない限り、私はその使用に反対することをお勧めします。しかし、私の批判は改善への欲求に由来しています。これは、優れた選択肢が現れ、より論理的で効率的な開発プロセスを提供することを望んでいます。 WordPressを合理化しようとする試みは、私の見解では、肯定的なステップです。

最近、「WordPress開発者のためのフレームワーク」として請求されたThemosisというプロジェクトが浮上しました。この記事では、テンミーとその使用法を調査し、その例プロジェクト、つまり書店アプリケーションを調べます。

キーハイライト:

themosisは、WordPressの開発者のフレームワークとして設計された新しいプロジェクトであり、WordPressの混oticとしたプラグインアーキテクチャに開発を簡素化し、構造を課すことを目指しています。
    従来のフレームワークとは異なり、脅威はWordPressと統合して開発を強化するAPIとして機能します。開発者は、最新のPHP機能(名前空間、クラス、匿名関数)と作曲家を使用してWordPressコンポーネントを構築できます。
  • 領域のインストールは、作曲家とWordPressコマンドラインツールに依存しています。 Composerは、最新のWordPressバージョンを自動的に組み込んだThemosisプロジェクトを作成します。 標準のWordPressインストールスクリプトがセットアップを完了します。
  • テンミー症はまだ初期段階にあります(バージョン1.0保留中)。その若さにもかかわらず、WordPressのコアの制約内であっても、PHPエコシステム内でより良い設計慣行を促進することが有望です。
  • テンミー症の理解

「フレームワーク」という用語は、PHP開発者にとって誤解を招く可能性があります。 WordPressには、すでに多数の不要なコンポーネントが含まれています。フレームワークは通常、ミニマリストの原則と分離されたコンポーネントを順守し、複雑なアプリケーションを構築します。

領域は、伝統的な意味での枠組みではありません。 WordPressと統合して開発を簡素化するが、必ずしもそのサイズを縮小するとは限らないAPIです。テーマ症は、名前空間、クラス、匿名関数、作曲家のサポートなど、最新のPHPを使用してWordPressコンポーネントを作成するためのAPIを提供します。

本質的に、テンミー症は、他のプラグインを構築するために使用されるMVC駆動のLaravelにインスパイアされたWordPressプラグインです。 LaravelとPhalconに似た独自のルーター(Laravelスタイルのルート定義)とテンプレートエンジン(スカウト)が含まれており、WordPressサポートが追加されています。 たとえば、テンプレートループ:First Look at Themosis, a Framework for WordPress Developers

データ取得にWordPress APIを使用し、

クラスはWordPressコンテンツループ用に特別に設計されています。

インストール

領域のインストールには、作曲家とWordPressコマンドラインツールが含まれます。 Composerとのテーマ症プロジェクトの作成には、最新のWordPressバージョンが自動的に含まれています。標準のWordPressインストールスクリプトがセットアップを完成させます。 公式のインストール手順を参照するか、最初にプロジェクトの例を試してください(以下で詳しく説明してください)。

の例プロジェクト:Bookstoreアプリ

themosisは、書店アプリケーションの例を提供します。

Bookstoreアプリのテスト

それをテストするには、Homesteadが改善されています。新しいサイトを登録してください:

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

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

@endloop
ログイン後にコピー
ログイン後にコピー
ホストのファイルに

を追加することを忘れないでください(Homesteadによると、指示が改善されました)。 bookstore.localリポジトリ(/etc/hosts)をクローンし、

のインストール手順にアクセスします。 指示に従ってください。 このセットアップにより、リスクのない実験が可能になります。VMを再構築して変更を再度再構築します。

git clone https://www.php.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_examplehttp://bookstore.local:8000

最初の外観は画期的ではありませんが(WordPressサイトも同様に構成できます)、2つの重要な観察結果は際立っています。

First Look at Themosis, a Framework for WordPress Developers セットアップは非常に迅速かつ簡単でした。

WordPress APIにアクセスするThemosisの追加レイヤーを考慮すると、

パフォーマンスは驚くほど速かった。

  1. コード試験
  2. 書店のコードはgithubに存在します:
https://www.php.cn/link/7101e4daaff4511511510bbd4e6a0862fb7

。 Themosisはプラグインであるため、Bookstoreのコードはプラグインディレクトリ内にあります。

3つの主要なサブフォルダーが存在します:(脅威駆動のWordPressロジック)、(テンシスソースコード - 他のフレームワークを参照)、および

(作曲家の依存関係)。

コードには最新のプラクティス(名前空間、クラス、包括的なドキュメント)が組み込まれていますが、マイナーな時代遅れの要素は残っています(例:First Look at Themosis, a Framework for WordPress Developers 、PHPタグを閉じる)。

テーマの2つの場所には、テーマにルーティングとプレゼンテーションが存在し、アプリケーションロジックはプラグインフォルダーにあります。

appsrc vendor

mvc構造

<?php defined('DS') or die('No direct script access.');

MVC構造は明確に定義されていますが、2つの親フォルダーにわたる断片化を改善できます。 routesフォルダー(Laravelと同様)は、同等の構文を使用します。コントローラーはビューから分離されており、モデルはコントローラーによって使用され、データをビューに渡します。 home.controller.php

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

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

@endloop
ログイン後にコピー
ログイン後にコピー

ビューは、トラバーサルにドット表記を使用します(例:pages.homeマップへのマップ)。app/views/pages/home.scout.php)。 パラメーターを使用した

ルーティング

ルーティングは簡単です。 たとえば、検索ページでは、WordPressの検索機能を直接使用します。

このアプローチは、WordPressの本質的に欠陥のある検索機能を抽象化し、より簡単な交換を促進します。
- map: bookstore.local
      to: /home/vagrant/Code/themosis_example
ログイン後にコピー

カスタムページの作成

コントローラーとビューを使用してカスタムページを作成しましょう。

ルートを追加します

  1. routes.php
  2. create
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')

        ));
ログイン後にコピー
  1. pages/test.scout.php
  2. コントローラーを追加(
    // Search page
    Route::is('search', function(){
        return View::make('search', array('search' => $_GET['s']));
    });
    ログイン後にコピー
    1. これにより、ほとんどのフレームワークではcontrollers/Test_Controller.phpの「Hello World」がレンダリングされます。ただし、ThemosisはWordPressに依存しているため、システムにページを追加する必要があります。
    Route::only('page', 'test', 'test@index');
    ログイン後にコピー

    「Hello World」メッセージは、リロード後にレンダリングします /test

    First Look at Themosis, a Framework for WordPress Developers ページのコンテンツを含めるには、グローバル

    変数にアクセスしてビューに渡す必要があります。 これは、WordPressのグローバル変数信頼を強調しています コントローラーの変更:

    およびビュー:First Look at Themosis, a Framework for WordPress Developers

    ページを正しくレンダリングします。$post

    @include('header')
    
    Hello World
    
    @include('footer')
    ログイン後にコピー
    やや複雑ですが、WordPressコンテンツをレンダリングするための強力なラッパーは構造と明確さを提供し、WordPressの剛性を改善します。

    結論
    <?php
    
    class Test_Controller{
    
        public function index(){
    
            return View::make('pages.test');
    
        }
    
    }
    ログイン後にコピー

    themosisは、WordPressプラグインの開発にLaravelのような体験を提供します。 WordPressのプラグインアーキテクチャに非常に必要な構造とカプセル化を導入します。

    まだ初期段階(バージョン0.8)ですが、脅威は有望なプロジェクトです。 優れた設計慣行の採用はPHPコミュニティにとって重要であり、WordPressのコアの制限の範囲内であっても、Themosisは貴重な貢献を提供します。 First Look at Themosis, a Framework for WordPress Developers

    (長さの制約のためによくある質問セクションは省略されていますが、テキストの残りの部分と同様に簡単に言い換えて組み込むことができます。)

    以上がまず、WordPress開発者のフレームワークであるThemosisを見てくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート