PLoop是我开发的基于纯Lua的OOP库,含有很多现代语言的特征,例如attribute代码描述。基于PLoop,最近也完成一整套web框架,以及基于Openresty的一组实现。这是一个简单的例子:
require "PLoop.System.Web"
Application "TestWebApp" (function(_ENV)
__Route__ "/test"
__Form__{
name = String,
age = Number,
}
__Json__() function test(context, form, err)
return { Form = form, Error = err }
end
end)
测试的返回结果如
/test?name=ann&age=2n1 => {"Form":{"name":"ann","age":"2n1"},"Error":{"age":"the %s must be number"}}
/test?name=ann&age=21 => {"Form":{"name":"ann","age":21}}
PLoop系统会使用大量的attribute来封装处理,__Route__用于将函数和路由绑定,__Form__提供querystring或form的验证,支持复杂的结构,__Json__说明返回值需要被序列化为json值然后返回给客户端。
有兴趣的话,可以参考文档:
https://github.com/kurapica/PLoop/blob/master/Docs/020.web.md