/** * Importa ya sea modelos o vistas de la App en ejecución o * de otra. * * Para llamar modelos de otra aplicación. * * $this->import('model', 'otra_app.modelo'); * * Importar vistas de otras apps o de la misma. * * De la misma aplicación: * * $this->import('view', 'mi_vista'); * * Desde otra aplicación: * * $this->import('view', 'otra_app.mi_vista'); * * @param string $type * @param string $toImport */ public function import($type, $toImport) { $pathToImport = ''; $import = ''; // Valida si se esta importando de la misma App o de otra if (!strstr($toImport, '.')) { $pathToImport = App::getInstance()->getAppName(); } else { $importSegments = explode('.', $toImport); // Valida que la aplicación este cargada. if (App::getInstance()->exists($importSegments[0])) { $pathToImport = $importSegments[0]; $import = $importSegments[1]; } else { throw new ViewException("Error importing ({$type}) from ({$toImport})."); } } // Valida el tipo de objeto a importar if ($type === 'model') { $pathToImport .= 'models/' . $import; } elseif ($type === 'view') { $pathToImport .= 'views/' . $import; } else { throw new ViewException("Imported object type ({$type}) is invalid."); } Setup::importFromApp($pathToImport); }
/** * Obtiene el nombre registrado del componente o una instancia de el. * * @return mixed */ protected static function getComponent() { return \ForeverPHP\Core\App::getInstance(); }