搜索
首页CMS教程WordPress首先查看Themosis,这是WordPress开发人员的框架

themisos:一种现代的WordPress开发方法

>我对WordPress纠结的代码库的鄙视是众所周知的。我建议不要使用它,除非您在技术上熟练。但是,我的批评源于人们对改进的渴望,希望将出现出色的替代方案,并提供更合乎逻辑,更有效的发展过程。 在我看来,任何简化WordPress的尝试都是积极的一步。

>

最近,一个名为Themosis的项目浮出水面,被称为“ WordPress开发人员的框架”。本文探讨了它的病,其用法,并检查了其示例项目 - 书店应用程序。

键突出显示:

Themosis是一个新颖的项目,设计为WordPress开发人员的框架,旨在简化开发并将结构强加于WordPress的混乱插件体系结构。
    与传统框架不同,它是与WordPress集成以增强发展的API。它使开发人员能够使用现代PHP功能(名称空间,类,匿名功能)和作曲家构建WordPress组件。
  • >
  • > themiss的安装依赖于作曲家和WordPress命令行工具。 作曲家创建了一个Interisos项目,自动合并了最新的WordPress版本。 标准的WordPress安装脚本完成了设置。
  • > themis病仍处于早期阶段(待定版1.0版)。尽管年轻,但即使在WordPress核心的限制内,它也表现出了在PHP生态系统中促进更好的设计实践的前景。
  • 理解themisosion

>“框架”一词可能会误导PHP开发人员。 WordPress已经包含许多不必要的组件。框架通常遵守简约的原则和脱钩的组件,并构建了复杂的应用程序,而不是相反。First Look at Themosis, a Framework for WordPress Developers 从传统意义上讲,

主题不是一个框架。这是与WordPress集成以简化开发的API,但不一定会降低其尺寸。 Themosis提供了使用现代PHP创建WordPress组件的API,包括名称空间,类,匿名功能和作曲家支持。

>

从本质上讲,Themosis是一种由MVC驱动的,启发的WordPress插件,用于构建其他插件。它包括其自己的路由器(Laravel风格的路线定义)和模板引擎(SCOUT),类似于Laravel和Phalcon,并增加了WordPress支持。 例如,模板循环:

>利用WordPress API进行数据检索,并且

类是专门为WordPress内容循环设计的。
@loop(array('post_type' => 'post', 'posts_per_page' => -1))

    <h1 id="Loop-title">{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop

安装Loop

> themissis安装涉及作曲家和WordPress命令行工具。 用作曲家自动创建一个Themosis项目,包括最新的WordPress版本;标准WordPress安装脚本最终确定了设置。 请参阅官方安装说明,或者首先对示例项目进行实验(下面详细介绍)。

>

>示例项目:书店应用

>

Themosis提供了一个书店应用程序示例。

测试书店应用

进行测试,您可以改进宅基地。注册一个新网站:

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

    <h1 id="Loop-title">{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop

请记住将bookstore.local添加到主机的/etc/hosts文件中(按照宅基地改进的说明)。

克隆存储库(

),然后访问git clone https://www.php.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_example>的安装过程。 按照说明进行操作。 此设置允许实验没有风险 - 简单地重建VM以恢复任何更改。 http://bookstore.local:8000

First Look at Themosis, a Framework for WordPress Developers 虽然初始外观不是开创性的(任何WordPress网站都可以采用类似的配置),但两个关键观察值脱颖而出:>

设置非常快速,直接。

    的性能非常快,考虑到themisos的额外层访问WordPress API。
  1. 代码考试

书店的代码位于github上:。 由于themisis是一个插件,因此书店的代码位于其插件目录中:>

存在三个主要子文件夹:

(themosis驱动的wordpress逻辑),

(themosis源代码 - 与其他框架相关)和First Look at Themosis, a Framework for WordPress Developers (作曲家依赖关系)。

>

>代码包含现代实践(名称空间,类,综合文档)时,仍然存在较小的过时元素(例如,app,关闭PHP标签)。 src> Themosis代码分布在两个位置:路由和演示文稿位于主题中,而应用程序逻辑则位于插件文件夹中。vendor

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

MVC结构

尽管可以改进两个父文件夹的碎片,但MVC结构的定义很好。

文件夹(类似于Laravel)使用可比的语法。控制器与视图分开,并且控制器使用模型,将数据传递给视图。 routes>的示例:home.controller.php

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

    <h1 id="Loop-title">{{ Loop::title() }}</h1>
    <div>
        {{ Loop::content() }}
    </div>

@endloop
>视图使用dot符号进行遍历(例如,

映射到pages.home>)。app/views/pages/home.scout.php>

参数路由

路由很简单。 例如,搜索页面直接使用WordPress的搜索功能:

- map: bookstore.local
      to: /home/vagrant/Code/themosis_example
这种方法抽象WordPress固有缺陷的搜索功能,促进更容易的替换。

创建一个自定义页面

>让我们使用控制器和视图创建一个自定义页面。

    添加一条路由到
  1. 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')

        ));
    创建
  1. pages/test.scout.php
