¿Cómo se configura Codeigniter para manejar múltiples proyectos con una base ci compartida?

StackOverflow https://stackoverflow.com/questions/1540283

  •  20-09-2019
  •  | 
  •  

Pregunta

He visto varios ejemplos de implementación de CI que afirman que puedes colocar carpetas de proyectos en la carpeta "aplicaciones" de Codeigniter.

Sin embargo, no he podido ver este trabajo como se prometió.

Esto es lo que he hecho y lo que me gustaría hacer; tal vez puedas ayudarme.Por el bien del argumento, la raíz de mi documento es /www/ (no lo es, pero usémosla por simplicidad)

Puse el núcleo de Codeigniter en /www/corelib/codeigniter

Puse la carpeta del sistema codeigniter en /www/ci_system

He puesto el directorio de aplicaciones en /www/applications

Puse mi "punto de entrada" en /www/dd

Ahora digamos que tengo dos proyectos:"entrada de datos" y "cpanel"

La idea es que puedo ir a

h**p://mydomain/dd/dataentry // para la aplicación de entrada de datos y

h**p://midominio/dd/cpanel // para la aplicación cpanel.

SI organizo los directorios de entrada de datos y cpanel de esta manera:

/www/aplicaciones/controladores/entrada de datos

/www/aplicaciones/controladores/cpanel

/www/aplicaciones/modelos/entrada de datos

/www/aplicaciones/modelos/cpanel

/www/aplicaciones/vistas/entrada de datos

/www/aplicaciones/vistas/cpanel

Puedo hacer que esto funcione bien.Sin embargo, lo que me gustaría hacer es mantener el modelo y la vista al mismo nivel que el controlador para tener lo siguiente:

/www/aplicaciones/entrada de datos/controladores

/www/aplicaciones/entrada de datos/modelos

/www/aplicaciones/entrada de datos/vistas

/www/aplicaciones/cpanel/controladores

/www/aplicaciones/cpanel/modelos

/www/aplicaciones/cpanel/views

Parece que esto no funciona.

¿Alguna sugerencia?

-CF

¿Fue útil?

Solución 2

Bien - Tengo este trabajo si lo deseas. Voy a tratar de escribir una más extensa de "cómo hacer" y proporcionará un enlace en la sección de comentarios.

Yo no tenía que modificar .htaccess ya que requiere CI - Yo estaba feliz por eso. Mi entrada de directorio siguiente aspecto:

/dd/index.php

Las dos piezas clave son aquí:

list($blank, $webpath, $app) = explode('/', $_SERVER['REQUEST_URI']);
        $application_folder = $_SERVER['DOCUMENT_ROOT]."/applications/$app";

Esto permite que un solo index.php para manejar todas las aplicaciones.

La parte que me faltaba es que appName ahora debe también ser el controlador primario o ser un directorio dentro de los controladores. (El verdadero problema que tuve fue que me piratería, por lo tanto que tuve configuraciones y rutas que me impide darse cuenta de lo que estaba viendo en realidad:. A veces a partir limpia es imprescindible)

Otros consejos

¿Tiene cada aplicación ( "entrada de datos" y "cpanel") tienen su propio archivo index.php principal que define la variable $ application_folder apropiado?

También - y estoy seguro de que usted ha leído los documentos - pero documentación de CodeIgniter indica que el directorio / aplicaciones (o directorios, en su caso) deben existir en el directorio / sistema de la siguiente manera:

system/application/foo/
system/application/foo/config/
system/application/foo/controllers/
system/application/foo/errors/
system/application/foo/libraries/
system/application/foo/models/
system/application/foo/views/
system/application/bar/
system/application/bar/config/
system/application/bar/controllers/
system/application/bar/errors/
system/application/bar/libraries/
system/application/bar/models/
system/application/bar/views/
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top