目录
{{ Loop::title() }}
首页 CMS教程 &#&按 首先查看Themosis,这是WordPress开发人员的框架

首先查看Themosis,这是WordPress开发人员的框架

Feb 19, 2025 am 11:13 AM

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

热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

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何开始WordPress博客:初学者的分步指南 如何开始WordPress博客:初学者的分步指南 Apr 17, 2025 am 08:25 AM

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

如何在父分类的存档页面上显示子分类 如何在父分类的存档页面上显示子分类 Apr 19, 2025 pm 11:54 PM

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

如何在 WordPress 中获取登录用户信息以获得个性化结果 如何在 WordPress 中获取登录用户信息以获得个性化结果 Apr 19, 2025 pm 11:57 PM

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

如何在 WordPress 中按帖子过期日期对帖子进行排序 如何在 WordPress 中按帖子过期日期对帖子进行排序 Apr 19, 2025 pm 11:48 PM

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

对于初学者来说,WordPress容易吗? 对于初学者来说,WordPress容易吗? Apr 03, 2025 am 12:02 AM

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

如何在 WordPress 中显示查询数量和页面加载时间 如何在 WordPress 中显示查询数量和页面加载时间 Apr 19, 2025 pm 11:51 PM

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) 如何使用 IFTTT 自动化 WordPress 和社交媒体(及更多) Apr 18, 2025 am 11:27 AM

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre

See all articles