Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
06
/
wp-content
/
plugins
/
the-events-calendar
/
common
/
src
/
Common
/
Provider
:
Controller.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * The base class all Controllers should extend. * * @since 5.0.17 * * @package TEC\Common\Provider; */ namespace TEC\Common\Provider; use tad_DI52_ServiceProvider as Service_Provider; use TEC\Common\StellarWP\ContainerContract\ContainerInterface; use Tribe__Log as Log; /** * Class Controller. * * @since 5.0.17 * * @package TEC\Common\Provider; * * @property ContainerInterface $container */ abstract class Controller extends Service_Provider { /** * Registers the filters and actions hooks added by the controller if the controller has not registered yet. * * @since 5.0.17 * * @return void */ public function register() { /* * Look up and set the value in the container request cache to allow building the same Controller * with a **different** container. (e.g. in tests). */ if ( static::is_registered() ) { return; } // Register the controller as a singleton in the container. // @todo remove when the Container is updated to bind Providers as singletons by default. $this->container->singleton( static::class, $this ); if ( ! $this->is_active() ) { return; } $this->container->setVar( static::class . '_registered', true ); $this->do_register(); } /** * Registers the filters and actions hooks added by the controller. * * @since 5.0.17 * * @return void */ abstract protected function do_register(): void; /** * Removes the filters and actions hooks added by the controller. * * Bound implementations should not be removed in this method! * * @since 5.0.17 * * @return void Filters and actions hooks added by the controller are be removed. */ abstract public function unregister(): void; /** * Whether the controller is active or not. * * Controllers will be active by default, if that is not the case, the controller should override this method. * * @since 5.0.17 * * @return bool Whether the controller is active or not. */ public function is_active(): bool { return true; } /** * Logs a message at the `debug` level. * * @since 5.0.17 * * @param string $message The message to log. * @param array $context An array of context to log with the message. * * @return void The message is logged. */ protected function debug( string $message, array $context = [] ): void { do_action( 'tribe_log', Log::DEBUG, $message, array_merge( [ 'controller' => static::class, ], $context ) ); } /** * Logs a message at the `warning` level. * * @since 5.0.17 * * @param string $message The message to log. * @param array $context An array of context to log with the message. * * @return void The message is logged. */ protected function warning( string $message, array $context = [] ): void { do_action( 'tribe_log', Log::WARNING, $message, array_merge( [ 'controller' => static::class, ], $context ) ); } /** * Logs a message at the `error` level. * * @since 5.0.17 * * @param string $message The message to log. * @param array $context An array of context to log with the message. * * @return void The message is logged. */ protected function error( string $message, array $context = [] ): void { do_action( 'tribe_log', Log::ERROR, $message, array_merge( [ 'controller' => static::class, ], $context ) ); } /** * Returns whether any instance of this controller has been registered or not. * * @since 5.0.17 * * @return bool Whether any instance of this controller has been registered or not. */ public static function is_registered(): bool { return (bool) tribe()->getVar( static::class . '_registered' ); } }