Skip to content
Julien MA Jacob edited this page Oct 22, 2018 · 2 revisions

File

Create a new file named like your service (exemple : my-template.php) in inc/services folder.

<?php

namespace Beapi\Theme\Theme_Name\Services;

use Beapi\Theme\Theme_Name\Service;
use Beapi\Theme\Theme_Name\Service_Container;


class My_Template implements Service {

	/**
	 * @param Service_Container $container
	 */
	public function register( Service_Container $container ) {
	}

	/**
	 * @param Service_Container $container
	 */
	public function boot( Service_Container $container ) {

	}

	public function hello() {
		echo 'hello';
	}

	/**
	 * @return string
	 */
	public function get_service_name() {
		return 'my-template';
	}

}

Register the service

Open and edit the inc/framwork.php file

/**
 * @var $services
 */
protected static $services = [
	// Services
	\Beapi\Theme\Theme_Name\Services\Theme::class,
	\Beapi\Theme\Theme_Name\Services\Assets::class,
	\Beapi\Theme\Theme_Name\Services\Assets_CSS_Async::class,
	\Beapi\Theme\Theme_Name\Services\Assets_JS_Async::class,
	\Beapi\Theme\Theme_Name\Services\SVG::class,
	\Beapi\Theme\Theme_Name\Services\Favicons::class,
	\Beapi\Theme\Theme_Name\Services\Acf::class,
	\Beapi\Theme\Theme_Name\Services\Sidebar::class,
	\Beapi\Theme\Theme_Name\Services\Menu::class,

	// Services as Tools
	\Beapi\Theme\Theme_Name\Tools\Body_Class::class,
	\Beapi\Theme\Theme_Name\Tools\Template_Parts::class,

	// Custom services
	\Beapi\Theme\Theme_Name\Services\Template::class,
];

Usage

<?php
$template = \Beapi\Theme\Purch_Uas\Framework::get_container()->get_service( 'my-template' );
$template->hello();
?>
Clone this wiki locally