james481/micro-cms-standard

微CMS / 静态网站 MVC 框架标准应用

v0.1.0 2014-07-14 19:44 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:49:17 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 将包含:

  • 为应用程序提供更广泛的框架行为配置

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

作者

詹姆斯·沃茨 - jamescwatts@gmail.com

许可

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