詹姆斯481/micro-cms

Micro cms / 静态网站 MVC 框架

v0.1.0 2014-07-14 17:43 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:46:12 UTC


README

这是一个轻量级、易于使用的框架,适用于开发类似 CMS 的项目。它适用于快速原型化基本应用,这些应用可能后来扩展到更大的框架(如 Symfony)。典型的用例是一个在初始范围非常有限的项目,但未来计划开发更大、更复杂的应用。

安装

可以使用 composer 从 james481/micro-cms-standard 包中安装框架以及基本的应用目录结构

$ composer create-project james481/micro-cms-standard /Path/To/Project v0.1.0

MicroCMS 提供以下功能

路由

MicroCMS 路由器实现了一组请求匹配器,按顺序检查以匹配请求

  • symfony 匹配器 - 如果提供了特定环境的路由文件(通常是 app/config/routing_{env}.yml),则该文件中指定的路由(采用通常的 symfony 方式)将首先匹配。可以通过完全限定的类名和操作(例如 \\Namespace\\Pkg\\Class::indexAction)指定到自定义控制器的路由。

  • 模板匹配器 - 应用于应用模板目录(通常是 app/templates)中任何具有 .html 扩展名的 Twig 模板(文件名不以 _ 开头)将自动按名称路由,无论是带有扩展名还是不带扩展名。换句话说,app/templates/foo.html 将通过 /foo/foo.html 的请求来渲染。模板可以嵌套在目录中(例如,/foo/bar 匹配 app/templates/foo/bar.html),并且可以使用 _ 前缀为不想可路由的模板(例如,twig 模板包含或继承等)。

  • 默认匹配器 - 默认匹配器为首页和错误页面提供路由。如果应用模板目录中存在名为 index.html 的文件,它将被渲染为网站首页(以及 /index/index.html)。此外,默认匹配器还将渲染 _404.html_500.html,分别用于找不到内容和应用错误。请注意,_500.html 模板仅在生产环境中使用(其他环境将显示异常 / 错误的堆栈跟踪)。

DI 容器

框架构建了一个 symfony DI 容器,只要自定义控制器实现 ContainerAwareInterface,它就会自动提供给任何自定义控制器。可以通过编辑特定环境的配置文件(通常是 app/config/app_{env}.yml)并指定自定义服务 / 工厂来自定义容器。

Twig 模板

DI 容器包含一个由内核设置的 Twig 渲染器。

日志记录

内核还构建了一个 Monolog 记录器,它将记录到应用日志目录中的特定环境日志文件(通常是 app/logs)。除了框架内部使用外,还可以通过自定义类使用与 PSR-3 兼容的特质(MicroCMS\DependencyInjection\LogAwareTrait)进行方便的日志记录。

关于

该框架当前版本为 0.1.0。它在功能上相当完整且经过测试,但计划在未来版本中进行重大添加。

该框架采用 PSR-2 编码标准和 PSR-4 命名空间标准实现。

文档

框架包含所有源文件的与 PHPDocumentor 兼容的注释。API 文档未包含在此包中,但可以使用标准方式通过 phpdoc 构建

$ cd /Path/To/MicroCMS
$ phpdoc -d ./src -t ./docs

测试

框架包含 PHPunit 测试框架的单元测试,可以通过以下方式运行

$ cd /Path/To/MicroCMS
$ composer install
$ phpunit

待办事项

版本 0.2.0 将包括

  • 对框架行为的更广泛配置以适用于应用程序

  • 基本内容存储以及将其注入到渲染的模板中

作者

James Watts - jamescwatts@gmail.com

许可证

MicroCMS 采用 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件