themisos:一種現(xiàn)代的WordPress開(kāi)發(fā)方法
>我對(duì)WordPress糾結(jié)的代碼庫(kù)的鄙視是眾所周知的。我建議不要使用它,除非您在技術(shù)上熟練。但是,我的批評(píng)源於人們對(duì)改進(jìn)的渴望,希望將出現(xiàn)出色的替代方案,並提供更合乎邏輯,更有效的發(fā)展過(guò)程。 在我看來(lái),任何簡(jiǎn)化WordPress的嘗試都是積極的一步。
>最近,一個(gè)名為Themosis的項(xiàng)目浮出水面,被稱為“ WordPress開(kāi)發(fā)人員的框架”。本文探討了它的病,其用法,並檢查了其示例項(xiàng)目 - 書(shū)店應(yīng)用程序。
鍵突出顯示:
- 與傳統(tǒng)框架不同,它是與WordPress集成以增強(qiáng)發(fā)展的API。它使開(kāi)發(fā)人員能夠使用現(xiàn)代PHP功能(名稱空間,類,匿名功能)和作曲家構(gòu)建WordPress組件。
- > > themiss的安裝依賴於作曲家和WordPress命令行工具。 作曲家創(chuàng)建了一個(gè)Interisos項(xiàng)目,自動(dòng)合併了最新的WordPress版本。 標(biāo)準(zhǔn)的WordPress安裝腳本完成了設(shè)置。
- > themis病仍處?kù)对缙陔A段(待定版1.0版)。儘管年輕,但即使在WordPress核心的限制內(nèi),它也表現(xiàn)出了在PHP生態(tài)系統(tǒng)中促進(jìn)更好的設(shè)計(jì)實(shí)踐的前景。
- 。
- 理解themisosion
>“框架”一詞可能會(huì)誤導(dǎo)PHP開(kāi)發(fā)人員。 WordPress已經(jīng)包含許多不必要的組件。框架通常遵守簡(jiǎn)約的原則和脫鉤的組件,並構(gòu)建了複雜的應(yīng)用程序,而不是相反。
從傳統(tǒng)意義上講,
>
從本質(zhì)上講,Themosis是一種由MVC驅(qū)動(dòng)的,啟發(fā)的WordPress插件,用於構(gòu)建其他插件。它包括其自己的路由器(Laravel風(fēng)格的路線定義)和模板引擎(SCOUT),類似於Laravel和Phalcon,並增加了WordPress支持。 例如,模板循環(huán):
>利用WordPress API進(jìn)行數(shù)據(jù)檢索,並且
類是專門為WordPress內(nèi)容循環(huán)設(shè)計(jì)的。@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
安裝Loop
> themissis安裝涉及作曲家和WordPress命令行工具。 用作曲家自動(dòng)創(chuàng)建一個(gè)Themosis項(xiàng)目,包括最新的WordPress版本;標(biāo)準(zhǔn)WordPress安裝腳本最終確定了設(shè)置。 請(qǐng)參閱官方安裝說(shuō)明,或者首先對(duì)示例項(xiàng)目進(jìn)行實(shí)驗(yàn)(下面詳細(xì)介紹)。
>>示例項(xiàng)目:書(shū)店應(yīng)用
>Themosis提供了一個(gè)書(shū)店應(yīng)用程序示例。
測(cè)試書(shū)店應(yīng)用
進(jìn)行測(cè)試,您可以改進(jìn)宅基地。註冊(cè)一個(gè)新網(wǎng)站:
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop
請(qǐng)記住將bookstore.local
添加到主機(jī)的/etc/hosts
文件中(按照宅基地改進(jìn)的說(shuō)明)。
),然後訪問(wèn)git clone http://m.miracleart.cn/link/7101e4daaff4511510bbd4e6a0862fb7 themosis_example
>的安裝過(guò)程。 按照說(shuō)明進(jìn)行操作。 此設(shè)置允許實(shí)驗(yàn)沒(méi)有風(fēng)險(xiǎn) - 簡(jiǎn)單地重建VM以恢復(fù)任何更改。
http://bookstore.local:8000
雖然初始外觀不是開(kāi)創(chuàng)性的(任何WordPress網(wǎng)站都可以採(cǎi)用類似的配置),但兩個(gè)關(guān)鍵觀察值脫穎而出:
設(shè)置非常快速,直接。
- 的性能非???,考慮到themisos的額外層訪問(wèn)WordPress API。
- 代碼考試
書(shū)店的代碼位於github上:
(themosis源代碼 - 與其他框架相關(guān))和(作曲家依賴關(guān)係)。
>代碼包含現(xiàn)代實(shí)踐(名稱空間,類,綜合文檔)時(shí),仍然存在較小的過(guò)時(shí)元素(例如,app
,關(guān)閉PHP標(biāo)籤)。
src
> Themosis代碼分佈在兩個(gè)位置:路由和演示文稿位於主題中,而應(yīng)用程序邏輯則位於插件文件夾中。 vendor
<?php defined('DS') or die('No direct script access.');
MVC結(jié)構(gòu)
儘管可以改進(jìn)兩個(gè)父文件夾的碎片,但MVC結(jié)構(gòu)的定義很好。
文件夾(類似於Laravel)使用可比的語(yǔ)法??刂破髋c視圖分開(kāi),並且控制器使用模型,將數(shù)據(jù)傳遞給視圖。 routes
>的示例:home.controller.php
@loop(array('post_type' => 'post', 'posts_per_page' => -1)) <h1>{{ Loop::title() }}</h1> <div> {{ Loop::content() }} </div> @endloop>視圖使用dot符號(hào)進(jìn)行遍歷(例如,
映射到pages.home
>)。 app/views/pages/home.scout.php
>
參數(shù)路由
路由很簡(jiǎn)單。 例如,搜索頁(yè)面直接使用WordPress的搜索功能:
- map: bookstore.local to: /home/vagrant/Code/themosis_example這種方法抽象WordPress固有缺陷的搜索功能,促進(jìn)更容易的替換。
創(chuàng)建一個(gè)自定義頁(yè)面
>讓我們使用控制器和視圖創(chuàng)建一個(gè)自定義頁(yè)面。
- 添加一條路由到
- :
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') ));
- 創(chuàng)建
- :
pages/test.scout.php
// Search page Route::is('search', function(){ return View::make('search', array('search' => $_GET['s'])); });
- 添加一個(gè)控制器(
- ):
controllers/Test_Controller.php
Route::only('page', 'test', 'test@index');
/test
>
要包括頁(yè)面內(nèi)容,我們需要訪問(wèn)全局
變量並將其傳遞給視圖。 這突出了WordPress的全局變量依賴。
$post
@include('header') Hello World @include('footer')>正確地渲染頁(yè)面。
<?php class Test_Controller{ public function index(){ return View::make('pages.test'); } }
>有些複雜,但呈現(xiàn)WordPress內(nèi)容的強(qiáng)大包裝器提供了結(jié)構(gòu)和清晰度,改善了WordPress的剛性。
> Themosis為WordPress插件開(kāi)發(fā)提供了類似Laravel的體驗(yàn)。 它將急需的結(jié)構(gòu)和封裝引入WordPress的插件體系結(jié)構(gòu)。 > >儘管仍處?kù)对缙陔A段(0.8版),但它是一個(gè)有前途的項(xiàng)目。 採(cǎi)用良好的設(shè)計(jì)實(shí)踐對(duì)PHP社區(qū)至關(guān)重要,即使在WordPress的核心局限性範(fàn)圍內(nèi),Themisos也提供了有價(jià)值的貢獻(xiàn)。
> (由於長(zhǎng)度約束而省略了常見(jiàn)問(wèn)題部分,但可以輕鬆解釋並與其他文本相似。)以上是首先查看Themosis,這是WordPress開(kāi)發(fā)人員的框架的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6
視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

