thecodingmachine/cms-static-registry

为thecodingmachine/cms-interfaces提供的一个静态注册器(从静态文件加载页面)。

dev-master / 1.0.x-dev 2018-01-04 11:15 UTC

This package is auto-updated.

Last update: 2024-09-06 23:31:20 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Build Status Coverage Status

CMS静态注册器

从你的代码库中的静态文件加载页面/块/主题。

此包可以与CMS接口一起使用来构建一个功能齐全的PSR-7 CMS。

为什么?

大多数CMS都将HTML页面的内容存储在数据库中。虽然这样做有许多优点,但也存在一些缺点

此包是一个“文件存储”。它建议将文件、块、主题等存储到静态文件中。

文件相对于数据库有许多优点

  • 它们可以提交到你的代码仓库
  • 因此,很容易从测试环境迁移到生产环境(内容是代码的一部分)
  • 也可以很容易地跟踪历史记录(使用你喜欢的VCS如GIT)
  • 你可以很容易地在某些内容上团队合作,并使用VCS的分支和合并功能来管理内容

当然,这并非万能药。使用数据库来存储内容在很多情况下是有意义的。但对于主要由技术团队管理的内容,将内容存储在文件中而不是数据库中则是一种清新的解决方案。

目录结构

你的网站通常存储在你的项目目录中。

默认建议的目录结构是

  • cms_root
    • pages
      • a_page.html
      • another_page.md
    • blocks
      • a_block.html
      • another_block.md
    • themes
      • my_theme
        • index.twig
        • config.yml
        • css/
        • js/
        • ...
    • sub_themes
      • a_subtheme.yml
      • another_subtheme.yml

页面

页面就是...嗯...它是你的网站的一个页面!页面可以是

  • HTML(如果扩展名是.html
  • Markdown(如果扩展名是.md

页面带有YAML元数据

以下是一个示例页面

---
url: hello/world
website : example.com
lang : fr
title : foo
theme : foo_theme
meta_title : bar
meta_description : baz
menu : menu 1 / menu 2 / menu 3
menu_order : 1
---

<h1>Hello world!</h1>

YAML元数据必须由---包围。

YAML元数据的参数

TODO: 继续文档