このプロジェクトを構築する動機について詳しくは、こちらをご覧ください: http://etiene.net/10/sailor
Sailor は Linux、Mac OS X、および Windows でテストされており、現在、mod_lua または mod_pLua を備えた Apache、ngx_lua を備えた Nginx、Lwan、mod_magnet を備えた Lighttpd、または CGILua の場合は Civetweb、Mongoose、Xavante などの CGI 対応 Web サーバーと互換性があります。が存在します。
Linux の場合は、INSTALL_LINUX.md (Ubuntu) または INSTALL_LINUX_ARCH.md (Arch Linux) を参照してください。
Windows の場合は、INSTALL_WIN.md を参照してください。
Mac の場合は、INSTALL_MAC.md を参照してください。
デフォルトの Sailor アプリは次のディレクトリ ツリー構造になります。
/controllers に移動して、最初のコントローラーを作成します。それは lua モジュールである必要があります。任意の名前を付けます。この例では「site.lua」です。 2 つのページを提供します。1 つはデフォルトで site.index() を実行する /?r=site 経由でアクセスでき、もう 1 つは /?r=site/notindex 経由でアクセスできます。
local site = {}
local model = require " sailor.model "
function site . index ( page )
local foo = ' Hello world '
local User = model ( " user " )
local u = User : new ()
u . username = " etiene "
u . password = " a_password "
local valid , err = u : validate () -- validate() will check if your attributes follow the rules!
if not valid then
foo = " Boohoo :( "
end
-- Warning: this is a tech preview and some methods of model class do not avoid SQL injections yet.
page : render ( ' index ' ,{ foo = foo , name = u . username }) -- This will render /views/site/index.lp and pass the variables 'foo' and 'name'
end
function site . notindex ( page )
page : write ( ' <b>Hey you!</b> ' )
end
return site
/views に移動し、コントローラー名と一致する「site」という名前のディレクトリを作成し、最初のページを作成します。この例は、index.lp です。
< ?=foo? >
< p >
Hi, < ?=name? >
</ p >
HTML および Lua ページでできることの詳細については、http://keplerproject.github.io/cgilua/manual.html#templates を参照してください。
その他の例については、テスト コントローラー (/controllers/test.lua)、テスト ビュー (/views/test/*)、およびユーザー モデル (/models/user.lua) を確認できます。
http://sailorproject.org/?r=docs
貢献は大歓迎です!プル リクエストを作成するだけです :) リポジトリの残りのコード スタイルに従うようにしてください。
Sailor 用の拡張機能を作成して共有したい場合は、Web サイトに追加できるようにご連絡ください。
このリポジトリには、次のサードパーティの MIT ライセンス コードが含まれています。
ハグ!バグではありません。バグについては、問題を記入してください。 :)
https://twitter.com/etiene_d
メール リストとサポートについては Google グループに参加してください