just-paja/fudjan

此包已被废弃且不再维护。未建议替代包。

Fudjan LMCV 网络框架,包含模块和布局


README

另一个尝试做到开放、轻量级和简单的网络框架。

遗憾的是,我没有时间创建任何可用的文档,只是添加了一些内联的javadoc风格注释。

安装

  1. 如果您还没有,请获取 Composer

  2. 通过 composer 创建项目。包 fudjan-project 是一个简单的包装器,用于下载 composer 依赖项并保持 BASE_DIR 的整洁

    $ composer create-project just-paja/fudjan-project

功能

多级 JSON 配置

您可以在路径 etc/conf.d/{env} 上保留您的配置,使用简单易读的 JSON。在 etc/default/conf.d 上查找默认配置以获取选项列表。Fudjan 读取从 {ROOT}/etc/default/conf.d 开始的所有 .json 文件,通过 {BASE_DIR}/lib/vendor/**/etc/default/conf.d,并最终在 {BASE_DIR}/etc/conf.d/{env} 中结束。因此,您只需通过在 JSON 文件中写入设置即可简单地覆盖设置。

域名配置

您是否使用子域名、虚拟主机或运行多个域名?只需定义识别规则并将它们与您的路由连接即可。您可能希望将此配置保留在 etc/conf.d/global/domains.json

{
	"global":{
		"rules":["^(www\\.)?mydomain.net$", "^(www\\.)?mydomain.net.local$"],
		"init":["www", "godmode"]
	},
	"static":{
		"rules":["static.mydomain.net.net$", "static.mydomain.net.local$"]
	}
}

rules 是匹配 host 标头的正则表达式。键 init 是在页面加载之前运行的脚本列表。脚本来自 etc/init.d

二进制助手

如果您的安装成功,您将在 bin/manage 中找到可执行文件。它包含模块和上下文帮助。不带参数运行它将显示有关配置的一些基本信息。同步或迁移数据库、更新资源和部署项目将像漫步在棉花糖花园中一样。

正则表达式 URL(路由)

这应该是相当标准的功能。路由也位于路径 etc/routes.d/{domain}.json 上的 JSON 中

[
	["^/$", {
		"layout":["abstract/skeleton", "home"],
		"modules":[
			["example/mod_name", {"slot":"top", "mod_opts_example":"test"}, "name"]
		]
	}, "home"]
]

高级资源处理

图像、图标、样式和脚本使用序列号访问。当您更改您的网站样式时,您将更改序列号,并且前端客户端将被迫重新下载整个样式。

当 'dev.debug.frontend' 不是 falsy 时,JavaScript 和 CSS 文件将被压缩。

Bower 集成

Bower 的基本功能已集成到 Fudjan 中。包存储在 share/bower 中。如果您想添加依赖项,请设置配置 assets.dependencies。有关语法,请参阅默认设置。

Fudjan 有 CLI 模块用于列出和更新前端依赖项

$ ./bin/manage assets list

资源包

资源在响应渲染过程中被收集。在发送之前,它们会被连接起来。

$ren->content_for('scripts', 'bower/async/lib/async.js');
$ren->content_for('scripts', 'script/example.js');
$ren->content_for('styles', 'styles/layout.js');

资源标签

您可以标记图片、图标等,并在样式和脚本中创建自己的标签。

.example {
	background-image:<pixmap(layout/example-bg.png)>;
}
console.log('<pixmap(layout/example-bg.png)>');

要求

Fudjan 将运行于 php >= 5.3。数据库连接扩展将是必需的,最可能是 PDO,但也可以使用 Fudjan 制作无数据库的应用程序。

LMCV 是什么?

布局、模型、控制器、视图。您定义当触发 URL 模式时运行哪些模块以及多少个模块。

为什么选择 Fudjan?

这个名字来自 Fuck Django。