Yaapi (Your Article Application Programming Interface) 是一個輕量級 PHP 內容管理框架,提供數據庫抽象、分類管理、文章分頁、模板分離等核心 CMS 功能。適合中小型內容型網站快速開發。
/var/www/yaapi/mysql -u root -p < yaapi.sqlarticle.class.php 構造函數中的 DB 參數chmod 755 admin/ cache/ templates/訪問 https://yourdomain.com/yaapi/admin/
| 字段 | 說明 |
|---|---|
| Category | 一級分類(如:新聞、產品、案例) |
| Section ID | 二級分類(可選,如:國內新聞、國際新聞) |
| Title | 文章標題 |
| Author | 作者名 |
| 作者郵箱 | |
| Approved | 審核狀態:只有通過的文章前台可見 |
| Image | 縮略圖/特色圖片 URL |
| Content | 文章正文,支援分頁標記 |
導語內容...
#intro#
第 1 頁內容...
#page#
第 2 頁內容...
#page#
第 3 頁內容...
#page#
以此類推...
前台顯示時自動按 #page# 分割,生成分頁導航。
<?php
require_once 'yaapi/article.class.php';
$yaapi = new Yaapi();
// 獲取分類列表
$categories = $yaapi->getCategories();
// 獲取最新文章 (分類 ID=1, 每頁 10 條)
$articles = $yaapi->getArticles([
'category' => 1,
'limit' => 10,
'page' => isset($_GET['page']) ? (int)$_GET['page'] : 1,
'approved_only' => true
]);
// 獲取單篇文章內容 (含分頁)
$article = $yaapi->getArticle($article_id);
if ($article) {
echo "<h1>{$article['title']}</h1>";
echo "<div class='meta'>作者:{$article['author']} | {$article['pub_date']}</div>";
// 文章分頁輸出
$pages = $yaapi->getArticlePages($article_id);
$current_page = isset($_GET['p']) ? (int)$_GET['p'] : 1;
echo $pages[$current_page - 1]['content'];
// 分頁導航
echo $yaapi->getPageNavigation($article_id, $current_page);
}
Yaapi 採用簡單的 PHP 模板機制:
<!-- templates/article_list.php -->
<?php foreach ($articles as $art): ?>
<article>
<h2><a href="/article.php?id=<?php echo $art['id']; ?>"><?php echo $art['title']; ?></a></h2>
<p><?php echo mb_substr(strip_tags($art['content']), 0, 200); ?>...</p>
</article>
<?php endforeach; ?>
| 優點 | 缺點 |
|---|---|
| 輕量、無框架依賴、易部署 | 功能較基礎,缺乏插件機制 |
| 內建分頁、分類、審核流程 | 模板系統較原始,無繼承/區塊 |
| 源碼可讀性強,易二次開發 | 社區不活躍,文檔較少 |
| 資料庫結構簡單,易遷移 | 無現代安全防護 (CSRF, XSS 過濾需自行加強) |
Yaapi 作為早期 PHP CMS 框架,展示了「內容模型 + 管理後台 + 前台 API」的經典架構。雖然功能較簡陋,但對於理解 CMS 核心邏輯、快速原型開發、輕量項目仍有參考價值。新項目建議考慮 WordPress、Laravel+CMS 包、Strapi 等現代方案。