Skip to content
/ howdy Public template

👋 Build your next modern plugin for WordPress®

License

Notifications You must be signed in to change notification settings

syntatis/howdy

Repository files navigation

👋 Howdy

Caution

This project is still under active development. It's not quite ready for production use yet.

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 with Composer, PHP Code Sniffer (PHPCS), 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

Usage

To start a new plugin project, simply run:

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:

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.

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.

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:init Scopes the plugin dependencies to prevent naming conflicts with other plugins. Typically you'd need to run it after installing a new dependencies or updating the existing ones.
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.

References