php - subir - Crear una versión móvil para mi aplicación web en CodeIgniter
subir imagen con retrofit (2)
Si realmente necesita 2 aplicaciones independientes, puede configurar esto con una o dos modificaciones principales de codeigniter, dependiendo de si está usando PHP4 o 5.
Lo hemos hecho siguiendo la página wiki de este CI y funciona muy bien, compartimos modelos, bibliotecas, configuración. Básicamente tienes una organización de proyectos como esta:
/application/
/common/<similar to application directory, but used for shared libs/helper/models/configs files>
/frontend/<similar to application directory>
/backend/<similar to application directory>
/system/
Al anular los cargadores, puede implementar la prioridad de carga si la misma lib / config está presente para las clases comunes o específicas de la aplicación). También puede mover todo el código común (controladores, clase de enrutamiento específica, etc.) y solo mantener sobrecargas específicas de la aplicación en sus aplicaciones.
Al final tienes dos Front Controllers (en su mayoría idénticos al archivo index.php) uno para cada aplicación, y puedes filtrarlos con la reescritura de la URL, el subdominio específico, etc.
Si se dirige a servidores que ejecutan PHP4, abrí este hilo en los foros de codeigniter para ver qué cambiar en las clases principales para que funcione (sin modificaciones hay un problema de carga)
Otra alternativa viable, pero aún no la he usado, es usar la organización HMVC
Estoy usando CodeIgniter para desarrollar una nueva aplicación web, y me gustaría crear una versión móvil a la que los usuarios vuelvan a dirigir cuando lo visiten desde sus teléfonos.
La versión móvil de la aplicación debe tener un flujo diferente, así que intercambiar archivos CSS / HTML en el código no es una opción para mí, ya que la versión móvil y la versión web manejarán las cosas de manera diferente en sus Controladores y Vistas, mientras comparten los mismos Modelos .
De todos modos, ¿cómo podría hacer esto de manera eficiente?
Su ayuda es muy apreciada. :)
Solución (a):
- Compruebe en un controlador global si el usuario usa un móvil o un cliente de escritorio
- Cargue los controladores según la versión del cliente (controller_default.php / controller_mobile.php)
- Haz todas las cosas específicas del cliente dos veces
- Las vistas se pueden almacenar en diferentes carpetas
Nota: (a) se vuelve complicado si su aplicación crece con el tiempo.
Solución (b):
- Modifique index.php para cargar diferentes carpetas de aplicaciones en función del cliente utilizado
- Almacene sus modelos / configs / libs en una carpeta compartida
Cualquiera de las modificaciones requeridas anteriormente (¿extensiva?) Del marco de CI. Intente hacer todo lo posible sobrescribiendo las clases existentes (MY_Controller, etc.) para poder actualizarlas más adelante.