詹姆斯481 / micro-cms
Micro cms / 静态网站 MVC 框架
Requires
- php: >=5.4
- monolog/monolog: 1.9.*@dev
- symfony/config: 2.5.*@dev
- symfony/dependency-injection: 2.5.*@dev
- symfony/http-foundation: 2.5.*@dev
- symfony/routing: 2.5.*@dev
- symfony/yaml: 2.5.*@dev
- twig/twig: 1.16.*@dev
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
文件