使用Git管理WordPress項(xiàng)目時(shí),應(yīng)只將主題、自定義插件和配置文件納入版本控制;設(shè)置.gitignore文件以忽略上傳目錄、緩存和敏感配置;利用webhook或CI工具實(shí)現(xiàn)自動(dòng)部署並註意數(shù)據(jù)庫(kù)處理;採(cǎi)用兩分支策略(main/develop)進(jìn)行協(xié)作開(kāi)發(fā)。這樣做可避免衝突、保障安全,並提升協(xié)作與部署效率。

使用WordPress測(cè)試環(huán)境是為了確保新功能、插件或主題在正式上線前的安全性和兼容性,避免影響真實(shí)網(wǎng)站。搭建測(cè)試環(huán)境的步驟包括:下載安裝本地服務(wù)器軟件(如LocalWP、XAMPP),創(chuàng)建站點(diǎn)、設(shè)置數(shù)據(jù)庫(kù)和管理員賬號(hào),安裝主題和插件進(jìn)行測(cè)試;複製正式網(wǎng)站到測(cè)試環(huán)境的方法是通過(guò)插件導(dǎo)出站點(diǎn)、導(dǎo)入測(cè)試環(huán)境並替換域名;使用時(shí)應(yīng)注意不使用真實(shí)用戶數(shù)據(jù)、定期清理無(wú)用數(shù)據(jù)、備份測(cè)試狀態(tài)、適時(shí)重置環(huán)境,並統(tǒng)一團(tuán)隊(duì)配置以減少差異問(wèn)題。

