承接 lukaskleinschmidt/kirby-resolve 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

lukaskleinschmidt/kirby-resolve

Composer 安装命令:

composer require lukaskleinschmidt/kirby-resolve

包简介

Kirby Resolve

README 文档

README

Fast page routing even for large content structures or multi language sites.

Commercial Usage

This plugin is free. Please consider to make a donation if you use it in a commercial project.

How and why does it work?

Lets imagine the following content structure.

.
├─ 📁 1_photography
│  ├─ 📁 1_sky
│  ├─ 📁 2_ocean
│  ├─ 📁 3_desert
│  ├─ 📁 4_mountains
│  ├─ 📁 5_waterfall
│  ├─ 📁 6_plants
│  └─ 📁 7_landscape
│     ├─ 📄 album.de.txt # Slug: landschaft
│     └─ 📄 album.en.txt
├─ 📁 2_about
├─ 📁 3_contact
├─ 📁 error
└─ 📁 home

To be able to resolve photography/landscape Kirby needs to index all subfolders in the 1_photography directory to find the correct folder 📁 1_photography/7_landscape. This is not a big deal for small sites but the time needed will inevitably increase over time as you add more subpages. This gets worse on multi language websites because, in addition to indexing directories, Kirby also has to check the slugs stored in the content files.

This plugin caches the request by mapping the requested path to the resolved page. By creating the page object from a directory we can skip all the previously needed indexing.

{
    "photography/landscape": {
        "dir": "1_photography/7_landscape",
        "lang": "en",
    },
    "de/fotografie/landschaft": {
        "dir": "1_photography/7_landscape",
        "lang": "de",
    }
}

Of course the performance gain depends on your content structure and if you have multiple languages or not.

❕ This plugin only reduces the time needed to resolve the initial requested page

That said, it won't speed up anything you do in your templates. So I highly recommend using the default pages cache in addition to this plugin to get the best results!

Following hooks will flush the cache:

  • page.changeNum:before
  • page.changeSlug:before
  • page.changeStatus:before

You can also disable the plugin in your config.

<?php

return [
    'lukaskleinschmidt.resolve.cache' => false,
];

Caveats

  • It does not work for all root pages. Have a look at the isResolvable function if you want to know the conditions.

Installation

Download

Download and copy this repository to /site/plugins/resolve.

Git submodule

git submodule add https://github.com/lukaskleinschmidt/kirby-resolve.git site/plugins/resolve

Composer

composer require lukaskleinschmidt/kirby-resolve

License

MIT

Credits

统计信息

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

GitHub 信息

  • Stars: 27
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-03-19

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固