Closed virla01 closed 6 years ago
Hola, según entiendo tendrías tus aplicaciones algo como esto ?
localhost/app1 localhost/app2
Es decir, lo que quieres es que el primer paramentro identifique tu aplicación, imagino que para evitar duplicar simplemente todo el framework por cada aplicación ?
no, estarian dentro de app ahi dentro las carpetas de las aplicaciones
en router agregue esto ` private $apli = null;
private $routes = array(
'/apli' => 'none',
'/controller' => 'alphanumeric',
'/method' => 'none',
'/id' => 'int'
);
if(!empty($this->url) and $this->url != $this->dir) {
$this->url = explode('/',$this->url);
$this->apli = array_key_exists(0,$this->url) ? $this->url[0] : null;
$this->controller = Strings::alphanumeric($this->url[1]) ? strtolower( $this->url[1] ) . 'Controller' : 'inicioController';
$this->method = array_key_exists(2,$this->url) ? $this->url[2] : null;
$this->id = array_key_exists(3,$this->url) ? $this->url[3] : null;
} else {
$this->controller = 'inicioController';
}
public function getApli() : string {
return trim($this->apli);
}
` con esto funciona, ahora solo me queda solucionar el tema de los modelos
Quieres que en "aplicacion/controlador/metodo/id", "aplicacion" cambie en la URL y según eso cargue una u otra carpeta en el sistema que contenga internamente controladores y modelos?
si lo de los controladores ya funciona, donde ahora tengo el problema es con los modelos. mas que nada con aquellos como func login session que los tengo dentro de app/moldels. hice un if para diferenciar, pero no funciona bien ` $apli = $router->getApli();
if ($apli == ""){
$model = ROOT_DIR . 'app/models/'. $model .'.php';
if(is_readable($model)) {
require_once($model);
}
}else{
$model = ROOT_DIR . 'app/'. $apli .'/models/'. $model .'.php';
if(is_readable($model)) {
require_once($model);
}
}`
alguna idea de como solucionar esto?
Quiero poner las aplicaciones dentro de carpetas separadas, como ejemplo tengo una aplicación para articulos, y en esa carpeta tengo la carpeta controller y dentro de esa carpeta tengo todos los controladores de esa aplicación, y tambien la carpeta models con sus archivos correspondientes. ejemplo:
app/
|articulos/ |controllers/ articuloController.php categoriaController.php tagsController.php |models/ articulos.php categoria.php tags.php
Como puedo hacer para que el router me detecte el articulo y después el controlador? ahora tu router obtiene controlador/metodo/id, y yo quisiera aplicacion/controlador/metodo/id, y para los archivos de sistema normal deberia funcionar como estan ahora