Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/syntatis/howdy
đź‘‹ Your next WordPress plugin project
https://github.com/syntatis/howdy
blocks composer-project php-scoper phpcs wordpress wordpress-plugin-boilerplate wp-scripts
Last synced: 3 months ago
JSON representation
đź‘‹ Your next WordPress plugin project
- Host: GitHub
- URL: https://github.com/syntatis/howdy
- Owner: syntatis
- License: gpl-3.0
- Created: 2024-09-19T01:12:40.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-10-22T01:37:27.000Z (3 months ago)
- Last Synced: 2024-10-23T02:10:37.503Z (3 months ago)
- Topics: blocks, composer-project, php-scoper, phpcs, wordpress, wordpress-plugin-boilerplate, wp-scripts
- Language: PHP
- Homepage:
- Size: 169 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# đź‘‹ Howdy
> [!NOTE]
> The project is now in beta and ready for testing. We'd love to hear your input, so feel free to report any issues or suggest enhancements.**Howdy** is a starter kit for creating WordPress plugins. It provides a boilerplate structure with pre-configured tools to help you start developing plugins using modern PHP practices like [PSR-4 Autoloading](https://www.php-fig.org/psr/psr-4/) with [Composer](https://getcomposer.org), [PHP Code Sniffer (PHPCS)](https://github.com/PHPCSStandards/PHP_CodeSniffer), namespaces, and Dependency Injection (DI) Containers—without the hassle of setting everything up from scratch.
## Requirements
- PHP 7.4 or higher
- Node.js 18 or higher
- [Composer](https://getcomposer.org)## Usage
To start a new plugin project, simply run:
```bash
composer create-project syntatis/howdy -s dev
```This command will set up the boilerplate files in a directory named `howdy`. It will ask you a few questions to customize your project, like the plugin slug, name, and the PHP namespaces.
Once you've input all these details, it will scope the plugin dependency libraries to prevent naming conflicts with other plugins which may also be using the same libraries. You can find the scoped dependencies in the `dist/autoload` directory.
> [!TIP]
> Want to create the project in a different folder? Just add the directory name at the end of the command, like this:
> ```bash
> composer create-project syntatis/howdy -s dev awesome-plugin
> ```
> This will create the project in the `awesome-plugin` directory.
> For more details, check out the [Composer CLI documentation](https://getcomposer.org/doc/03-cli.md#create-project).After the project setup is complete, run the following command within your plugin directory to start compiling the assets, like the stylesheets and the JavaScript files. It will also watch for the changes within the files and recompile them automatically.
```bash
npm install
npm run start
```## Commands
Commands are available to help you with the development process. You can run these commands from the root of your plugin directory.
Command
Description
composer scoper
Scopes the plugin Composer dependencies to prevent namespace conflicts with other plugins.
composer build
Run the plugin build process for production i.e. updating the translation POT file, and prefixing namespace.
npm run start
Compiles the assets, like the stylesheets and the JavaScript files, and watches for the changes within the files to recompile them automatically.
npm run build
Builds the assets for production. It compiles the assets, like the stylesheets and the JavaScript files, and minifies them for production use.
composer plugin:zip
Creates a zip file of the plugin for distribution.
## Plugins
Some plugins that are built using Howdy:
- 🚦 [Feature Flipper](https://wordpress.org/plugins/syntatis-feature-flipper/): Easily switch some features in WordPress, on and off.
## References
- [WordPress Plugin Handbook](https://developer.wordpress.org/plugins/) for plugin guidelines.
- [WordPress Plugin Boilerplate](https://github.com/DevinVinson/WordPress-Plugin-Boilerplate) for inspiration.