Simplify the creation of PrestaShop modules unleashing the power of PHP packages without worrying about the package version.
- Create a new module using this boilerplate. We suggest to use PHP 7.3 (this was the maximum version before PrestaShop 8)
composer create-project dartmoon/prestashop-module yourmodulenameThis will trigger the customization command: just answer the questions!
For the module name we suggest not to use hyphens or other other "word-delimiting" characters.
- Install the module inside PrestaShop (execute the following command from the root of your PrestaShop installation)
php bin/console prestashop:module install yourmodulenameDone!
Write your module as you would have done before!
Nothing different from what you usually do!
composer require namespace/packageAfter the installation is completed the prefixing process will start. It will scan the vendor directory and prefix all classed with the prefix you configured inside the composer.json file.
Keep in mind that not all packages work well after they have been prefixed (even if the majority of them will), for this reason you can follow the next step and decide to exlude some folders from the prefixing process.
If your installed package does not work well once prefixed you can exclude it from the prefixing process.
To do so you need to edit the file scooper.inc.php.
Behind the scenes we are using PHP-Scoper, so you can follow their documentation for configuration.
Once you have completed your package, it's time to build it.
To do so you just need to execute
composer build-moduleThe building process will create a zip file inside the root of your module with all the production code. That is your compiled module.
Inside the root of your module, you will find a file called copyright.txt which contains the copyright notice to apply in the header of each file of your module.
To change it, simply edit that file.
Sometimes you have some development files inside your module that you don't want to include in the build. To exclude them you can simply use edit the excludes.txt file.
We already compiled it with some sensible default values!
This project is licensed under the MIT License - see the LICENSE.md file for details