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"}endfunction plus(request, response)return {forward = "./lp/calc/plus.lp"}endfunction 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 thenreturn { forward = "./lp/calc/plus.lp", env = env }end env.answer = env.a + env.b return { forward = "./lp/calc/plus.lp", env = env }end |
近代的なフレームワークと比べると、ずいぶん冗長に感じられますが、今は、こんな状態になってます。
今後は、他のもうちょっと現実的なアプリを作りながら、進めたいです。難しすぎず、サンプルに良さそうな課題を探してることろです。