이 프로젝트를 구축하게 된 동기에 대한 자세한 내용은 여기에서 확인할 수 있습니다: 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 지원 웹 서버와 호환됩니다. 존재합니다.
Linux의 경우 INSTALL_LINUX.md(Ubuntu) 또는 INSTALL_LINUX_ARCH.md(Arch Linux)를 참조하세요.
Windows의 경우 INSTALL_WIN.md를 참조하세요.
Mac의 경우 INSTALL_MAC.md를 참조하세요.
기본 Sailor 앱은 다음과 같은 디렉터리 트리 구조를 갖습니다.
/controllers로 이동하여 첫 번째 컨트롤러를 만드세요! Lua 모듈이어야 합니다. 원하는 대로 이름을 지정하세요. 예를 들면 "site.lua"입니다. 우리는 두 개의 페이지를 제공할 것입니다. 하나는 기본적으로 site.index()를 실행하는 /?r=site를 통해 액세스할 수 있고 다른 하나는 /?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 그룹에 가입하세요.