بحار
نحن نبحث عن عمال صيانة جدد!
سمات
- متوافق مع 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
- تحليل صفحات لوا
- التوجيه
- رسم الخرائط الأساسية للكائنات العلائقية
- تصديق
- المعاملات
- يأتي التطبيق مشحونًا بالفعل مع Bootstrap
- تضمين، إعادة توجيه
- الجلسات، ملفات تعريف الارتباط
- وحدة تسجيل الدخول
- نشر سهل (يونيكس فقط) -> بحار ينشئ "اسم التطبيق" /dir/to/app
- توليد النموذج
- Lua عند العميل (ممكن من خلال جهاز افتراضي Lua=>JS منتشر مع التطبيق)
- عناوين URL ودية
- فحص الوظيفة لتصحيح الأخطاء بشكل أفضل => مشابه لتفريغ var
- مخصص 404 صفحة
- العلاقات
- إنشاء النموذج (القراءة من قاعدة البيانات)
- توليد CRUD (القراءة من النموذج)
- السمة والتخطيط (الآن يمكنك الحصول على تخطيطات متعددة داخل السمة. على سبيل المثال، عمود واحد وعمودان)
- التكامل مع Busted للاختبارات الوحدة والوظيفية لتطبيقك
خريطة الطريق
- التكامل مع واجهة برمجة تطبيقات DB API ووحدة DB الخاصة بـ mod_lua
- تحسينات على النموذج ووحدة التحقق من الصحة
يمكن العثور على المزيد حول الدافع لبناء هذا المشروع هنا: http://etiene.net/10/sailor
معلومات شجرة الدليل
- /docs - من المفترض أن يحتوي هذا على وثائق
- /lua-to-js-vms - أجهزة Lua->Javascript الافتراضية المختلفة لاستخدام Lua في المتصفح مع Sailor
- /rockspecs - ملفات Rockspec لتثبيت LuaRocks
- /src - وحدات Lua التي تحتوي على أشياء جميلة من Sailor وأماكن أخرى.
- / بحار - وحدات بحار
- /sailor/blank-app - يمكن نسخ تطبيق الويب Sailor الفارغ ولصقه كقاعدة لتطبيقاتك الخاصة
- /اختبار - تطبيقات لأغراض الاختبار والعرض التوضيحي
البيئات المدعومة
تم اختبار 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 - ملفات التكوين، قم بفتحها وتحريرها.
- / وحدات التحكم - وحدات التحكم التي ستصنعها!
- /الموضوعات - ملفات السمات الافتراضية.
- /models - النماذج التي ستصنعها!
- /pub - الملفات التي يمكن الوصول إليها بشكل عام (مكتبات js، على سبيل المثال)
- / وقت التشغيل - الملفات المؤقتة التي تم إنشاؤها أثناء وقت التشغيل.
- / الاختبارات - اختبارات الوحدة والوظيفة
- /views - هذا هو المكان الذي ستنتقل إليه صفحات Lua الخاصة بك بتنسيق .lp
إنشاء الصفحات
انتقل إلى /controllers وقم بإنشاء وحدة التحكم الأولى الخاصة بك! يجب أن تكون وحدة لوا. سمها ما تريد، مثالنا هو "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
- لوا عند العميل - 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
قائمة البريد والدعم
انضم إلى مجموعة جوجل الخاصة بنا للحصول على قائمة البريد والدعم
إذا كنت تواجه مشكلة في تشغيل Sailor أو إذا كنت تعمل باستخدام مواصفات مختلفة، فيرجى الاتصال حتى نتمكن من تبادل المعلومات ويمكنني تحسين الدليل. شكرًا!