diff --git a/reference/yaf/versions.xml b/reference/yaf/versions.xml
index 12cd946a38..49143b3db2 100644
--- a/reference/yaf/versions.xml
+++ b/reference/yaf/versions.xml
@@ -346,6 +346,7 @@
+
@@ -360,22 +361,27 @@
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_interface/assemble.xml b/reference/yaf/yaf_route_interface/assemble.xml
new file mode 100644
index 0000000000..08b4ac0f0b
--- /dev/null
+++ b/reference/yaf/yaf_route_interface/assemble.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+ Yaf_Route_Interface::assemble
+ assemble a request
+
+
+
+ &reftitle.description;
+
+ abstract public stringYaf_Route_Interface::assemble
+ arrayinfo
+ arrayquery
+
+
+ this method returns a url according to the argument info, and append
+ query strings to the url according to the argument query.
+
+
+ a route should implement this method according to its own route rules, and
+ do a reverse progress.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_interface/route.xml b/reference/yaf/yaf_route_interface/route.xml
index 7d238630a5..5be70c09a7 100644
--- a/reference/yaf/yaf_route_interface/route.xml
+++ b/reference/yaf/yaf_route_interface/route.xml
@@ -16,6 +16,12 @@
Yaf_Route_Interface::route is the only method
that a custom route should implement.
+
+
+ since of 2.3.0, there is another method should also be implemented,
+ see Yaf_Route_Interface::assemble.
+
+
if this method return &true;, then the route process will be end. otherwise,
@@ -35,7 +41,6 @@
Yaf_Request_Abstract::setRouted to make the
request routed at last.
- &warn.undocumented.func;
diff --git a/reference/yaf/yaf_route_map/assemble.xml b/reference/yaf/yaf_route_map/assemble.xml
new file mode 100644
index 0000000000..8629f7580a
--- /dev/null
+++ b/reference/yaf/yaf_route_map/assemble.xml
@@ -0,0 +1,122 @@
+
+
+
+
+
+ Yaf_Route_Map::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Map::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Map::assembleexample
+
+addRoute("map", $route);
+
+var_dump($router->getRoute('map')->assemble(
+ array(
+ ':c' => 'foo_bar'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+ )
+);
+
+$route = new Yaf_Route_Map(true, '_');
+$router->addRoute("map", $route);
+
+var_dump($router->getRoute('map')->assemble(
+ array(
+ ':a' => 'foo_bar'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+ )
+);
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_regex/assemble.xml b/reference/yaf/yaf_route_regex/assemble.xml
new file mode 100644
index 0000000000..8d6dc3e301
--- /dev/null
+++ b/reference/yaf/yaf_route_regex/assemble.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+ Yaf_Route_Regex::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Regex::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Regex::assembleexample
+
+ "product", //route to product controller,
+ ),
+ array(),
+ array(),
+ '/:m/:c/:a'
+ );
+
+$router->addRoute("regex", $route);
+
+var_dump($router->getRoute('regex')->assemble(
+ array(
+ ':m' => 'module',
+ ':c' => 'controller',
+ ':a' => 'action'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' =>
+ 'tval2'
+ )
+ )
+ );
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_regex/construct.xml b/reference/yaf/yaf_route_regex/construct.xml
index 7d08621ad5..14ded31b71 100644
--- a/reference/yaf/yaf_route_regex/construct.xml
+++ b/reference/yaf/yaf_route_regex/construct.xml
@@ -15,9 +15,9 @@
arrayroute
arraymap
arrayverify
+ stringreverse
-
@@ -65,6 +65,20 @@
+
+ reverse
+
+
+ a string, used to assemble url, see
+ Yaf_Route_Regex::assemble.
+
+
+ this parameter is introduced in 2.3.0
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_rewrite/assemble.xml b/reference/yaf/yaf_route_rewrite/assemble.xml
new file mode 100644
index 0000000000..c733b54cb8
--- /dev/null
+++ b/reference/yaf/yaf_route_rewrite/assemble.xml
@@ -0,0 +1,114 @@
+
+
+
+
+
+ Yaf_Route_Rewrite::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Rewrite::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Rewrite::assembleexample
+
+ "product",
+ ),
+ array()
+);
+
+$router->addRoute("rewrite", $route);
+
+var_dump($router->getRoute('rewrite')->assemble(
+ array(
+ ':name' => 'foo',
+ ':id' => 'bar',
+ ':tmpkey1' => 'tmpval1'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+ )
+);
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_rewrite/route.xml b/reference/yaf/yaf_route_rewrite/route.xml
index 57c4517edf..cab6832f6f 100644
--- a/reference/yaf/yaf_route_rewrite/route.xml
+++ b/reference/yaf/yaf_route_rewrite/route.xml
@@ -17,8 +17,6 @@
- &warn.undocumented.func;
-
diff --git a/reference/yaf/yaf_route_simple/assemble.xml b/reference/yaf/yaf_route_simple/assemble.xml
new file mode 100644
index 0000000000..59f87d18a4
--- /dev/null
+++ b/reference/yaf/yaf_route_simple/assemble.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+ Yaf_Route_Simple::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Simple::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Simple::assembleexample
+
+addRoute("simple", $route);
+
+var_dump($router->getRoute('simple')->assemble(
+ array(
+ ':a' => 'yafaction',
+ 'tkey' => 'tval',
+ ':c' => 'yafcontroller',
+ ':m' => 'yafmodule'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+ ));
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_static/assemble.xml b/reference/yaf/yaf_route_static/assemble.xml
new file mode 100644
index 0000000000..9ec7321c36
--- /dev/null
+++ b/reference/yaf/yaf_route_static/assemble.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+ Yaf_Route_Static::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Static::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Static::assembleexample
+
+addRoute("static", $route);
+
+var_dump($router->getRoute('static')->assemble(
+ array(
+ ':a' => 'yafaction',
+ 'tkey' => 'tval',
+ ':c' => 'yafcontroller',
+ ':m' => 'yafmodule'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+ )
+);
+
+var_dump($router->getRoute('static')->assemble(
+ array(
+ ':a' => 'yafaction',
+ 'tkey' => 'tval',
+ ':c' => 'yafcontroller',
+ ':m' => 'yafmodule'
+ ),
+ array(
+ 1 => 2,
+ array(),
+ )
+ )
+);
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+
diff --git a/reference/yaf/yaf_route_supervar/assemble.xml b/reference/yaf/yaf_route_supervar/assemble.xml
new file mode 100644
index 0000000000..d9dfdedf4d
--- /dev/null
+++ b/reference/yaf/yaf_route_supervar/assemble.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+ Yaf_Route_Supervar::assemble
+ Assemble a url
+
+
+
+ &reftitle.description;
+
+ public stringYaf_Route_Supervar::assemble
+ arrayinfo
+ arrayquery
+
+
+ Assmeble a url.
+
+
+
+
+ &reftitle.parameters;
+
+
+ info
+
+
+
+
+
+
+
+ query
+
+
+
+
+
+
+
+
+
+
+ &reftitle.examples;
+
+ Yaf_Route_Supervar::assembleexample
+
+addRoute("supervar", $route);
+
+var_dump($router->getRoute('supervar')->assemble(
+ array(
+ ':a' => 'yafaction',
+ 'tkey' => 'tval',
+ ':c' => 'yafcontroller',
+ ':m' => 'yafmodule'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2'
+ )
+));
+
+try {
+var_dump($router->getRoute('supervar')->assemble(
+ array(
+ ':a' => 'yafaction',
+ 'tkey' => 'tval',
+ ':m' => 'yafmodule'
+ ),
+ array(
+ 'tkey1' => 'tval1',
+ 'tkey2' => 'tval2',
+ 1 => array(),
+ )
+));
+} catch (Exception $e) {
+ var_dump($e->getMessage());
+}
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+
+
+
+
+
+
+