summaryrefslogtreecommitdiffstats
path: root/docs/manual/mod/mod_lua.xml
diff options
context:
space:
mode:
authorRich Bowen <rbowen@apache.org>2010-04-22 13:16:40 +0200
committerRich Bowen <rbowen@apache.org>2010-04-22 13:16:40 +0200
commitb4087e08e537f1841427f8af54c28843395c356d (patch)
treea4e7c9701c551f458b9e83900bccb6432e1e51d0 /docs/manual/mod/mod_lua.xml
parentAdd basic almost-useful usage information. (diff)
downloadapache2-b4087e08e537f1841427f8af54c28843395c356d.tar.xz
apache2-b4087e08e537f1841427f8af54c28843395c356d.zip
Doesn't flow very well, but here's the info that was squirreled away in
txt files in svn. From here I'll probably need some help to flesh this out, or perhaps I'll steal some of Paul's blog articles. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@936782 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/mod/mod_lua.xml')
-rw-r--r--docs/manual/mod/mod_lua.xml73
1 files changed, 73 insertions, 0 deletions
diff --git a/docs/manual/mod/mod_lua.xml b/docs/manual/mod/mod_lua.xml
index 56c31c1191..14eea66f48 100644
--- a/docs/manual/mod/mod_lua.xml
+++ b/docs/manual/mod/mod_lua.xml
@@ -59,6 +59,79 @@ This will cause any <code>.lua</code> file to be evaluated by
</p>
</section>
+<section id="writinghandlers"><title>Writing Handlers</title>
+
+<p><code>mod_lua</code> always looks to invoke a function for the handler, rather than
+just evaluating a script body CGI style. A handler function looks
+something like this:</p>
+
+<example><title>example.lua</title><pre>
+ require "string"
+
+ function handle_something(r)
+ r.content_type = "text/plain"
+ r:puts("Hello Lua World!\n")
+
+ if r.method == 'GET' then
+ for k, v in pairs( r:parseargs() ) do
+ r:puts( string.format("%s: %s", k, v) )
+ end
+ elseif r.method == 'POST' then
+ for k, v in pairs( r:parsebody() ) do
+ r:puts( string.format("%s: %s", k, v) )
+ end
+ else
+ r:puts("unknown HTTP method " .. r.method)
+ end
+ end
+</pre></example>
+
+<p>
+This handler function just prints out the uri or form encoded
+arguments to a plaintext page.
+</p>
+
+<p>
+This means (and in fact encourages) that you can have multiple
+handlers (or hooks, or filters) in the same script.
+</p>
+
+</section>
+
+<section id="datastructures"><title>Data Structures</title>
+
+<dl>
+<dt>request_rec</dt>
+ <dd>
+ <p>The request_rec is mapped in as a userdata. It has a metatable
+ which lets you do useful things with it. For the most part it
+ has the same fields as the request_rec struct (see httpd.h
+ until we get better docs here) many of which are writeable as
+ well as readable, and has (at least) the following methods:</p>
+
+ <example>
+ r:puts("hello", " world", "!") -- print to response body
+ </example>
+ </dd>
+ </dl>
+
+</section>
+
+<section id="logging"><title>Logging Functions</title>
+
+<example>
+ r:debug("This is a debug log message")<br />
+ r:info("This is an info log message")<br />
+ r:notice("This is an notice log message")<br />
+ r:warn("This is an warn log message")<br />
+ r:err("This is an err log message")<br />
+ r:alert("This is an alert log message")<br />
+ r:crit("This is an crit log message")<br />
+ r:emerg("This is an emerg log message")<br />
+</example>
+
+</section>
+
<directivesynopsis>
<name>LuaRoot</name>
<description>Specify the base path</description>