基于 Laravel 的 WordPress MVC 应用开发框架 —— Themosis Framework

基于 Laravel 的 WordPress MVC 应用开发框架 —— Themosis Framework

基于 Laravel 的 WordPress MVC 应用开发框架 —— Themosis Framework

Themosis Framework 框架是一个企业级的 WordPress MVC 开发框架,该框架使用了 Laravel 的一些组件(主要是 Router、Container、Http、Event、View、File System、Database)来实现面向对象的 WordPress 应用开发,可以帮助我们大幅提高 WordPress 应用开发效率。如果我们需要为 WordPress 添加比较多的自定义功能,比如,在线购买、会员中心、推广返利,CRM 应用等,可以尝试一些这个框架。

Themosis Framework 框架特性简介

我们先来看一下 Themosis 框架官方提供的架构图,从图中可以看出,Themosis 库是整个框架的底层,然后在 Themosis 库 的基础上,把 WordPress 内核、Themosis Framework 框架、WordPress 插件和通过 Composer 安装的第三方包有机的组合在了一起,然后在这个组合的基础上,进行 WordPress 主题开发。这些东西加在一起,就是一个基于 Themosis 框架的 WordPress 应用。

Themosis MVC 框架实现原理

Themosis 框架通过拦截 WordPress 默认页面路由、或者添加自定义路由,把用户请求转发到控制器,然后再结合模型和视图来构建基于 WordPress 主题或插件的应用程序。需要注意的是,如果我们没有通过自定义路由拦截 WordPress 默认的路由,WordPress 默认路由还是按照自己默认的方式查找模版并显示,如果拦截了,WordPress 页面则会按照我们指定的模版显示页面。这个特性兼顾了 WordPress 默认路由和模版,非常方便。我们可以通过下面的代码快速认识一下 Themosis 框架自定义路由的使用方法。

Route::get('users/{name}', function ($name) {
     // 获取用户名为 $name 的用户,$name 变量是从 URL 中获取的
     $user = Users::getByName($name);

    // 使用 account/profile.blade.php 模版文件渲染页面
    return view('account.profile', ['user' => $user]);
});

Route::get('home', function ($post, $query) {
    // 使用 pages/home.blade.php 显示 WordPress 首页
    return view('pages.home', [
        'posts' => $query->get_posts()
    ]);
});

可以自由选择的模版系统

Themosis 框架支持 Laravel 的 Blade 模版引擎和 Twig 模版引擎,我们在开发的时候可以自由选择,如果我们不想使用模版引擎,直接使用纯 PHP 来写模版也是可以的。下面的示例是 Laravel Blade 模版引擎的代码片段,使用方法和在 Laravel 中使用一样。

@extends('layouts.main')

@section('content')
    <h1>账户</h1>
    <p>欢迎 {{ $name }}</p>
    @foreach($posts as $post)
        <h2>{{ $post->post_title }}</h2>
    @endforeach
@endsection

面向对象的 WordPress 功能增强

Themosis 框架可以通我们使用内置的 WordPress 功能增强类,以面向对象的方式来快速设置自定义文章类型,自定义分类法,Metabox,自定义字段,管理页面,设置等等。相对 WordPress 内置的函数,要方便和清晰不少。虽然好用,但是有一定的学习成本,如果不习惯,我们完全可以使用 WordPress 的方式来实现上面的自定义。

// 添加文章类型
$books = PostType::make('books', 'Books', 'Book')->set();

// 添加自定义 Metabox
Metabox::make('Details', $slug)->set([
    Field::text('isbn'),
    Field::collection('gallery')
]);

// 添加自定义分类法
Taxonomy::make('authors', $slug, 'Authors', 'Author')->set();

Packagist 海量第三方库支持

因为可以使用 Composer 来安装 PHP 类库,我们可以添加 Pakagist 中的任何第三方 PHP 库来为我们的应用添加功能支持。如通过下面的命令为框架添加 Mailgun 类。

$ composer require mailgun/mailgun-php

数据库 ORM 支持

Themosis 框架目前虽然集成了 Laravel 的 Database 组件,但是并没有针对 WordPress 数据库添加对应的 Model 支持。因为可以很方便的使用 Composer 把第三方包加入框架中,我们可以使用 Corcel 来为框架添加完善的 Eloquent ORM 支持。

开始使用 Themosis Framework 开发 WordPress 应用

Themosis 官方网站为我们提供了详细的使用文档,我们可以按照官方文档一步一步的开始使用 Themosis 框架开发 WordPress 应用。事实上,截止本文发布为止,我们已经使用这个框架开发了 4 个 WordPress 主题了,确实可以在很大程度上提高 WordPress 应用开发的效率。

本站提供 WordPress 主题定制开发服务

本站长期承接 WordPress 主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 8 年 WordPress 开发经验,如果你想 用 WordPress 开发网站, 请联系 QQ: 470266798,或邮箱: 4626395@gmail.com 咨询。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*