PHPackages                             lukaskleinschmidt/kirby-resolve - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. lukaskleinschmidt/kirby-resolve

ActiveKirby-plugin[Utility &amp; Helpers](/categories/utility)

lukaskleinschmidt/kirby-resolve
===============================

Kirby Resolve

1.0.2(6y ago)272501MITPHP

Since Mar 23Pushed 6y ago1 watchersCompare

[ Source](https://github.com/lukaskleinschmidt/kirby-resolve)[ Packagist](https://packagist.org/packages/lukaskleinschmidt/kirby-resolve)[ RSS](/packages/lukaskleinschmidt-kirby-resolve/feed)WikiDiscussions master Synced today

READMEChangelog (3)Dependencies (1)Versions (4)Used By (0)

Kirby Resolve
=============

[](#kirby-resolve)

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

Commercial Usage
----------------

[](#commercial-usage)

This plugin is free. Please consider to [make a donation](https://www.paypal.me/lukaskleinschmidt/5eur) if you use it in a commercial project.

How and why does it work?
-------------------------

[](#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](https://getkirby.com/docs/guide/cache#caching-pages) 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.

```