// Search page
Route::is('search', function(){
    return View::make('search', array('search' => $_GET['s']));
});
    添加一个控制器(
  1. ):controllers/Test_Controller.php
在大多数框架中,这将使“ Hello World”呈现“ Hello World”。但是,由于主题依赖于WordPress,我们必须将页面添加到系统中。
Route::only('page', 'test', 'test@index');

/test

“ Hello World”消息在重新加载后呈现。

> 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')
>正确地渲染页面。

<?php

class Test_Controller{

    public function index(){

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

    }

}

>有些复杂,但呈现WordPress内容的强大包装器提供了结构和清晰度,改善了WordPress的刚性。

First Look at Themosis, a Framework for WordPress Developers

结论

> Themosis为WordPress插件开发提供了类似Laravel的体验。 它将急需的结构和封装引入WordPress的插件体系结构。> >尽管仍处于早期阶段(0.8版),但它是一个有前途的项目。 采用良好的设计实践对PHP社区至关重要,即使在WordPress的核心局限性范围内,Themisos也提供了有价值的贡献。

> (由于长度约束而省略了常见问题部分,但可以轻松解释并与其他文本相似。)

以上是首先查看Themosis,这是WordPress开发人员的框架的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
使用WordPress时的安全考虑是什么?使用WordPress时的安全考虑是什么?Apr 29, 2025 am 12:01 AM

TosecureaWordPresssite,followthesesteps:1)RegularlyupdateWordPresscore,themes,andpluginstopatchvulnerabilities.2)Usestrong,uniquepasswordsandenabletwo-factorauthentication.3)OptformanagedWordPresshostingorsecuresharedhostingwithawebapplicationfirewal

WordPress与其他网站构建者相比如何?WordPress与其他网站构建者相比如何?Apr 28, 2025 am 12:04 AM

WordPressExcelSoverotherWeberteBuilderSduetoItsflexible,可伸缩性,andopen-sourcenature.1)它'saversatilecmswithExtEnsextEnsiveCustomizedOptionsVIATHEMESANDPLUGINS.2)它的alllearbutoffersbutoffersbutoffersbutoffersbutofferspopelyContrololonCemastered.3)

5个WordPress插件,供开发人员在2025年使用5个WordPress插件,供开发人员在2025年使用Apr 27, 2025 am 08:25 AM

2025年网站开发的七个必备WordPress插件 在2025年建立顶级WordPress网站需要速度,响应能力和可扩展性。 实现这种有效的实现通常取决于战略插件的选择。 这篇文章Highlig

您将使用WordPress做什么?您将使用WordPress做什么?Apr 27, 2025 am 12:14 AM

WordPresscanbeusedforvariouspurposesbeyondblogging.1)E-commerce:WithWooCommerce,itcanbecomeafullonlinestore.2)Membershipsites:PluginslikeMemberPressenableexclusivecontentareas.3)Portfoliosites:ThemeslikeAstraallowstunninglayouts.Ensuretomanageplugins

WordPress适合创建投资组合网站吗?WordPress适合创建投资组合网站吗?Apr 26, 2025 am 12:05 AM

是的,wordpressisisexcellentforcortingaportfoliowebsite.1)itoffersnumeroversnumeroverportfolio-spificthemeslike'astra'astra'astra'astra'astra'astra'astra'astra'astra'elementor'Enelementor'enableIntiviveSiveSign,Thoughtemanycanslowthesite.3)

使用WordPress而不是从头开始编码网站的优点是什么?使用WordPress而不是从头开始编码网站的优点是什么?Apr 25, 2025 am 12:16 AM

WordPressisadvantageousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment,2)flexibilityandscalability,3)strongcommunitysupport,4)built-inSEOandmarketingtools,5)cost-effectiveness,and6)regularsecurityupdates.Thesefeaturesallowforquicke

是什么使WordPress成为内容管理系统?是什么使WordPress成为内容管理系统?Apr 24, 2025 pm 05:25 PM

WordPressIsAcmsDuetoItseAsofuse,自定义,USERMANAMECTION,SEO和COMMUNITYSUPPORT.1)ITSIMPLIFIESCONTENTMANGAMEWITHANINTUISIDERFEEFFECE.2)提供extentensiveCustomizationThroughThroughTheMesandPlugins.3)supportrobustuserrolesandplugins.4)supportrobustuserrolesandpermissions.4)增强

wordpress怎么加评论框wordpress怎么加评论框Apr 20, 2025 pm 12:15 PM

在 WordPress 网站上启用评论功能,可以为访客提供参与讨论和分享反馈的平台。为此,请按照以下步骤操作:启用评论:在仪表盘中,导航至“设置”>“讨论”,并选中“允许评论”复选框。创建评论表单:在编辑器中,单击“添加块”并搜索“评论”块,将其添加到内容中。自定义评论表单:通过设置标题、标签、占位符和按钮文本来定制评论块。保存更改:单击“更新”以保存评论框并将其添加到页面或文章中。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),