前回前々回とURLをパースしてルーティングを行いましたが、逆にルートからURLを作成することも当然可能です。
あとは返り値にリンクするだけで、翌日翌月次の記事といったリンクが作成可能です。
url_for()が簡単にできました。
AuraPHPの記事
<?php
require_once('path/to/channel/vendor/autoload.php');
// Router
$router = new Aura\Router\Map(
new Aura\Router\DefinitionFactory()
,new Aura\Router\RouteFactory()
);
// ルート
$router->add('date1', '/{:year:(\d+)}/{:month:(\d+)}/{:day:(\d+)}', array(
'values' => array( 'controller' => 'date', 'action' => 'read' )
));
$router->add('date2', '/{:year}{:month}{:day}', array(
'params' => array( 'year' => '(\d\d\d\d)', 'month' => '(\d\d)', 'day' => '(\d\d)' )
));
// ルートからURLを生成
$router->generate('date1', array(
'year'=>'2013', 'month'=>'01', 'day'=>'02'
)); // '/2013/01/02'
$router->generate('date2', array(
'year'=>'2013', 'month'=>'01', 'day'=>'02'
)); // '/20130102'
generate()メソッドに必要な情報を与えると、URLの具体的な値として帰ってきます。あとは返り値にリンクするだけで、翌日翌月次の記事といったリンクが作成可能です。
url_for()が簡単にできました。
AuraPHPの記事
PR