Skip to content

WordPress Plugin Development with Vite, Blade and Dependency Injection. πŸš€

License

Notifications You must be signed in to change notification settings

devsroutes/modulespress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ModulesPress Logo

Total Downloads Latest Stable Version NPM Version License Discord

ModulesPress is a modern WordPress plugin development framework that brings the power of TypeScript, React, and NestJS-style architecture to WordPress development.


🌟 Overview

ModulesPress supercharges your WordPress plugin development by introducing modern development practices and powerful features that make building complex plugins a breeze.

✨ Key Features

  • πŸ“‚ PSR-4 Autoloader - All classes are loaded by default
  • 🎯 Modern Architecture - NestJS-inspired modular design
  • ⚑ Vite Integration - Bundling and hot reloading of assets
  • 🎨 Blade Templates - Elegant templating with Laravel's Blade
  • πŸš€ TypeScript & React - First-class support for modern frontend
  • πŸ› οΈ PHP 8+ Attributes - Use decorators for clean, declarative code
  • 🎭 Dependency Injection - Powerful IoC container
  • πŸ”Œ Plugin Framework - Built specifically for WordPress plugins
  • πŸ”„ Hot Module Replacement - Instant feedback during development

πŸ“Ή ModulesPress Video Guide

Discover how to get started with ModulesPress. This video walks you through installation, setup, and plugin packaging using the powerful ModulesPress framework and CLI.

πŸš€ Quick Start

Installation

composer global require modulespress/cli

Note: Make sure the composer global bin directory is in your PATH.

After installation, you can access the CLI using either modulespress or mp in your terminal.

Documentation

For comprehensive documentation and guides, visit our Official Documentation.

🎯 Framework Philosophy

ModulesPress is built on these core principles:

  1. Modern Development: Embrace contemporary development practices
  2. Developer Experience: Provide excellent tooling and debugging
  3. Type Safety: Leverage TypeScript and PHP 8+ features
  4. Performance: Optimize for production environments
  5. WordPress Integration: Seamless WordPress compatibility

πŸ“ Example Usage

Here's a simple example of a ModulesPress plugin:

/**
 * Plugin Name: My Awesome Plugin
 * Description: Built with ModulesPress
 * Version: 1.0.0
 */

use MyPlugin\Modules\RootModule\RootModule; 
use ModulesPress\Foundation\ModulesPressPlugin;

if (!defined('ABSPATH')) exit;

final class MyAwesomePlugin extends ModulesPressPlugin {
   
    public const NAME = "My ModulesPress Plugin";
    public const SLUG = "my-modulespress-plugin";

    public function __construct() {
        parent::__construct(
            rootModule: RootModule::class,
            rootDir: __DIR__,
            rootFile: __FILE__
        );
    }

}

(new MyAwesomePlugin())->bootstrap();

🀝 Contributing

We welcome contributions! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License.

🌐 Community

Join our Discord community for support and discussions.

πŸ“š Documentation

For detailed documentation, please visit our Wiki.

🀝 Support

If you need help or have questions:

πŸ™ Acknowledgments

Thanks to all our contributors and the open source community!