- Introduce `recipe/codeigniter4.php` with default configurations and tasks.
- Define shared directories and files, writable directories, and log files.
- Implement `spark` function to run CodeIgniter 4 commands with various options.
- Add tasks for cache, config, environment, filters, language, namespaces, php.ini, routes, encryption key generation, optimization, publishing, database operations, and housekeeping.
- Include a main deploy task that prepares, installs vendors, optimizes, migrates, and publishes the project.
Inspire from laravel recipe.
Closes#3877
* Set default `public_path` config for laravel
* Remove config printouts
* Conditionally ask for DB configuration values
* Add confirmation for provision on incompatible OS
* Set default PHP version from composer.json
* Regenerate docs using php bin/docgen
* Hotfix: Fixed file read error in website.php
Moved the directory creation and ownership setting code before the file read operation to prevent the file read error.
* Hotfix: Adjusted Caddyfile path and ensured its inclusion in build
* Regenerate docs using php bin/docgen
* fix typo in magento recipe
* process the correct theme names and add -f switch here as well
* run docgen
* commit the other changed doc files after running bin/docgen
* Revert "commit the other changed doc files after running bin/docgen"
This reverts commit e0d1c2b7ca23ecec2390fc4f83f9e1a96094e1d3.
* Changed step to upgrade the DB only instead of Magento and execute it once if multiple servers are selected for the deployment
* Bugfix: Added once() to task instead of run commando. Regenerated docs.
* Improvement: Changed documentation to reflect that the database step is only executed once.
Refactoring the `getPlugins` function to not parse regular commandline
output anymore, instead use the --json flag `plugin:list`.
Refactoring 'sw:plugin:update:all' to not upgrade every installed
plugin, but every installed plugin that in fact is upgradable.
* escape shell argument depending on target operating system
* only escape unix style
* add some basic tests
* use json_encode in test
* correctly escape single quotes on the Linux command line