bnomei/kirby3-bolt

This package is abandoned and no longer maintained. No replacement package was suggested.

Kirby 3 Plugin for a fast Page lookup even in big content trees

1.2.4 2021-09-15 21:30 UTC

README


Mainly intended to be used with now deprecated AutoID plugin. Use my Boost plugin instead since that inherited lots of Bolts logic.
 

Kirby 3 Bolt

Release Build Status Coverage Status Maintainability Twitter

Kirby 3 Plugin for a fast Page lookup even in big content trees

Commercial Usage


Support open source!

This plugin is free but if you use it in a commercial project please consider to sponsor me or make a donation.
If my work helped you to make some cash it seems fair to me that I might get a little reward as well, right?

Be kind. Share a little. Thanks.

‐ Bruno
 
M O N E Y
Github sponsor Patreon Buy Me a Coffee Paypal dontation Hire me

Installation

  • unzip master.zip as folder site/plugins/kirby3-bolt or
  • git submodule add https://github.com/bnomei/kirby3-bolt.git site/plugins/kirby3-bolt or
  • composer require bnomei/kirby3-bolt

Why is Bolt faster and how much?

Because it does not scan each directory and file but skips as many of them as possible. Once you use the Page-Object in your code Kirby will lazily load uninitalized properties.

How much is gained depends on how many have been skipped. You can in average expect it to be n-times faster by the average folder count in your content tree. Example: 1000 pages in 10 folders 3 levels deep: 10*10*10. If you need a page from the third level Kirby would have to create a page index of 10+10+10=30 pages but Bolt will create only 3.

Usage

// lets assume 1000 pages: 10*10*10
$id = 'this-page-has/ten-siblings/in-every-subfolder';
$page = page($id); // kirby core
$page = bolt($id); // ~10x faster lookup

// can lookup beginning at a certain page as well
$page = $somePage->bolt($idInTree);

// it's even faster when you look up based on a directory name
$page = bolt('1_this-page-has/5_ten-siblings/3_in-every-subfolder');

Works great with

Alternative

Related Plugins

Disclaimer

This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.

License

MIT

It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.

Credits

based on idea in