atk14/sluggish-router 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

atk14/sluggish-router

最新稳定版本:v1.1.4

Composer 安装命令:

composer require atk14/sluggish-router

包简介

Base class for ATK14 routers generating nice looking URLs with slugs

README 文档

README

Base class for ATK14 routers generating nice looking URLs with slugs

It can handle "detail" URLs for models that have method getSlug($lang) and static method GetInstanceBySlug($slug,&$lang). You can find both in the Atk14Catalog.

Basic usage

Router class:

<?php
// file: config/routers/articles_router.php
class ArticlesRouter extends SluggishRouter {

  var $patterns = [
    "en" => ["index" => "/articles/", "detail" => "/articles/<slug>/"],
    "cs" => ["index" => "/clanky/", "detail" => "/clanky/<slug>/"],
    "sk" => ["index" => "/sk/clanky/", "detail" => "/sk/clanky/<slug>/"],
  ];
  
  // var $model_class_name = "Article"; // by default determined automatically according to the router's class name
  // var $target_controller_name = "articles"; // by default determined automatically according to the router's class name
}

Loading router:

<?php
// file: config/routers/load.php
Atk14Url::AddRouter("ArticlesRouter"); // the default namespace ("")
Atk14Url::AddRouter("blog","ArticlesRouter"); // loading ArticlesRouter also into namespace blog

In a template:

{a controller="articles" action="detail" id=123}Here is the article{/a}<br>
{a controller="articles" action="index"}Show all articles{/a}

Rendered HTML:

<a href="/articles/why-is-the-atk14-so-cool/">Here is the article</a><br>
<a href="/articles/">Show all articles</a>

An easier way to set the routes:

<?php
// file: config/routers/articles_router.php
class ArticlesRouter extends SluggishRouter {

  var $patterns = [
    "en" => "articles", // same as ["index" => "/articles/", "detail" => "/articles/<slug>/"]
    "cs" => "clanky", //  same as ["index" => "/clanky/", "detail" => "/clanky/<slug>/"]
    "sk" => "sk/clanky", // same as ["index" => "/sk/clanky/", "detail" => "/sk/clanky/<slug>/"]
  ];
}

Setting only detail routes:

<?php
// file: config/routers/articles_router.php
class ArticlesRouter extends SluggishRouter {

  var $patterns = [
    "en" => "/articles/<slug>/", // same as ["detail" => "/articles/<slug>/"]
    "cs" => "/clanky/<slug>/", //  same as ["detail" => "/clanky/<slug>/"]
    "sk" => "/sk/clanky/<slug>/", // same as ["detail" => "/sk/clanky/<slug>/"]
  ];
}

Fallback route

A fallback route for all the unlisted languages can be specified using the asterisk symbol.

<?php
// file: config/routers/articles_router.php
class ArticlesRouter extends SluggishRouter {
  var $patterns = [
    "*" => ["index" => "/<lang>/articles/", "detail" => "/<lang>/articles/<slug>/"],
  ];
}

Installation

Use the Composer to install SluggishRouter.

cd path/to/your/project/
composer require atk14/sluggish-router

Testing

composer update --dev
cd test
../vendor/bin/run_unit_tests

Licence

SluggishRouter is free software distributed under the terms of the MIT license

统计信息

  • 总下载量: 32.58k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-12-14