| Server IP : 47.82.179.145 / Your IP : 216.73.217.129 Web Server : nginx/1.26.3 System : Linux iZt4n9czhka2zvqfajdlr2Z 6.8.0-63-generic #66-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 13 20:25:30 UTC 2025 x86_64 User : www ( 1001) PHP Version : 8.3.30 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/scuipturepactory.com/wp-content/themes/colibri-wp/inc/src/ |
Upload File : |
<?php
namespace ColibriWP\Theme;
use ColibriWP\Theme\Core\ComponentInterface;
use ColibriWP\Theme\Core\Hooks;
class ComponentsRepository {
private $entities = array();
public function load() {
$components = Hooks::colibri_apply_filters( 'components', array() );
foreach ( $components as $key => $class ) {
$this->add( $key, $class );
}
}
/**
* @param $id
*
* @return null|ComponentInterface
*/
private function getInstance( $id ) {
if ( ! $this->entities[ $id ] ['instance'] ) {
$class = $this->entities[ $id ]['class'];
$this->entities[ $id ] = array(
'class' => $this->entities[ $id ]['class'],
'instance' => new $class,
);
}
return $this->entities[ $id ]['instance'];
}
/**
* @param $id
*
* @return ComponentInterface|null
*/
public function getByName( $id ) {
if ( array_key_exists( $id, $this->entities ) ) {
return $this->getInstance( $id );
}
return null;
}
/**
* @return array
*/
public function getAllDefinitions() {
$result = array();
foreach ( $this->entities as $key => $entity ) {
$result[ $key ] = $entity['class'];
}
return $result;
}
/**
* @param $component_name
* @param $class
*/
public function add( $component_name, $class ) {
$this->entities[ $component_name ] = array(
'class' => $class,
'instance' => null,
);
}
}