2017 © Pedro Peláez
 

library seo-router

Seo router extension for Nette framework

image

myiyk/seo-router

Seo router extension for Nette framework

  • Sunday, June 25, 2017
  • by Myiyk
  • Repository
  • 0 Watchers
  • 0 Stars
  • 54 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Seo-Router

Build Status Latest stable License, (*1)

Install

Using composer composer require myiyk/seo-router:@dev, (*2)

or, (*3)

Copy sources somewhere Nette/RobotLoader or Composer will find it, (*4)

Basic Usage

Config app/config/config.neon, (*5)

services:
    - App\Model\SeoRouterSource
    routerFactory: App\RouterFactory
    router: @routerFactory::createRouter(@seoRouter.router)

extensions:
    seoRouter: Myiyk\SeoRouter\Extension

Router need source with interface Myiyk/SeoRouter/ISource, (*6)

<?php // file: app/model/SeoRouterSource.php

namespace App\Model;

use Myiyk\SeoRouter\Action;
use Myiyk\SeoRouter\ISource;
use Nette;

class SeoRouterSource extends Nette\Object implements ISource
{

    public function toAction(Nette\Http\Url $url)
    {
        $relativeUrl = $url->getRelativeUrl();

        if ($relativeUrl == '' || $relativeUrl == 'home') {
            $presenter = "Homepage:default";  // example presenter
            $params = array(
                'id' => 123, // other parameters
            );
            return new Action($presenter, $params);
        } else { // or return NULL if result not found
            return NULL;
        }
    }

    public function toUrl(Action $request)
    {
        $presenter = $request->getPresenter();
        $action = $request->getAction();
        // complete documentation of Nette\Application\Request on
        // https://api.nette.org/2.3.8/Nette.Application.Request.html

        if ($presenter == 'Homepage' && $action == 'default') {
            // or $request->getPresenterAndAction() == 'Homepage:default'
            return "home"; // means example.com/home
        } else { // or return NULL if result not found
            return NULL;
        }
    }
}

method createRouter in app/router/RouterFactory.php, (*7)

public function createRouter(SeoRouter\Router $seoRouter)
{
    $router = new RouteList;
    $router[] = $seoRouter;
    $router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
    return $router;
}

The Versions

25/06 2017

dev-master

9999999-dev

Seo router extension for Nette framework

  Sources   Download

MIT

The Requires

 

The Development Requires