LuaTinyCGI サンプル 0.0.1-alpha リリースのお知らせ
2010/06/12
2011/02/20
LuaTinyCGIは、Luaで伝統的なCGIアプリケーションを書くためのフレームワークです。
http://sourceforge.jp/projects/luatinycgi/
LuaTinyCGI サンプル 0.0.1-alpha をリリースします。これが初めてのリリースです。ドキュメント類は、完全に未整備です。
かなり前に、会社内のWeb稟議システムをLuaで作成しましたが、その時のベース部分をフレームワークとして整備して公開したいと思ってます。まず、いくつかサンプルを作成する中で、フレームワーク部分を整えていきたいと思ってるので、LuaTinyCGI サンプルを細々とリリースしていくつもりです。
特徴
- apacheにCGIの設定をするだけで動くような、伝統的なCGIアプリケーションを、Luaで作成するために利用できるフレームワークです。
- CGILuaというフレームワークのコードを利用してます。
- 現状、view側の機能のみです。要するに、struts1の担当範囲と同じです。
- DBアクセスに関するサポートクラスも提供予定です。(SQL大好きな感じのものになります)
サンプル
足し算ができるようになりました。
アクションのコードは以下のような感じです。
module(..., package.seeall) function index(request, response) return {forward = "./lp/calc/index.lp"} end function plus(request, response) return {forward = "./lp/calc/plus.lp"} end function plus_submit(request, response) local env = { a = request.QUERY.a or 0, b = request.QUERY.b or 0 } require "validate" env.errors = validate.validate { ['A'] = { [validate.required] = env.a, [validate.num] = env.a, }, ['B'] = { [validate.required] = env.b, [validate.num] = env.b, }, } if #env.errors > 0 then return { forward = "./lp/calc/plus.lp", env = env } end env.answer = env.a + env.b return { forward = "./lp/calc/plus.lp", env = env } end |
近代的なフレームワークと比べると、ずいぶん冗長に感じられますが、今は、こんな状態になってます。
今後は、他のもうちょっと現実的なアプリを作りながら、進めたいです。難しすぎず、サンプルに良さそうな課題を探してることろです。