justintadlock/hybrid-core

Hybrid Core: A framework for developing modern WordPress plugins and themes.

6.0.0 2021-08-01 18:21 UTC

README

Hybrid Core is a framework for developing WordPress plugins and themes.

The core package is the application layer that primarily consists of a service container. It can be used alone or alongside any of the available Hybrid packages.

The framework simplifies many of the complexities of WordPress development and helps you write more modern PHP code. Its goal is to provide elegant functions, classes, and interfaces for writing code without the need to rebuild everything from scratch with each project.

Requirements

  • WordPress 5.7+
  • PHP 7.0+
  • Composer 2.0+

Donations

Hybrid Core is free. However, donations to the project are also welcome.

Documentation

The documentation is handled via Hybrid Core's wiki. This is community-contributed documentation that I hope you will add to if you use the framework.

Installation

Use the following command from your preferred command line utility to install the package.

composer require themehybrid/hybrid-core

If bundling this directly in your plugin, add the following code.

For plugins:

if ( file_exists( 'vendor/autoload.php' ) ) {
        require_once 'vendor/autoload.php';
}

For themes:

if ( file_exists( get_parent_theme_file_path( 'vendor/autoload.php' ) ) ) {
	require_once( get_parent_theme_file_path( 'vendor/autoload.php' ) );
}

Bootstrapping Hybrid Core

Hybrid Core isn't launched until an instance of its Hybrid\Core\Application class is created and its boot() method has been called.

Because the Application class can be called multiple times via both plugins and themes, developers need to check the Hybrid\booted() function before attempting to create a new app. If one exists, they should use the existing instance via the Hybrid\app() helper function.

// Create a new application.
$slug = \Hybrid\booted() ? \Hybrid\app() : new \Hybrid\Core\Application();

// Add service providers.
$slug->provider( \YourProject\Provider::class );

// Bootstrap the application.
$slug->boot();

Copyright and License

This project is licensed under the GNU GPL, version 2 or later.

2008 – 2021 © Justin Tadlock.