創(chuàng)建Gutenberg塊的關(guān)鍵在於理解其基本結(jié)構(gòu)並正確連接前後端資源。 1.準(zhǔn)備開(kāi)發(fā)環(huán)境:安裝本地WordPress、Node.js和@wordpress/scripts;2.使用PHP註冊(cè)塊並用JavaScript定義塊的編輯和顯示邏輯;3.通過(guò)npm構(gòu)建JS文件以使更改生效;4.遇到問(wèn)題時(shí)檢查路徑、圖標(biāo)是否正確或使用實(shí)時(shí)監(jiān)聽(tīng)構(gòu)建避免重複手動(dòng)編譯。按照這些步驟,可以逐步實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Gutenberg塊。

在WordPress中,當(dāng)新增自定義文章類型或修改固定鏈接結(jié)構(gòu)後,需手動(dòng)刷新重寫(xiě)規(guī)則,此時(shí)可通過(guò)代碼調(diào)用flush_rewrite_rules()函數(shù)實(shí)現(xiàn)。 1.可在主題或插件激活鉤子中添加該函數(shù)以自動(dòng)刷新;2.僅在必要時(shí)執(zhí)行一次,如添加CPT、分類法或修改鏈接結(jié)構(gòu)後;3.避免頻繁調(diào)用以免影響性能;4.多站點(diǎn)環(huán)境下需視情況為每個(gè)站點(diǎn)單獨(dú)刷新;5.某些託管環(huán)境可能限制規(guī)則保存。此外,訪問(wèn)“設(shè)置>固定鏈接”頁(yè)麵點(diǎn)擊保存也可觸髮刷新,適合非自動(dòng)化場(chǎng)景。

要實(shí)現(xiàn)響應(yīng)式WordPress主題設(shè)計(jì),首先要使用HTML5和移動(dòng)優(yōu)先的Meta標(biāo)籤,在header.php中添加viewport設(shè)置以確保移動(dòng)端正確顯示,並用HTML5結(jié)構(gòu)標(biāo)籤組織佈局;其次,利用CSS媒體查詢實(shí)現(xiàn)不同屏幕寬度下的樣式適配,按移動(dòng)優(yōu)先原則編寫(xiě)樣式,常用斷點(diǎn)包括480px、768px和1024px;第三,彈性處理圖片和佈局,為圖片設(shè)置max-width:100%並使用Flexbox或Grid佈局替代固定寬度;最後,通過(guò)瀏覽器開(kāi)發(fā)者工具和真實(shí)設(shè)備進(jìn)行充分測(cè)試,優(yōu)化加載性能,確保響應(yīng)

tosetupredirectsinwordpressingthe.htaccessfile,locateThEfileInyourSite'sRootDirectorectoryAndDrectRectrulesabovethe#beginWordPresssection.forbasic301redirects,USETHEETHEETERECTREFTATRECTATREDERTREFTATREDERTREFTATRECTRECTATRECTRECTATREDECT301/OLD-PAGEHTTPS:

TOINTEGRATETHIRD-PARTYAPISINTOWORDPRESS,關(guān)注臺(tái)詞:1.SelectAutableabepianDobtainCredentialslikeapikeYsoroAuthtoKensByEnterRegisteringThemSecure.2.ChooseBeteBetB????eteBetB????eteBetB????etebetInpliCityOorcustimplicityOrcustomPliCoseTompliCoseTomploomcoseusionfunctionfunctionfunctibunitiacuciencipuity forfunigation。

UsingsMtpForWordPresseMailSimProvesDeliverabilitialComparedComparedTothEdeDefaultPhpMail()函數(shù).1.smtpauthenticateswithyouremailserver.2.somemomehostsdisablesablephpmail()
