Моряк
МЫ ИЩЕМ НОВЫХ МЕЙТЕЙНЕРОВ!
Функции
- Совместим с Lua 5.1, Lua 5.2 и LuaJIT. (Совместимость 5.3 пока не проверена)
- Настройка Луарокса
- Работает через веб-серверы Apache2 (с mod_lua), NginX (openresty), Mongoose, Lighttpd, Xavante и Lwan.
- Использование систем Windows, Mac или Linux
- Совместимость с MySQL, PostgreSQL, SQLite и другими базами данных, поддерживаемыми библиотекой luasql.
- MVC-структура
- Парсинг страниц Lua
- Маршрутизация
- Базовое объектно-реляционное сопоставление
- Валидация
- Транзакции
- Приложение уже поставляется с Bootstrap.
- Включить, перенаправить
- Сеансы, файлы cookie
- Модуль входа
- Простое развертывание (только для Unix) -> моряк создает «имя приложения» /dir/to/app
- Генерация формы
- Lua на клиенте (возможно через виртуальную машину Lua=>JS, развернутую с приложением)
- Дружественные URL-адреса
- Проверьте функцию для лучшей отладки => аналогично дампу var
- Пользовательские страницы 404
- Отношения
- Генерация модели (чтение из БД)
- Генерация CRUD (чтение из модели)
- Тема и макет (теперь вы можете иметь несколько макетов в теме, например, 1 столбец и 2 столбца)
- Интеграция с Busted для модульных и функциональных тестов вашего приложения.
Дорожная карта
- Интеграция с API БД mod_lua и рефакторинг модуля БД
- Улучшения в форме и модуле проверки
Более подробную информацию о мотивации создания этого проекта можно найти здесь: http://etiene.net/10/sailor.
Информация о дереве каталогов
- /docs — здесь должна быть документация
- /lua-to-js-vms — разные виртуальные машины Lua->Javascript для использования Lua в браузере с Sailor
- /rockspecs — файлы Rockspec для установки LuaRocks.
- /src — модули Lua с интересными вещами из Sailor и других мест.
- /sailor - Модули Сейлор
- /sailor/blank-app — пустое веб-приложение Sailor, которое можно скопировать в качестве основы для ваших собственных приложений.
- /test — приложения для тестирования и демонстрации.
Поддерживаемые среды
Sailor был протестирован под Linux, Mac OS X и Windows и в настоящее время совместим с Apache с mod_lua или mod_pLua, Nginx с ngx_lua, Lwan, Lighttpd с mod_magnet или любым веб-сервером с поддержкой CGI, например Civetweb, Mongoose и Xavante, если CGILua. присутствует.
Установка
Для Linux см. INSTALL_LINUX.md (Ubuntu) или INSTALL_LINUX_ARCH.md (Arch Linux).
Для Windows см. INSTALL_WIN.md.
Для Mac см. INSTALL_MAC.md.
Использование Сейлор
Приложение Sailor по умолчанию будет иметь следующую структуру дерева каталогов:
- /conf — файлы конфигурации, открывайте и редактируйте их.
- /controllers — контроллеры, которые вы сделаете!
- /themes — файлы тем по умолчанию.
- /models - модели, которые вы будете делать!
- /pub — общедоступные файлы (например, js-библиотеки)
- /runtime — временные файлы, созданные во время выполнения.
- /tests — модульные и функциональные тесты
- /views — сюда будут помещаться ваши lua-страницы в .lp.
Создание страниц
Перейдите в /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:
- Шаблоны LP — http://keplerproject.github.io/cgilua/manual.html#templates
- Валуа - https://github.com/sailorproject/valua
- Lua на клиенте — https://github.com/felipedaragon/lua_at_client
- Самогон - http://moonshinejs.org/
- Lua5.1.js - https://github.com/logiceditor-com/lua5.1.js
- Lua.vm.js - https://kripken.github.io/lua.vm.js/lua.vm.js.html
- Звездный свет — https://github.com/paulcuth/starlight
Предложения, вопросы и объятия
Обнимаю! Не ошибки. При обнаружении ошибок заполняйте вопрос! :)
[email protected]
https://twitter.com/etiene_d
Список рассылки и поддержка
Присоединяйтесь к нашей группе Google для получения списка рассылки и поддержки.
Если у вас возникли проблемы с запуском Sailor или если он работает с использованием других спецификаций, свяжитесь с нами, чтобы мы могли обменяться информацией, и я могу улучшить руководство. Спасибо!