Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
'router' => array(
'routes' => array(
'album' => array(
'type' => 'segment',
'options' => array(
'route' => '/album[/:action][/:id]',
'constraints' => array(
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
'id' => '[0-9]+',
),
'defaults' => array(
'controller' => 'Album\Controller\Album',
'action' => 'index',
),
),
),
),
),
[a]
b.c.d=e
$php -r "var_dump(parse_ini_file('a.ini',true));"
array(1) {
["a"]=>
array(1) {
["b.c.d"]=>
string(1) "e"
}
}
resources :albums
'albums' => ['type' => 'resource'] или 'items' => ['type' => 'resource']Просто это частный случай решения проблемы и за пределами рельсов, видимо, мало кому нужный (например для меня это довольно не удобный способ).
article_show:
pattern: /articles/{culture}/{year}/{title}.{_format}
defaults: { _controller: AcmeDemoBundle:Article:show, _format: html }
requirements:
culture: en|fr
_format: html|rss
year: \d+
$routes->add('homepage', new Route('/articles/{culture}/{year}/{title}.{_format}', array(
'_controller' => 'AcmeDemoBundle:Article:show',
'_format' => 'html',
), array(
'culture' => 'en|fr',
'_format' => 'html|rss',
'year' => '\d+',
)));
from django.conf.urls.defaults import *
urlpatterns = patterns('news.views',
url(r'^$', 'news_index'),
url(r'^(?P<section>[\w-]+)/$', 'news_section'),
url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[\w-]+)/$', 'news_one'),
)
/2012/08/29/hello-school/ |^/[0-9]{4}/[0-9]{2}/[0-9]{2}/[a-z\-]+/$|, а вот чтобы понять роутинг ZF2, нужно правда быть героем, кроме того регулярные выражения — это стандартное средство языка, понял его один раз и используешь. По поводу двух проблем — не обращайте внимание, кто-то ляпнул сгоряча и сообщество вдруг восприняло это как догму, регулярки изначально были сделаны для обработки текста — и они справляются с этим отлично. |^/[0-9]{4}/[0-9]{2}/[0-9]{2}/[a-z\-]+/$|, а вот чтобы понять роутинг ZF2, нужно правда быть героем, кроме того регулярные выражения — это стандартное средство языка, понял его один раз и используешь. По поводу двух проблем — не обращайте внимание, кто-то ляпнул сгоряча и сообщество вдруг восприняло это как догму, регулярки изначально были сделаны для обработки текста — и они справляются с этим отлично.'albums' => ['type' => 'resource'] "require": {
"zendframework/zend-config": "2.0.*",
"zendframework/zend-http": "2.0.*",
"php": ">=5.3.3"
}
'router' => array(
'routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'__NAMESPACE_' => 'Frontend\Controller',
'controller' => 'index',
'action' => 'index',
),
),
),
),
),
'controller' => 'index'
/ /en/index/ — не валиден, а вот /en/index вполне катит/en/index/index/-> /en/index/index по аналогии.'router' => array(
'routes' => array(
'root' => array(
'type' => 'literal',
'options' => array(
'route' => '/',
'defaults' => array(
'__NAMESPACE__' => 'Shop\Controller',
'controller' => 'Index',
'action' => 'index',
'lang' => 'en',
),
),
'may_terminate' => true,
'child_routes' => array(
'control' => array(
'type' => 'segment',
'options' => array(
'route' => '[:lang[/:controller[/:action]]][.html]',
'constraints' => array(
'lang' => '[a-z]{2}',
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Index',
'action' => 'index',
'lang' => 'en',
'module' => 'shop',
),
),
'may_terminate' => true,
'child_routes' => array(
'params' => array(
'type' => 'Wildcard',
'options' => array(
),
),
),
),
),
),
),
),
/en/controller/action либо/en/controller/action/param/value либо/en/controller/action.html либо/en/controller/action.html/param/valueZend\Mvc\Application::init(include 'config/application.config.php')->run();
// config/application.config.php
return array(
'modules' => array(
'Application',
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php', // это на каком языке ? почему не pcre ?
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);
Вышел в свет Zend Framework 2 stable