mirror of
https://github.com/dannyvankooten/AltoRouter.git
synced 2025-07-31 21:50:38 +02:00
Add GA, slight CSS edits and use improved read me.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
_site
|
||||
Gemfile
|
||||
Gemfile.lock
|
||||
.idea
|
||||
|
@@ -11,6 +11,16 @@
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||
<![endif]-->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-15758173-49', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
@@ -32,7 +42,7 @@
|
||||
</section>
|
||||
<footer>
|
||||
<p>This project is maintained by <a href="https://github.com/dannyvankooten">dannyvankooten</a></p>
|
||||
<p><small>Hosted on GitHub Pages — Theme by <a href="https://github.com/orderedlist">orderedlist</a></small></p>
|
||||
<p><small>Hosted on GitHub Pages — Theme by <a rel="nofollow" href="https://github.com/orderedlist">orderedlist</a></small></p>
|
||||
</footer>
|
||||
</div>
|
||||
<script src="/javascripts/scale.fix.js"></script>
|
||||
|
101
index.html
101
index.html
@@ -13,8 +13,12 @@ layout: default
|
||||
<li>Reversed routing</li>
|
||||
<li>Flexible regular expression routing (inspired by <a href="http://www.sinatrarb.com/">Sinatra</a>)</li>
|
||||
<li>Custom regexes</li>
|
||||
</ul><h2>
|
||||
<a name="getting-started" class="anchor" href="#getting-started"><span class="octicon octicon-link"></span></a>Getting started</h2>
|
||||
</ul>
|
||||
|
||||
<h2>
|
||||
<a name="getting-started" class="anchor" href="#getting-started"><span class="octicon octicon-link"></span></a>
|
||||
Getting started
|
||||
</h2>
|
||||
|
||||
<ol>
|
||||
<li>PHP 5.3.x is required</li>
|
||||
@@ -24,21 +28,48 @@ layout: default
|
||||
<li>Create an instance of AltoRouter, map your routes and match a request.</li>
|
||||
<li>Have a look at the basic example in the <code>examples</code> directory for a better understanding on how to use AltoRouter.</li>
|
||||
</ol><h2>
|
||||
<a name="routing" class="anchor" href="#routing"><span class="octicon octicon-link"></span></a>Routing</h2>
|
||||
|
||||
<a name="user-content-routing" class="anchor" href="#routing" aria-hidden="true"><span class="octicon octicon-link"></span></a>Routing</h2>
|
||||
|
||||
<p>With AltoRouter you define new routes by using the <code>map</code> method.</p>
|
||||
|
||||
<p><code>map</code> accepts 4 parameters;</p>
|
||||
|
||||
<p><strong>Request methods</strong><br>
|
||||
One of 5 HTTP Methods, or a pipe-separated list of multiple HTTP Methods (GET|POST|PATCH|PUT|DELETE)</p>
|
||||
|
||||
<p><strong>Route pattern</strong><br>
|
||||
Route pattern to match with. You can use multiple pre-set regex filters, like <code>[i:id]</code>. A custom regex must start with an <code>@</code>.</p>
|
||||
|
||||
<p><strong>Target</strong><br>
|
||||
The target of where this route should point to. Can be anything.</p>
|
||||
|
||||
<p><strong>Name</strong><br>
|
||||
Optional name of this route. Supply if you want to reverse route this url in your application.</p>
|
||||
|
||||
<h3>
|
||||
<a name="user-content-example" class="anchor" href="#example" aria-hidden="true"><span class="octicon octicon-link"></span></a>Example</h3>
|
||||
|
||||
<div class="highlight highlight-php"><pre><span class="nv">$router</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AltoRouter</span><span class="p">();</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">setBasePath</span><span class="p">(</span><span class="s1">'/AltoRouter'</span><span class="p">);</span> <span class="c1">// (optional) the subdir AltoRouter lives in</span>
|
||||
<span class="c1">// (optional) set basepath to the subdirectory relative to the application root</span>
|
||||
<span class="c1">// or, a virtual path where you want to integrate AltoRouter.</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">setBasePath</span><span class="p">(</span><span class="s1">'/AltoRouter'</span><span class="p">);</span>
|
||||
|
||||
<span class="c1">// mapping routes</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">map</span><span class="p">(</span><span class="s1">'GET|POST'</span><span class="p">,</span><span class="s1">'/'</span><span class="p">,</span> <span class="s1">'home#index'</span><span class="p">,</span> <span class="s1">'home'</span><span class="p">);</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">map</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span><span class="s1">'/users'</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="s1">'c'</span> <span class="o">=></span> <span class="s1">'UserController'</span><span class="p">,</span> <span class="s1">'a'</span> <span class="o">=></span> <span class="s1">'ListAction'</span><span class="p">));</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">map</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span><span class="s1">'/users/[i:id]'</span><span class="p">,</span> <span class="s1">'users#show'</span><span class="p">,</span> <span class="s1">'users_show'</span><span class="p">);</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">map</span><span class="p">(</span><span class="s1">'POST'</span><span class="p">,</span><span class="s1">'/users/[i:id]/[delete|update:action]'</span><span class="p">,</span> <span class="s1">'usersController#doAction'</span><span class="p">,</span> <span class="s1">'users_do'</span><span class="p">);</span>
|
||||
|
||||
<span class="c1">// reversed routing</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">generate</span><span class="p">(</span><span class="s1">'users_show'</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="s1">'id'</span> <span class="o">=></span> <span class="mi">5</span><span class="p">));</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">generate</span><span class="p">(</span><span class="s1">'users_show'</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span><span class="s1">'id'</span> <span class="o">=></span> <span class="mi">5</span><span class="p">));</span> <span class="c1"># => /users/5</span>
|
||||
</pre></div>
|
||||
|
||||
<p>For quickly adding multiple routes, you can use the <code>addRoutes</code> method. This method accepts an array or any kind of traversable.</p>
|
||||
|
||||
<div class="highlight highlight-php"><pre><span class="nv">$router</span><span class="o">-></span><span class="na">addRoutes</span><span class="p">(</span><span class="k">array</span><span class="p">(</span>
|
||||
<span class="k">array</span><span class="p">(</span><span class="s1">'PATCH'</span><span class="p">,</span><span class="s1">'/users/[i:id]'</span><span class="p">,</span> <span class="s1">'users#update'</span><span class="p">,</span> <span class="s1">'update_user'</span><span class="p">),</span>
|
||||
<span class="k">array</span><span class="p">(</span><span class="s1">'DELETE'</span><span class="p">,</span><span class="s1">'/users/[i:id]'</span><span class="p">,</span> <span class="s1">'users#delete'</span><span class="p">,</span> <span class="s1">'delete_user'</span><span class="p">)</span>
|
||||
<span class="p">));</span>
|
||||
</pre></div>
|
||||
|
||||
<p><strong>You can use the following limits on your named parameters. AltoRouter will create the correct regexes for you.</strong></p>
|
||||
@@ -80,53 +111,41 @@ layout: default
|
||||
</pre></div>
|
||||
|
||||
<h2>
|
||||
<a name="matching" class="anchor" href="#matching"><span class="octicon octicon-link"></span></a>Matching</h2>
|
||||
<a name="user-content-matching" class="anchor" href="#matching" aria-hidden="true"><span class="octicon octicon-link"></span></a>Matching</h2>
|
||||
|
||||
<p>Simply call the match() method like this :</p>
|
||||
<p>Route lookup is done by calling <code>match</code>.</p>
|
||||
|
||||
<div class="highlight highlight-php"><pre>
|
||||
<span class="c1">// perform a match against the current request url</span>
|
||||
<span class="nv">$match</span> <span class="o">=</span> <span class="nv">$router</span><span class="o">-></span><span class="na">match</span><span class="p">();</span>
|
||||
<div class="highlight highlight-php"><pre><span class="c1">// perform a match against the current request url</span>
|
||||
<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$router</span><span class="o">-></span><span class="na">match</span><span class="p">();</span>
|
||||
|
||||
<span class="c1">// perform a match against a given url</span>
|
||||
<span class="nv">$match</span> <span class="o">=</span> <span class="nv">$router</span><span class="o">-></span><span class="na">match</span><span class="p">(</span><span class="nv">$url</span><span class="p">);</span>
|
||||
|
||||
<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$router</span><span class="o">-></span><span class="na">match</span><span class="p">(</span><span class="s1">'/path/to/somewhere'</span><span class="p">);</span>
|
||||
</pre></div>
|
||||
|
||||
<h3>
|
||||
<a name="structure" class="anchor" href="#structure"><span class="octicon octicon-link"></span></a>Structure</h3>
|
||||
<a name="user-content-return-value" class="anchor" href="#return-value" aria-hidden="true"><span class="octicon octicon-link"></span></a>Return value</h3>
|
||||
|
||||
<p>Match return an associative array containing :</p>
|
||||
<p>The return value will be an associative array if a match is found and <code>false</code> otherwise.</p>
|
||||
|
||||
<ul>
|
||||
<li>target : the value of the third argument of the map() call</li>
|
||||
<li>params : if you have params in your match pattern, an associative array with param name as key </li>
|
||||
<li>name : the name of the matched route</li>
|
||||
</ul><h3>
|
||||
<a name="example" class="anchor" href="#example"><span class="octicon octicon-link"></span></a>Example</h3>
|
||||
<p>The array consists of 3 keys; <code>target</code>, <code>params</code> and <code>name</code>.</p>
|
||||
|
||||
<ul>
|
||||
<li>Map : 'GET', '/user/[i:id]/', array('c' => 'UserController', 'a' => 'Profile'), 'userProfile'</li>
|
||||
<li>Url : /users/group/list/123/</li>
|
||||
</ul><p>will give :</p>
|
||||
<p>Where <code>target</code> and <code>name</code> contain the values passed to <code>map</code> and <code>params</code> is an associative array of params extracted from the url.</p>
|
||||
|
||||
<pre><code>Array
|
||||
(
|
||||
[target] => Array
|
||||
(
|
||||
[c] => UserController
|
||||
[a] => Profile
|
||||
)
|
||||
<h3>
|
||||
<a name="user-content-example-1" class="anchor" href="#example-1" aria-hidden="true"><span class="octicon octicon-link"></span></a>Example</h3>
|
||||
|
||||
[params] => Array
|
||||
(
|
||||
[id] => 123
|
||||
)
|
||||
<div class="highlight highlight-php"><pre><span class="nv">$router</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">AltoRouter</span><span class="p">();</span>
|
||||
<span class="nv">$router</span><span class="o">-></span><span class="na">map</span><span class="p">(</span><span class="s1">'GET'</span><span class="p">,</span> <span class="s1">'/user/[i:id]'</span><span class="p">,</span> <span class="s1">'user_controller#show_profile'</span><span class="p">,</span> <span class="s1">'user_profile'</span><span class="p">);</span>
|
||||
<span class="nv">$result</span> <span class="o">=</span> <span class="nv">$router</span><span class="o">-></span><span class="na">match</span><span class="p">(</span><span class="s1">'/user/123'</span><span class="p">);</span>
|
||||
|
||||
[name] => userProfile
|
||||
)
|
||||
|
||||
</code></pre>
|
||||
<span class="nv">$result</span> <span class="o">==</span> <span class="k">array</span><span class="p">(</span>
|
||||
<span class="s1">'target'</span> <span class="o">=></span> <span class="s1">'user_controller#show_profile'</span><span class="p">,</span>
|
||||
<span class="s1">'params'</span> <span class="o">=></span> <span class="k">array</span><span class="p">(</span>
|
||||
<span class="s1">'id'</span> <span class="o">=></span> <span class="mi">123</span>
|
||||
<span class="p">),</span>
|
||||
<span class="s1">'name'</span> <span class="o">=></span> <span class="s1">'user_profile'</span>
|
||||
<span class="p">);</span>
|
||||
</pre>
|
||||
|
||||
<h2>
|
||||
<a name="contributors" class="anchor" href="#contributors"><span class="octicon octicon-link"></span></a>Contributors</h2>
|
||||
@@ -141,7 +160,7 @@ layout: default
|
||||
|
||||
<p>(MIT License)</p>
|
||||
|
||||
<p>Copyright (c) 2012-2013 Danny van Kooten <a href="mailto:hi@dannyvankooten.com">hi@dannyvankooten.com</a></p>
|
||||
<p>Copyright (c) 2012-2014 Danny van Kooten <a href="mailto:hi@dannyvankooten.com">hi@dannyvankooten.com</a></p>
|
||||
|
||||
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
|
||||
|
||||
|
@@ -46,7 +46,7 @@ a small {
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
width:860px;
|
||||
width:920px;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ header ul a strong {
|
||||
}
|
||||
|
||||
section {
|
||||
width:500px;
|
||||
width:560px;
|
||||
float:right;
|
||||
padding-bottom:50px;
|
||||
}
|
||||
|
Reference in New Issue
Block a user