tag:github.com,2008:https://github.com/idevz/vanilla/releases
Release notes from vanilla
2017-02-09T16:00:17Z
tag:github.com,2008:Repository/40606693/V0.1.0-rc6.2
2017-02-11T01:16:05Z
V0.1.0-rc6.2
<h4>Features add</h4>
<ul>
<li>Add Vanilla page_cache as an proxycache or fastcgicache similar caching for high performance</li>
<li>Add sysconf for convenience configuration such as sys resource like MC, DB etc.</li>
<li>Update resty-template to the orgin version</li>
<li>Add Vanilla cache libs like <code>vanilla.v.libs.cache</code>,<code>vanilla.v.cache.mc</code>,<code>vanilla.v.cache.lru</code> etc.</li>
<li>Add the <a href="https://idevz.gitbooks.io/vanilla-zh/content/quick_learning/hello_world.html" rel="nofollow">Chinese Docs</a> for Vanilla</li>
</ul>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc6.1
2016-05-06T09:22:00Z
V0.1.0-rc6.1
<p>New Features</p>
<ul>
<li>A sequence of lib Loader(like LoadLibrary,LoadController,LoadModel,LoadPlugin,LoadApplication,LoadApp,LoadV) instead of require for Multi App.</li>
<li>Add framework/init.lua and framework/registry.lua As Vanilla base lib</li>
<li>Save ngx.var* to VANILLA_REGISTRY for performance improve.</li>
<li>Add Class function for good OO practice.</li>
<li>Update controllers for OO design.</li>
</ul>
<p>1.install vanilla 0.1.--rc6.0 is same to rc5.</p>
<p>2.Loaders useage.</p>
<div class="highlight highlight-source-lua notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-- LoadLibrary to load application's Library.
LoadLibrary('aa') -- ~/data/vanilla/ok/application/library/aa.lua
-- LoadController to load application's Controller.
LoadController('index') -- ~/data/vanilla/ok/application/controllers/index.lua
-- LoadModel to load application's Model.
LoadModel('service.user') -- ~/data/vanilla/ok/application/models/service/user.lua
-- LoadPlugin to load application's Plugin.
-- LoadApplication to load application's Application dir.
LoadApplication('controller.index') -- ~/data/vanilla/ok/application/controllers/index.lua
-- LoadApp to load libs from Application root.
LoadApp 'application.bootstrap' -- ~/data/vanilla/ok/application/bootstrap.lua
-- LoadV to load Vanilla FrameWork libs.
LoadV 'vanilla.v.error' -- ~/data/vanilla/framework/0_1_0_rc6/vanilla/v/error.lua"><pre><span class="pl-c"><span class="pl-c">--</span> LoadLibrary to load application's Library.</span>
<span class="pl-c1">LoadLibrary</span>(<span class="pl-s"><span class="pl-pds">'</span>aa<span class="pl-pds">'</span></span>) <span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/library/aa.lua</span>
<span class="pl-c"><span class="pl-c">--</span> LoadController to load application's Controller.</span>
<span class="pl-c1">LoadController</span>(<span class="pl-s"><span class="pl-pds">'</span>index<span class="pl-pds">'</span></span>) <span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/controllers/index.lua</span>
<span class="pl-c"><span class="pl-c">--</span> LoadModel to load application's Model.</span>
<span class="pl-c1">LoadModel</span>(<span class="pl-s"><span class="pl-pds">'</span>service.user<span class="pl-pds">'</span></span>) <span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/models/service/user.lua</span>
<span class="pl-c"><span class="pl-c">--</span> LoadPlugin to load application's Plugin.</span>
<span class="pl-c"><span class="pl-c">--</span> LoadApplication to load application's Application dir.</span>
<span class="pl-c1">LoadApplication</span>(<span class="pl-s"><span class="pl-pds">'</span>controller.index<span class="pl-pds">'</span></span>) <span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/controllers/index.lua</span>
<span class="pl-c"><span class="pl-c">--</span> LoadApp to load libs from Application root.</span>
<span class="pl-c1">LoadApp</span> <span class="pl-s"><span class="pl-pds">'</span>application.bootstrap<span class="pl-pds">' </span></span><span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/bootstrap.lua</span>
<span class="pl-c"><span class="pl-c">--</span> LoadV to load Vanilla FrameWork libs.</span>
<span class="pl-c1">LoadV</span> <span class="pl-s"><span class="pl-pds">'</span>vanilla.v.error<span class="pl-pds">' </span></span><span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/framework/0_1_0_rc6/vanilla/v/error.lua</span></pre></div>
<p>3.OO practice</p>
<div class="highlight highlight-source-lua notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="-- ~/data/vanilla/ok/application/library/bb.lua
local LibBb = Class("bb")
function LibBb:idevzDo(params)
local params = params or { lib_bb = 'idevzDo LibBb'}
return params
end
function LibBb:__construct( data )
print_r('===============init bbb=========')
self.lib = 'LibBb---------------xxx' .. data.info
-- self.a = 'ppp'
end
function LibBb:idevzDobb(params)
local params = params or { lib_bb = 'idevzDo idevzDobb'}
return params
end
return LibBb
-- ~/data/vanilla/ok/application/library/aa.lua
local LibAa = Class("aa", LoadLibrary('bb'))
function LibAa:idevzDo(params)
local params = params or { lib_aa = 'idevzDo LibAa'}
return params
end
function LibAa:__construct( data )
print_r('===============init==aaa=======' .. data.info)
-- self.parent:init()
self.lib = 'LibAa----------------------------aaaa'
end
return LibAa
-- ~/data/vanilla/ok/application/controllers/index.lua
local IndexController = Class('controllers.index')
local aa = LoadLibrary('aa')
function IndexController:__construct()
self.aa = aa({info='ppppp'})
local get = self:getRequest():getParams()
self.d = '===============index===============' .. get.act
end
function IndexController:index()
-- self.parent:fff()
do return user_service:get()
.. sprint_r(aa:idevzDobb())
.. sprint_r(self.aa:idevzDobb())
-- .. sprint_r(self.parent.aaa)
.. Registry['APP_NAME']
.. self.d
end
local view = self:getView()
local p = {}
p['vanilla'] = 'Welcome To Vanilla...' .. service:get()
p['zhoujing'] = 'Power by Openresty'
view:assign(p)
return view:display()
end
return IndexController"><pre><span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/library/bb.lua</span>
<span class="pl-k">local</span> <span class="pl-smi">LibBb</span> <span class="pl-k">=</span> <span class="pl-c1">Class</span>(<span class="pl-s"><span class="pl-pds">"</span>bb<span class="pl-pds">"</span></span>)
<span class="pl-k">function</span> <span class="pl-en">LibBb</span>:<span class="pl-en">idevzDo</span>(<span class="pl-smi">params</span>)
<span class="pl-k">local</span> <span class="pl-smi">params</span> <span class="pl-k">=</span> <span class="pl-smi">params</span> <span class="pl-k">or</span> { <span class="pl-smi">lib_bb</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>idevzDo LibBb<span class="pl-pds">'</span></span>}
<span class="pl-k">return</span> <span class="pl-smi">params</span>
<span class="pl-k">end</span>
<span class="pl-k">function</span> <span class="pl-en">LibBb</span>:<span class="pl-en">__construct</span>( <span class="pl-smi">data</span> )
<span class="pl-c1">print_r</span>(<span class="pl-s"><span class="pl-pds">'</span>===============init bbb=========<span class="pl-pds">'</span></span>)
<span class="pl-c1">self</span>.<span class="pl-e">lib</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>LibBb---------------xxx<span class="pl-pds">' </span></span><span class="pl-k">..</span> <span class="pl-smi">data</span>.<span class="pl-e">info</span>
<span class="pl-c"><span class="pl-c">--</span> self.a = 'ppp'</span>
<span class="pl-k">end</span>
<span class="pl-k">function</span> <span class="pl-en">LibBb</span>:<span class="pl-en">idevzDobb</span>(<span class="pl-smi">params</span>)
<span class="pl-k">local</span> <span class="pl-smi">params</span> <span class="pl-k">=</span> <span class="pl-smi">params</span> <span class="pl-k">or</span> { <span class="pl-smi">lib_bb</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>idevzDo idevzDobb<span class="pl-pds">'</span></span>}
<span class="pl-k">return</span> <span class="pl-smi">params</span>
<span class="pl-k">end</span>
<span class="pl-k">return</span> <span class="pl-smi">LibBb</span>
<span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/library/aa.lua</span>
<span class="pl-k">local</span> <span class="pl-smi">LibAa</span> <span class="pl-k">=</span> <span class="pl-c1">Class</span>(<span class="pl-s"><span class="pl-pds">"</span>aa<span class="pl-pds">"</span></span>, <span class="pl-c1">LoadLibrary</span>(<span class="pl-s"><span class="pl-pds">'</span>bb<span class="pl-pds">'</span></span>))
<span class="pl-k">function</span> <span class="pl-en">LibAa</span>:<span class="pl-en">idevzDo</span>(<span class="pl-smi">params</span>)
<span class="pl-k">local</span> <span class="pl-smi">params</span> <span class="pl-k">=</span> <span class="pl-smi">params</span> <span class="pl-k">or</span> { <span class="pl-smi">lib_aa</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>idevzDo LibAa<span class="pl-pds">'</span></span>}
<span class="pl-k">return</span> <span class="pl-smi">params</span>
<span class="pl-k">end</span>
<span class="pl-k">function</span> <span class="pl-en">LibAa</span>:<span class="pl-en">__construct</span>( <span class="pl-smi">data</span> )
<span class="pl-c1">print_r</span>(<span class="pl-s"><span class="pl-pds">'</span>===============init==aaa=======<span class="pl-pds">' </span></span><span class="pl-k">..</span> <span class="pl-smi">data</span>.<span class="pl-e">info</span>)
<span class="pl-c"><span class="pl-c">--</span> self.parent:init()</span>
<span class="pl-c1">self</span>.<span class="pl-e">lib</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>LibAa----------------------------aaaa<span class="pl-pds">'</span></span>
<span class="pl-k">end</span>
<span class="pl-k">return</span> <span class="pl-smi">LibAa</span>
<span class="pl-c"><span class="pl-c">--</span> ~/data/vanilla/ok/application/controllers/index.lua</span>
<span class="pl-k">local</span> <span class="pl-smi">IndexController</span> <span class="pl-k">=</span> <span class="pl-c1">Class</span>(<span class="pl-s"><span class="pl-pds">'</span>controllers.index<span class="pl-pds">'</span></span>)
<span class="pl-k">local</span> <span class="pl-smi">aa</span> <span class="pl-k">=</span> <span class="pl-c1">LoadLibrary</span>(<span class="pl-s"><span class="pl-pds">'</span>aa<span class="pl-pds">'</span></span>)
<span class="pl-k">function</span> <span class="pl-en">IndexController</span>:<span class="pl-en">__construct</span>()
<span class="pl-c1">self</span>.<span class="pl-e">aa</span> <span class="pl-k">=</span> <span class="pl-c1">aa</span>({<span class="pl-smi">info</span><span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">'</span>ppppp<span class="pl-pds">'</span></span>})
<span class="pl-k">local</span> <span class="pl-smi">get</span> <span class="pl-k">=</span> <span class="pl-c1">self</span>:<span class="pl-c1">getRequest</span>():<span class="pl-c1">getParams</span>()
<span class="pl-c1">self</span>.<span class="pl-e">d</span> <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>===============index===============<span class="pl-pds">' </span></span><span class="pl-k">..</span> <span class="pl-smi">get</span>.<span class="pl-e">act</span>
<span class="pl-k">end</span>
<span class="pl-k">function</span> <span class="pl-en">IndexController</span>:<span class="pl-en">index</span>()
<span class="pl-c"><span class="pl-c">--</span> self.parent:fff()</span>
<span class="pl-k">do</span> <span class="pl-k">return</span> <span class="pl-en">user_service</span>:<span class="pl-c1">get</span>()
<span class="pl-k">..</span> <span class="pl-c1">sprint_r</span>(<span class="pl-en">aa</span>:<span class="pl-c1">idevzDobb</span>())
<span class="pl-k">..</span> <span class="pl-c1">sprint_r</span>(<span class="pl-c1">self</span>.<span class="pl-en">aa</span>:<span class="pl-c1">idevzDobb</span>())
<span class="pl-c"><span class="pl-c">--</span> .. sprint_r(self.parent.aaa) </span>
<span class="pl-k">..</span> <span class="pl-smi">Registry</span>[<span class="pl-s"><span class="pl-pds">'</span>APP_NAME<span class="pl-pds">'</span></span>]
<span class="pl-k">..</span> <span class="pl-c1">self</span>.<span class="pl-e">d</span>
<span class="pl-k">end</span>
<span class="pl-k">local</span> <span class="pl-smi">view</span> <span class="pl-k">=</span> <span class="pl-c1">self</span>:<span class="pl-c1">getView</span>()
<span class="pl-k">local</span> <span class="pl-smi">p</span> <span class="pl-k">=</span> {}
<span class="pl-smi">p</span>[<span class="pl-s"><span class="pl-pds">'</span>vanilla<span class="pl-pds">'</span></span>] <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>Welcome To Vanilla...<span class="pl-pds">' </span></span><span class="pl-k">..</span> <span class="pl-en">service</span>:<span class="pl-c1">get</span>()
<span class="pl-smi">p</span>[<span class="pl-s"><span class="pl-pds">'</span>zhoujing<span class="pl-pds">'</span></span>] <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">'</span>Power by Openresty<span class="pl-pds">'</span></span>
<span class="pl-en">view</span>:<span class="pl-c1">assign</span>(<span class="pl-smi">p</span>)
<span class="pl-k">return</span> <span class="pl-en">view</span>:<span class="pl-c1">display</span>()
<span class="pl-k">end</span>
<span class="pl-k">return</span> <span class="pl-smi">IndexController</span></pre></div>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc6.0
2016-05-06T06:59:49Z
V0.1.0-rc6.0
<p>update skeleton</p>
idevz
tag:github.com,2008:Repository/40606693/v0.1.0-rc5.0
2016-04-13T06:35:05Z
V0.1.0-rc5.0
<p>New Features</p>
<ul>
<li>Multi applications deployment.</li>
<li>Multi version of framework coexistence, easier framwork upgrade.</li>
<li>Auto complete the Nginx configration.</li>
<li>A convenient way to manage Services.</li>
</ul>
<p>1.install vanilla with its version, thus for easier updating.</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ git clone git@github.com:idevz/vanilla.git
$ cd vanilla
$ ./setup-framework -v $VANILLA_PROJ_ROOT -o $OPENRESTY_ROOT #see ./setup-framework -h for more details"><pre>$ git clone git@github.com:idevz/vanilla.git
$ <span class="pl-c1">cd</span> vanilla
$ ./setup-framework -v <span class="pl-smi">$VANILLA_PROJ_ROOT</span> -o <span class="pl-smi">$OPENRESTY_ROOT</span> <span class="pl-c"><span class="pl-c">#</span>see ./setup-framework -h for more details</span></pre></div>
<p>after installation you can got two commands <code>vanilla-</code> and <code>v-console</code> which with a version number.</p>
<p>2.Vanilla apps use thire own vhost conf both in development and production environment. You shoud give a full path(-a $VANILLA_APP_ROOT) to setup a Vanilla app.</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ ./setup-vanilal-demoapp [-a $VANILLA_APP_ROOT -u $VANILLA_APP_USER -g $VANILLA_APP_GROUP -e $VANILLA_RUNNING_ENV] #see ./setup-vanilal-demoapp -h for more details"><pre>$ ./setup-vanilal-demoapp [-a <span class="pl-smi">$VANILLA_APP_ROOT</span> <span class="pl-k">-u</span> <span class="pl-smi">$VANILLA_APP_USER</span> <span class="pl-k">-g</span> <span class="pl-smi">$VANILLA_APP_GROUP</span> <span class="pl-k">-e</span> <span class="pl-smi">$VANILLA_RUNNING_ENV</span>] <span class="pl-c"><span class="pl-c">#</span>see ./setup-vanilal-demoapp -h for more details</span></pre></div>
<p>3.You can use va-{{vanilla app name}}-service script to manage each service.</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ ./$VANILLA_APP_ROOT/va-appname-service start"><pre>$ ./<span class="pl-smi">$VANILLA_APP_ROOT</span>/va-appname-service start</pre></div>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc5.0
2016-03-23T15:08:50Z
V0.1.0-rc5.0: Merge pull request #43 from idevz/vanilla-0.1.0.rc5
<p>Vanilla 0.1.0.rc5</p>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc4.1
2016-03-23T15:15:08Z
V0.1.0-rc4.1
<p>1.fix a bug about restful route,when get params from request<br>
2.add a way to parse request params<br>
3.The most important thing is V0.1.0-rc5.0 is coming, create this tag for this milepost.</p>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc4.0
2016-01-19T07:54:27Z
V0.1.0-rc4.0
<ol>
<li>LUA_PACKAGE_PATH Is not must</li>
<li>update function buildconf to a instance method for multiple APP support</li>
<li>update dispatcher when remove init operation, More segmentation request stage</li>
<li>Add busted for unit test</li>
<li>Add restful route 'vanilla.v.routes.restful'</li>
<li>Add vanilla restar, reload commands</li>
</ol>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc3.2
2016-01-15T04:36:43Z
V0.1.0-rc3.2
<p>fix some bugs:<br>
1.Waf bug about "attempt to yield across C-call boundary"<br>
2.change lua file permissions to 644<br>
3.add BSD installnations<br>
4.update luarocks installnations<br>
5.update errinfo "Vanilla Inner Lpcall Err." and "Plugins Err"</p>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc3.1
2015-12-23T08:40:01Z
V0.1.0-rc3.1
<p>update set_by_lua directive</p>
idevz
tag:github.com,2008:Repository/40606693/V0.1.0-rc3
2015-12-18T04:58:45Z
V0.1.0-rc3
<p>Use "make" instead luarocks to install vanilla, make vanilla more easy to ues.<br>
Reduce package dependency.<br>
Implements a router and a set of pluggable routing protocol.<br>
Specifies �nginx bin PATH for vanilla start or stop, Specifies lua or luajit bin PATH for vanilla command.<br>
Pcall call local static functions instead of dynamic functions.<br>
Ning conf file can use {{NGX_PATH}} as a config params.</p>
idevz