The Pestle is a new PHP (5.6+) framework for creating and organizing PHP programs into Python like libraries of functions. Currently, Pestle has commands for generating a new module, a new route, a new view/block/layout for that route and many more.
Installing on Linux
- PHP 5.6+
$ curl -LO http://pestle.pulsestorm.net/pestle.phar
- After download give it an exccute permission
$ sudo chmod +x pestle.phar
- Now move it to /usr/local/bin/
$ sudo mv pestle.phar /usr/local/bin/pestle.phar
- Now use command
$ pestle.phar version. You will able to see the current installed version of Pestle.
pestle Ver 1.4.3
Creating a Basic Module
If you’ve worked on a custom module, you know creating a basic Magento module is straightforward, but it involves many different files. Pestle can handle that boring and repetitive work of creating those files for you.
The first step of a custom module is to create module.xml and registration.php file. To create these file run the following command.
$ pestle.phar generate_module
Then enable it using the following command
$ php bin/magento module:enable Ezest_HelloWorld
$ php bin/magento setup:upgrade
Adding the Route & Index Action
The next step of creating a Magento module is adding a route.
$ pestle.phar generate_route
Adding a Frontend View Files
Now we need to add Magento’s default view files, like XML file, phtml template, and default block/view class.
$ pestle.phar generate_view
After running the above command, clear your cache and reload the page. You should see your view’s content.
Simple Yet Powerful Commands
It is possible to specify any input as a command argument. What this means is that you could recreate the above module with just three simple commands.
$ pestle.phar generate_module Ezest HelloWorld 0.0.1
$ pestle.phar generate_route Ezest_HelloWorld frontend hello_world
$ pestle.phar generate_view Ezest_HelloWorld frontend hello_world_index_index Main content.phtml
These above commands will automatically create the required files and folder structure, as shown in below image.
Hope this helps you to reduce the manual work of creating files of your custom module using Pestle.