app = $app; $this->register(); } private function register() { foreach ($this->getClasses() as $key => $class) { $this->app->singleton($this->key($key), function($app) use ($class) { return new FCApi($app->make($class)); }); } } private function getClasses() { return require_once( $this->app['path.app'].'Api/config.php' ); } private function key($key) { return '__fluentcrm_api__.' . $key; } public function __get($key) { try { return $this->app[$this->key($key)]; } catch(\Exception $e) { /* translators: %s: requested FluentCRM API module key */ throw new \Exception(sprintf(esc_html__("The '%s' doesn't exist in FluentCrmApi.", 'fluent-crm'), esc_html($key))); } } }