跳至內容

ProcessWire

出自Taiwan Tongues 繁中維基
這是此頁批准,以及是最近的修訂。

ProcessWire 是一套以 PHP 程式語言編寫的自由及開源內容管理系統 (CMS)、內容管理框架 (CMF) 及 Web 應用程式框架 (WAF)。它以 Mozilla 公眾授權條款 2.0 進行散佈。ProcessWire 以 API 為核心建構,其用法及命名慣例類似於 JavaScript 框架 jQuery。此 API 的既定目標,是為網站中的頁面提供如 jQuery 為 DOM 所提供的存取性與控制程度。內容可透過 API 或網頁版的管理控制台進行管理。ProcessWire 主要用於開發網站、Web 應用程式、服務、內容摘要及相關應用程式。

功能

  • jQuery 風格的 API,附有全面的文件說明
  • 圖形化網頁安裝程式
  • 所有欄位皆為自訂欄位,並已建立索引以供 API 中的搜尋操作使用
  • 可由其他 PHP 應用程式或命令列腳本引導啟動
  • 互動式及 API 式的圖片操作功能
  • 拖放式樹狀頁面列表
  • 拖放式檔案與圖片上傳及編輯功能
  • 支援較大規模 (10 萬頁以上) 的安裝
  • 使用字串式選擇器進行 API 呼叫
  • 角色型存取控制系統
  • 核心開發著重於安全性
  • 標記語言無關的輸出,將所有輸出工作交由開發人員處理
  • 範本檔案以 PHP 為基礎,預設不使用任何範本引擎
  • 完整頁面或個別部分的輸出快取
  • 多語言支援,包含多語言文字欄位及 URL
  • 模組化外掛架構及可用的第三方模組
  • 欄位與輸入類型本身即為外掛模組
  • 掛鉤系統 (Hook system) 讓大多數核心函式都能被掛鉤及修改
  • 欄位及欄位群組可使用內建的 Repeater 欄位類型進行重複
  • 使用 CKEditor 支援 RTF 文字編輯

目標對象

在網站或應用程式的開發前與開發期間,ProcessWire 的目標對象主要為網站開發人員與網頁設計師。在這個群體中,ProcessWire 同時被當作開發工具與內容管理系統使用。

開發完成後,目標對象轉變為管理網站與應用程式內容的人員,他們通常不是網頁設計師或開發人員。這個群體主要將 ProcessWire 作為內容管理系統來管理內容。

歷史

ProcessWire 自 2003 年起便持續積極開發。從 2003 年到 2007 年,它以 Dictator CMS 的名稱進行開發。從 2007 年到 2010 年,它以 ProcessWire 1.x 的形式開發。ProcessWire 於 2010 年成為一個開源社群專案,目前則以 ProcessWire 2.x 及 3.x 的形式進行開發。

自首次開源發布以來,ProcessWire 已有 8 次重大版本更新,以及超過 100 次的次要版本更新。2016 年 9 月發布的 3.0 版是第二次主要版本更新。

翻譯與社群

ProcessWire 擁有活躍的全球終端使用者及開發者社群。這些社群已將 ProcessWire 從英文翻譯成他們的母語,包括:中文、克羅埃西亞文、捷克文、荷蘭文、法文、德文、希臘文、希伯來文、匈牙利文、義大利文、日文、葡萄牙文、俄文、斯洛伐克文、西班牙文、瑞典文、土耳其文、烏克蘭文及越南文。ProcessWire 社群的核心樞紐位於開發者支援論壇。

獎項與出版物

2016 年 11 月,ProcessWire 獲頒 CMS Critic 的「最佳小型企業內容管理系統獎」。

2016 年 7 月,Smashing Magazine 發表了《ProcessWire 新手指南》。

自 2016 年 1 月起,Envato Tuts+ 已發表數篇關於 ProcessWire 的文章與教學。

2015 年 1 月,ProcessWire 獲頒 CMS Critic 的「最佳免費 PHP 內容管理系統獎」。

2014 年 12 月,PHP Architect 發表了《ProcessWire:靈活性、強大功能與十足的純粹樂趣》。

2012 年 12 月,ProcessWire 獲頒 CMS Critic 的「最佳免費內容管理系統獎」。

架構

ProcessWire 圍繞著一個頁面內容樹(相對於儲存桶系統)建構。每個頁面的 URL 或路徑總是反映其在階層結構中的位置。在 API 中也使用同樣的路徑來參考該頁面。因此,路徑與內部樹狀階層的這種連結,定義了 ProcessWire 的架構。除了內容樹所隱含的父子關係外,ProcessWire 還支援樹中頁面之間的一對一和一對多的關聯式參考。

範本架構

ProcessWire 中的範本是一種內容類型,它包含一或多個自訂欄位,代表該內容類型的定義。ProcessWire 中的每個頁面都被指派給一個範本,該範本即代表此頁面的類型。一個範本通常由多個頁面共用。範本也定義了存取控制、快取以及使用該範本的頁面所共用的其他設定。

範本可選擇性地關聯一個 PHP 檔案,稱為範本檔案 (template-file)。每當存取使用該範本的頁面 URL 時,此檔案就會被執行。因此,範本檔案通常用於輸出目的。範本檔案會被提供數個 API 變數,其中最著名的是 `$page` API 變數,它包含了當前正在檢視頁面的所有欄位與內容。

根據應用程式的不同,範本檔案可服務於多種情境。ProcessWire 的預設網站設定檔主要使用範本檔案來輸出直接和動態產生的 HTML 標記。範本檔案也可用作模型 (model) 與獨立視圖 (view) 之間的中介控制器。由於範本檔案是標準的 PHP 檔案,它們能夠在適當時呼叫其他 Web 服務或 PHP 應用程式,而無需額外的解析層。

欄位架構

ProcessWire 中的所有欄位都是由使用者定義的自訂欄位。一個指定的欄位可以被指派給多個範本,而這些範本又為使用該範本的每個頁面保存著獨立的內容區塊。每個欄位都有一個類型,稱為「欄位類型 (fieldtype)」,這是一種外掛模組。ProcessWire 包含了數種欄位類型模組,包括支援文字、數字、檔案、圖片、頁面參考、URL、電子郵件地址、日期及留言等。額外的欄位類型模組則以第三方模組的形式安裝。

散佈與需求

ProcessWire 的原始碼託管於 GitHub,並透過 Softaculous、Bitnami 及 Composer/Packagist 進行散佈。

ProcessWire 執行於許多主機託管服務商與網站開發環境所使用的 AMP (Apache、MySQL 或 MariaDB、PHP) 平台。ProcessWire 需要 PHP 5.3.8 或更新版本,以及 MySQL 或 MariaDB 5.0.15 或更新版本。

參考資料

外部連結

Category:PHP 框架 Category:免費內容管理系統 Category:以 PHP 編寫的自由軟體 Category:跨平台自由軟體 Category:使用 Mozilla 公眾授權條款的軟體