thecodingmachine / cms-static-registry
为thecodingmachine/cms-interfaces提供的一个静态注册器(从静态文件加载页面)。
dev-master / 1.0.x-dev
2018-01-04 11:15 UTC
Requires
- php: >=7.1
- mnapoli/front-yaml: ^1.5
- psr/simple-cache: ^1
- symfony/finder: ^3.3 || ^4
- thecodingmachine/cms-interfaces: ^1
- thecodingmachine/cms-utils: ^1
- thecodingmachine/funky: ^1
Requires (Dev)
- mnapoli/simplex: ^0.4.1
- phpunit/phpunit: ^6.2
- satooshi/php-coveralls: ^1.0
- symfony/cache: ^3.3
- thecodingmachine/phpstan-strict-rules: ^0.9
This package is auto-updated.
Last update: 2024-09-06 23:31:20 UTC
README
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/
- ...
- my_theme
- sub_themes
- a_subtheme.yml
- another_subtheme.yml
- pages
页面
页面就是...嗯...它是你的网站的一个页面!页面可以是
- 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: 继续文档