有關構建此項目的動機的更多信息,請訪問:http://etiene.net/10/sailor
Sailor 已在Linux、Mac OS X 和Windows 下進行了測試,目前與帶有mod_lua 或mod_pLua 的Apache、帶有ngx_lua 的Nginx、帶有mod_magnet 的Lwan、Lighttpd 或任何支援CGI 的Web 伺服器相容,如Civetweb、 Mongoose 和Xavante(如果是CGILua)存在。
有關 Linux,請參閱 INSTALL_LINUX.md (Ubuntu) 或 INSTALL_LINUX_ARCH.md (Arch Linux)
對於 Windows,請參閱 INSTALL_WIN.md
對於 Mac,請參閱 INSTALL_MAC.md
預設的 Sailor 應用程式將具有以下目錄樹結構:
前往 /controllers 並創建您的第一個控制器!它應該是一個lua模組。隨意命名,我們的範例是“site.lua”。我們將提供兩個頁面,一個可透過 /?r=site 訪問,預設將運行 site.index(),另一個可透過 /?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 製作了擴展並希望分享,請與我們聯繫,以便我可以將其添加到網站上。
此儲存庫包含以下第三方 MIT 許可代碼:
擁抱!不是蟲子。對於錯誤,請填寫問題! :)
https://twitter.com/etiene_d
加入我們的 Google 群組以獲得郵件列表和支持