1
0
Fork 0
mirror of https://github.com/inretio/WordPress-Plugin-Boilerplate synced 2024-04-28 09:23:15 +03:00

moving all bootstrap code into this file, adding some getters for dependencies

setting up this file to fire the plugin so that it's prepared to handle any hooks given to the loader
This commit is contained in:
Tom McFarlin 2014-05-08 23:34:16 -04:00
parent e29a775e76
commit f332130569

View file

@ -24,37 +24,126 @@
class Plugin_Name {
/**
* This class is used to define common functionality that exists between
* both the dashboard and the public-facing side of the website. Think
* of this as a shared class.
*
* If any hooks are defined in this class, then they should be defined
* in their respective Loader classes (that is, Plugin_Name_Admin_Loader
* or Plugin_Name_Public_Loader).
*
* An instance of this class should then be passed to the loader.
* TODO
*/
protected $plugin_slug = 'plugin-name-slug';
protected $version = '1.0.0';
protected $loader;
public function __construct( Plugin_Name_Loader $loader ) {
$this->loader = $loader;
/**
* TODO
*/
protected $plugin_slug;
/**
* TODO
*/
protected $version;
/**
* TODO
*/
public function __construct() {
$this->plugin_slug = 'plugin-name-slug';
$this->version = '1.0.0';
$this->load_dependencies();
$this->set_locale();
$this->define_admin_hooks();
$this->define_public_hooks();
}
/**
* TODO
*/
private function load_dependencies() {
/**
* The class responsible for orchestrating the actions and filters of the
* core plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-plugin-name-loader.php';
/**
* The class responsible for defining internationalization functionality
* of the plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-plugin-name-i18n.php';
/**
* The class responsible for defining all actions that occur in the Dashboard.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-plugin-name-admin.php';
/**
* The class responsible for defining all actions that occur in the public-facing
* side of the site.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-plugin-name-public.php';
$this->loader = new Plugin_Name_Loader();
}
/**
* TODO
*/
private function set_locale() {
$plugin_i18n = new Plugin_Name_i18n();
$plugin_i18n->set_domain( $this->get_slug() );
$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
}
/**
* TODO
*/
private function define_admin_hooks() {
$plugin_admin = new Plugin_Name_Admin( $this->get_version() );
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
}
/**
* TODO
*/
private function define_public_hooks() {
$plugin_public = new Plugin_Name_Public( $this->get_version() );
$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' );
$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
}
/**
* TODO
*/
public function run() {
$this->loader->run();
}
public function get_version() {
return $this->version;
}
/**
* TODO
*/
public function get_slug() {
return $this->plugin_slug;
}
/**
* TODO
*/
public function get_loader() {
return $this->loader;
}
/**
* TODO
*/
public function get_version() {
return $this->version;
}
}