Twill capsules are modules that are packaged with other functionality. They can be used to improve your projects code organization, they can be part of packages or your own code base.
You can even distribute capsules using GitHub.
You can find some capsules on the Awesome Twill repository.
Alternatively, you can search by the
twill-package tags on GitHub.
To install an existing capsule that is hosted on GitHub, for example the Twill redirections capsule we can run the following command:
1php artisan twill:capsule:install
There are a few important arguments we can use:
--copymakes a copy into your
--requireuses composer require to include the capsule
The strategy to apply depends on your project. If you wish to make project specific changes to the capsule you should use the
--copy method. Otherwise, if you are fine with how the capsule is,
--require will do the trick.
So the full command to install the redirections capsule and copy it would be:
1php artisan twill:capsule:install area17/twill-capsule-redirections --copy --branch=main
--main because at the time of writing the is not yet a release made for this capsule. Usually this is not needed.
Once you have done that, we still need to add the capsule to our
config/twill-navigation.php and enable it from our
The exact setup might vary from capsule to capsule, so best is to always check the capsule you are working with to see if they provide a readme.
config/twill.php, tip: if you need to know the name, you can check the folder name in
1<?php23return [4 'capsules' => [5 'list' => [6 [7 'name' => 'Redirections',8 'enabled' => true,9 ],10 ],11 ],12 ...13];
1return [2 'redirections' => [3 'title' => 'Redirections',4 'module' => true,5 ],6];
After this, make sure you run your migrations
php artisan migrate and you should be good to go. Visit your Twill admin and the redirects module should be in the menu.
Before you dive into creating a capsule for your project, it is important to first decide whether you want to redistribute it or if it is a project local way of organizing the code.
If you plan on redistributing, please head to the packages documentation as that is the new and preferred way to distribute Twill "plugins".
If you do not need to distribute, read along!
A capsule can be bootstrapped using the command
php artisan twill:make:capsule, it accepts the same arguments as the module cli generator, if no arguments are passed it will ask during generation with the exception of
--singleton which can be added if you want it to be a singleton module
1php artisan twill:make:capsule Comment
Once the capsule is created, the cli output will tell you, similar to the above, what to add to your
1<?php23return [4 'capsules' => [5 'list' => [6 [7 'name' => 'Comments',8 'enabled' => true,9 ],10 ],11 ],12 ...13];
1return [2 'comments' => [3 'title' => 'Comments',4 'module' => true,5 ],6];
Now that the capsule is generated, you can go and modify the contents of
app/Twill/Capsules/Comments to the needs of your project!