Giter Club home page Giter Club logo

nette-alias-router's Introduction

Alias router

Installation

$ composer require geniv/nette-alias-router

or

"geniv/nette-alias-router": "^3.1"

require:

"php": ">=7.0",
"nette/application": ">=2.4",
"nette/caching": ">=2.5",
"nette/di": ">=2.4",
"nette/http": ">=2.4",
"nette/neon": ">=2.4",
"nette/utils": ">=2.4",
"latte/latte": ">=2.4",
"tracy/tracy": ">=2.4",
"dibi/dibi": ">=3.0",
"geniv/nette-locale": ">=2.0"

Include in application

available source drivers:

  • ArrayDriver (array)
  • NeonDriver ()
  • DibiDriver (dibi + cache _AliasRouter-DibiDriver)

In router alias is not good idea change last alias, but insert new alias with new datetime stamp.

neon configure:

route:
    cs:
        "staticky-slug": "Homepage:pokus"
        "staticky-slug1": "Homepage:pokus2"
    en:
        "static-slu": "Homepage:pokus"
        "static-slug1": "Homepage:pokus2"


# alias router
aliasRouter:
#   debugger: true
#   autowired: true
#    driver: AliasRouter\Drivers\ArrayDriver(%route%)
#    driver: AliasRouter\Drivers\NeonDriver(%appDir%/router.neon)
    driver: AliasRouter\Drivers\DibiDriver(%tablePrefix%)
#   enabled: true
#   domainAlias:
#       example.cz: cs
#       example.com: en
#       example.de: de

neon configure extension:

extensions:
    aliasRouter: AliasRouter\Bridges\Nette\Extension

Available interface: IAliasRouter

RouterFactory.php:

public static function createRouter(ILocale $locale, IAliasRouter $aliasRouter): IRouter
...
if ($aliasRouter->isEnabled()) {
    $aliasRouter->setDefaultParameters('Homepage', 'default', 'cs');
    $aliasRouter->setPaginatorVariable('visualPaginator-page');
    //$aliasRouter->setSecure(true);
    //$aliasRouter->setOneWay(true);
    $router[] = $aliasRouter->getRouter();
}

usage @layout.latte:

{if $presenter->context->hasService('aliasRouter.default')}
    {ifset slug}
        {include slug|addSlug}
    {/ifset}
{/if}

manual create or delete:

use AliasRouter\Drivers\IDriver;
$this->context->getByType(IDriver::class)->deleteRouter('Homepage', 'default');
$this->context->getByType(IDriver::class)->createRouter('Homepage', 'default', 'muj alias');
$this->context->getByType(IDriver::class)->createRouter('Homepage', 'default', 'muj alias XX', ['locale' => 'en']);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.