1. Go to this page and download the library: Download mvccore/ext-router-module library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mvccore / ext-router-module example snippets
$app = \MvcCore\Application::GetInstance();
$app->SetRouterClass('\MvcCore\Ext\Routers\Module');
...
// to get router instance for next configuration:
/** @var \MvcCore\Ext\Routers\Module $router */
$router = \MvcCore\Router::GetInstance();
// Instance by specified all constructor params:
new \MvcCore\Ext\Routers\Modules\Route(
"//blog.%sld%.%tld%", // pattern
"blog", "Blog", // module, namespace
["page" => 1], ["page" => "\d+"], // defaults, constraints
[ // advanced configuration
"allowedLocalizations" => ["en-US"], // only for extension `mvccore/ext-router-localization`
"allowedMediaVersions" => ["full" => ""] // only for extension `mvccore/ext-router-media`
]
);
// Or instance by single configuration array:
new \MvcCore\Ext\Routers\Modules\Route([
"pattern" => "//blog.%sld%.%tld%",
"module" => "blog",
"namespace" => "Blog",
"defaults" => ["page" => 1],
"constraints" => ["page" => "\d+"],
"allowedLocalizations" => ["en-US"], // only for extension `mvccore/ext-router-localization`
"allowedMediaVersions" => ["full" => ""] // only for extension `mvccore/ext-router-media`
]);
// Or instance by single configuration array with directly defined
// regular expression `match` pattern and `reverse` pattern`:
new \MvcCore\Ext\Routers\Modules\Route([
"match" => "#^//blog\.%sld%\.%tld%$#",
"reverse" => "//blog.%sld%.%tld%",
"module" => "blog",
"namespace" => "Blog",
"defaults" => ["page" => 1],
"constraints" => ["page" => "\d+"],
"allowedLocalizations" => ["en-US"], // only for extension `mvccore/ext-router-localization`
"allowedMediaVersions" => ["full" => ""] // only for extension `mvccore/ext-router-media`
]);
// Define domain routes (domain routes also could be defined as single
// configuration arrays passed into module domain route constructor):
$router->SetDomainRoutes([
// to define blog website module:
'blog' => [
'pattern' => '//blog.example.com',
'namespace' => 'Blog',
],
// to define main website module:
'main' => [
'pattern' => '//[<productsCategory>.]example.com',
'constraints' => ['productsCategory' => '-a-z0-9]+'],
'namespace' => 'Main',
],
// now all requests into `main` module will have `productsCategory` param
// in request object. For request into `http://example.com/`, there will
// be `NULL` value for this param, so you can recognize a homepage or there
// are many other ways how to target a homepage.
]);
// Now let's define standard routes:
$router->SetRoutes([
// Absolutely defined target controller in `\App\Controllers`:
'\Admin\Index:Index' => '/admin',
// Relatively defined controllers in `\App\Controllers` by module route namespace:
// There will be only used controllers `\Main\Categories` and
// `\Main\Categories`, because there is allowed only `main` module.
// Example match by: `http://phones.example.com/`, `http://phones.example.com/2`, ...
'Categories:List' => [
'pattern' => '/[<page>]',
'defaults' => ['page' => 1],
'constraints' => ['page' => '\d+'],
'allowedModules' => ['main'],
],
// Example match by: `http://phones.example.com/products/brands-samsung/price-0-1000`, ...
'Products:List' => [
'pattern' => '/products[/<filter*>]',
'constraints' => ['filter' => '-a-zA-Z0-9_/]+'],
'allowedModules' => ['main'],
],
// Example match by: `http://phones.example.com/product/samsung-galaxy-note-9/white`, ...
'Products:Detail' => [
'match' => '#^/product/(?<id>\d+)(/(?<color>[a-z]+))?/?#',
'reverse' => '/product/<id>[/<color>]',
'defaults' => ['color' => 'red'],
'allowedModules' => ['main'],
],
// There will be only used controller `\Blog\Posts`,
// because there is allowed only `blog` module.
// Example match by: `http://blog.example.com/`, `http://blog.example.com/2`, ...
'Posts:List' => [
'pattern' => '/<page>]',
'defaults' => ['page' => 1],
'constraints' => ['page' => '\d+'],
'allowedModules' => ['blog'],
],
// Example match by: `http://blog.example.com/post/which-phone-to-buy`, ...
'Posts:Detail' => [
'pattern' => '/post/[<path>]',
'constraints' => ['path' => '[-a-zA-Z0-9_/]+']
'allowedModules' => ['blog'],
],
// There will be used controller `\Main\Index` but
// there could be also used controller `\Blog\Index`.
// Example match by: `http://example.com/pages/contacts`, `http://blog.example.com/pages/contacts`, ...
'Index:Index' => [
'pattern' => '/pages/<path>',
'constraints' => ['path' => '[-a-zA-Z0-9_/]+'],
//'allowedModules' => [NULL], //if there is allowed `NULL`, all modules are allowed
],
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.