Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

ZF -> Duda Multiples aplicaciones VS un solo servidor

Estas en el tema de ZF -> Duda Multiples aplicaciones VS un solo servidor en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos. Desde que comenzé mirandome esto de ZF me planteé esta duda... y nunca la pregunté pensando ke me iban a tirar piedras a ...
  #1 (permalink)  
Antiguo 02/01/2009, 15:40
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 16 años, 4 meses
Puntos: 1
ZF -> Duda Multiples aplicaciones VS un solo servidor

Hola amigos.

Desde que comenzé mirandome esto de ZF me planteé esta duda... y nunca la pregunté pensando ke me iban a tirar piedras a la cabeza jaja !! ^^

En quickstart y reference guide siempre hacen una estructura similar al primer ejemplo... y en tutoriales a veces parten del segundo:

Cita:
O así: ( app y library detrás de document_root )
/ (Server root)
/application
/library
/public ( Document root )
/public/index.php
/public/.htaccess

O así: ( Todo a partir de document_root )
/public ( Document root )
/public/application
/public/library
/public/index.php
/public/.htaccess
De todas formas, con esta organización solo podemos cargar una aplicación por hosting no ? ( la que cargue el index.php )

¿ Como hacemos entonces para poder cargar varias aplicaciones en un mismo hosting ? Yo pensé en algo así:

Cita:
Así: ( app y library detrás de document_root )
/ (Server root)
/nombre_aplicacion
/library
/public ( Document root )
/public/zf/nombre_aplicacion/index.php
/public/zf/nombre_aplicacion/.htaccess
De forma que o haces... http://127.0.0.1/zf/nombre_aplicacion o creas un virtual host para que equis dominio "www.dominio.com" resuelva a esa carpeta en el servidor.

¿ Os parece, hasta aquí, esta solución correcta ?

Hay que tener en cuenta que si trabajamos así, estamos con el archivo de bootstrap dos directorios por encima del document_root, luego las rutas a include_path deben ser diferentes.

El path a la carpeta "library" sería "../../../library", pero tengo entendido que hay que evitar usar rutas relativas, puesto que la carpeta está detrás del document_root el primer "../" sería obligatorio , no ? luego podría quedar así:
Cita:
define('DR', $_SERVER['DOCUMENT_ROOT']);

set_include_path( '.' .
PATH_SEPARATOR . DR . '/../library' .
PATH_SEPARATOR . get_include_path()
);

(Obviando los demás include_paths ahora)
¿ Y hasta aquí ?

Gracias !!!! :)

Última edición por irilien; 02/01/2009 a las 16:02
  #2 (permalink)  
Antiguo 03/01/2009, 12:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Pues si no puedes hacer los dominios virtuales en Apache, la ventaja y flexibilidad de Zend es que tu puedes poner donde quieras tus clases y archivos, yo en lo personal al estar haciendo aplicaciones tengo muchas y para evitar repetir cosas hago algo así:
Código:
/(Server Root)
/app1
/app1/index.php (redirect a /public)
/app1/library
/app1/public/
/app1/public/index.php
/app1/public/.htaccess
/app1/controllers
/app1/forms
/app1/views
/app2
/app3
/app4
/library/Zend
/library/Gecko
Repito la ventaja aquí es la flexibilidad de Zend al tu poder definir tus propias rutas, así a la hora de subir el archivo al server, solo edito el bootstrap y todo esta en sus rutas perfectamente.

Saludos.
  #3 (permalink)  
Antiguo 03/01/2009, 16:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Pfffff, estaba respondiendo y se fue la luz en casa...
Bueno haber, comenzemos de nuevo...

Hola GatorV ! : )

Decía, que la flexibilidad que te ofrece Zend Framework la tengo bastante clara. De hecho yo estaba creando mis propias rutas. El poner la carpeta "library" detras o delante del DOCUMENT_ROOT no es algo que afecte al funcionamiento, sino a la seguridad.

Los dos primero ejemplos de "proyectos" que escribí serían equivalentes a al tuyo. La diferencia entre tu ejemplo y mi tercer ejemplo es que a pesar de tener 4 aplicaciones solo tienes un único archivo public/index.php ah y el public/.htaccess

Hay dos posibilidades entonces:
  1. O solo puedes acceder a la única aplicación que definiste en public/index.php => http://localhost/index.php == 1 sola aplicación
  2. O escribes una lógica que te permita cargar varias aplicaciones con un solo index.php

Por contra, en mi ejemplo ( que no mejor ), hay un archivo index.php por cada aplicación, luego llamar a una aplicación o otra depende de la ruta que escribas.

public/zf/app1/index.php y .htaccess
public/zf/app2/index.php y .htaccess
public/zf/appN/index.php y .htaccess

Mi duda básicamente es que de la forma en que expusiste tu ejemplo (con un solo index), no sé como vas a cargar más de una aplicación a la vez en un mismo hosting. Por lo menos sin una de esas dos posibilidades que dije. Teniendo en cuenta además que si tienes un .htaccess en el document_root las demás rutas a partir de él serán redireccionadas a index.php a menos ke se hagan excepciones explicitas con mod_rewrite.

Podriais aclararmelo por favor ?? He leido y releido en el manual, la parte de frontController, el quickstart, estructura modular... Pero no encuentro respuesta concreta a esa duda concreta.

Muchas gracias !!!
  #4 (permalink)  
Antiguo 03/01/2009, 19:08
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Cita:
Iniciado por irilien Ver Mensaje
Mi duda básicamente es que de la forma en que expusiste tu ejemplo (con un solo index), no sé como vas a cargar más de una aplicación a la vez en un mismo hosting.
¿Por qué el hosting habría de ser un problema?. La pregunta es, ¿cada "aplicación" tendrá su propio dominio?, ¿o cómo es que trabajarán?.

Si son independientes, el dominio apuntaría a una carpeta dentro de la definición de cada aplicación, cada una con su "index" (su bootstrap) independiente. La estructura que muestra GatorV es bastante clara.

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 04/01/2009, 00:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Exacto, no hice un "expand" del arbol pero cada appn/ apunta a su propia aplicación, y el redirect es para evitarme llamar a public/, la ventaja de usar el registro y los views es que no importa donde este al subir todo se ajusta correctamente como debe de ir.

Saludos.
  #6 (permalink)  
Antiguo 04/01/2009, 02:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

De acuerdo, obvié que las aplicaciones tenian su index... Era consciente y debí recalcarlo.
Cita:
La pregunta es, ¿cada "aplicación" tendrá su propio dominio?, ¿o cómo es que trabajarán?.
No me importaría por ejemplo que usasemos alias tipo -> http://host/app1 y que solo hubiese un único dominio.
A lo que yo me refiero es que el usario, a archivos solo puede acceder a /public/index.php Entonces como hacemos para cargar más de una app si así lo quisieramos.
----

Tengo preguntas:
  1. ¿ Según ustedes, el /public/index.php no determina la aplicación única a cargar ?
  2. ¿ Como hacen la redirección desde /appN/index.php (de varias app) a /public/index.php pudiendo llamar a una u otra aplicación a la vez ? ( por ejemplo... en llamadas diferentes desde ventanas/pestañas del navegador )
  3. El dominio entiendo podrias apuntarlo en tu hosting a directorios o archivos en el espacio entre SERVER_ROOT y DOCUMENT_ROOT, no ? Si esto es así, nunca existió problema por culpa de los dominios. ( esta pregunta es la consecuencia de haber trabajado solo en local jeje )

Dios mio, me siento como si no entendiese algo que todo el mundo entiende... de normal Espero puedan ayudarme a entender... Lo primero que voy a hacer hoy es -Desayunar- Y lo segundo volver a mirar Quickstart y cuestiones de Bootstrap

Muchas gracias !!
  #7 (permalink)  
Antiguo 04/01/2009, 02:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Mmm esque no entiendo tu duda, es facil:
app1: http://localhost/app1
app2: http://localhost/app2
app3: http://localhost/app3
appN: http://localhost/appN

En cada directorio esta un public de cada app, y en cada raiz el redirect a public de esa app, cuando subes la aplicacion al hosting haces el cambio solo en el config y ya esta.

Saludos.
  #8 (permalink)  
Antiguo 04/01/2009, 03:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Jajaja LOL, ahora veo ke es una tontería...

Es que eso no lo decía tu ejemplo...

Cita:
/(Server Root)
/app1
/app1/index.php (redirect a /public)
/app1/library
/app1/public/
/app1/public/index.php
/app1/public/.htaccess
/app1/controllers
/app1/forms
/app1/views
/app2
/app3
/app4
/library/Zend
/library/Gecko
Tal como dices ahora sería:

Cita:
/(Server Root)
/app1
/app1/index.php (redirect a /public)
/app1/library
/app1/public/
/app1/public/app1/index.php
/app1/public/app1/.htaccess
/app1/controllers
/app1/forms
/app1/views
/app2
/app3
/app4
/library/Zend
/library/Gecko
y kedaría... entonces si... /public/app1/index.php => http://host/app1

Entonces haríais así simplemente no ? Es correcto ?

Luego el path hacia library desde index.php sería "../../library", sería correcto esto ke puse al principio pues ?

Cita:
define('DR', $_SERVER['DOCUMENT_ROOT']);

set_include_path( '.' .
PATH_SEPARATOR . DR . '/../library' .
PATH_SEPARATOR . get_include_path()
);

(Obviando los demás include_paths ahora)
  #9 (permalink)  
Antiguo 04/01/2009, 04:21
 
Fecha de Ingreso: diciembre-2007
Mensajes: 42
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

se me va la oya...

Ya lo comprendí... no hace falta ke modifique nada de rutas del bootstrap si el bootstrap está en el mismo dir de la aplicación...

Por tanto lo que dije del path correcto hacia library era innecesario totalmente.

A veces parezco idiota. Me ahogo en un vaso de agua xD

TODO SOLUCIONADO
MUCHAS GRACIAS A LOS DOS !!

Última edición por irilien; 04/01/2009 a las 04:26
  #10 (permalink)  
Antiguo 04/01/2009, 22:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Cita:
Iniciado por irilien Ver Mensaje
Ya lo comprendí... no hace falta ke modifique nada de rutas del bootstrap si el bootstrap está en el mismo dir de la aplicación...
E-xac-to . Fue lo que dije:

Cita:
Iniciado por jam1138 Ver Mensaje
[...] el dominio apuntaría a una carpeta dentro de la definición de cada aplicación, cada una con su "index" (su bootstrap) independiente. [...]
Como añadido, personalmente te aconsejaría evitar hacer uso de rutas relativas, evita el '../../'. Sugeriría (es lo que hago) crear constantes para las rutas absolutas, tantas como necesites. De entrada 2: una para el root de tu directorio, y otra para la aplicación (que quizá solo se componga de la anterior y el nombre de tu aplicación, pero será más cómodo).

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 27/01/2009, 04:57
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Cita:
Iniciado por GatorV Ver Mensaje
/(Server Root)
/app1
/app1/index.php (redirect a /public)
/app1/library
/app1/public/
/app1/public/index.php
/app1/public/.htaccess
/app1/controllers
/app1/forms
/app1/views
/app2
/app3
/app4
/library/Zend
/library/Gecko
Tengo una duda respecto a la estructura propuesta por GatorV.

Si no entendí mal, en local las urls tendrán la siguiente estructura debido a la redirección que se hace en app1/index.php
Código:
http://localhost/app1/public/...
¿Qué habría que hacer para que, al subir la aplicación a un servidor, no se muestre el directorio 'public' en la url?
  #12 (permalink)  
Antiguo 27/01/2009, 11:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Hola jerkan,

No tienes que hacer nada ya que la carpeta public, es donde va a estar el webroot en el server, entonces va a quedar en raiz, el redirect es solamente para cuando trabajas en local, o en dado caso puedes hacer un virtualhost en apache.

Saludos
  #13 (permalink)  
Antiguo 22/04/2009, 08:36
Avatar de poloche  
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Hola a todos un favor gatorV podrias poner como haces tu redireccion con el .htaccess es que a mi no me funciona
tengo un server con una aplicacion en el root hecha a pelo y tengo una con zend en esta estructura
www/
- adm
- funciones
- index.php
- login.php
-.....
- quantum (aplicacion hecha con zend)
--- application
--- library
--- public
-------- images
-------- css
-------- js
-------- index.php
-------- .htacces
--- .htacces

NO estoy usando virtuales y en el .htacces del quantum/.htacces tiene las siguientes directivas
Código:
RewriteEngine on
RewriteBase /quantum/
RewriteRule !\.(js|ico|gif|jpg|png|css) public/index.php
y en el de quantum/public/
Código:
RewriteEngine off
#RewriteBase /quantum/public
#RewriteRule ^\.(js|ico|gif|jpg|png|css)$ $1 [R=301,L]
#RewriteRule !\.(js|ico|gif|jpg|png|css) index.php
cuando entro a http://localhost/quantum me dirige directamente a public/index.php mas no carga los css ni lo js ni las imagenes ademas me manda este error
Código:
exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (quantum)' in D:\MobiusWS\Quantum\library\Zend\Controller\Dispatcher\Standard.php:241 Stack trace: #0 D:\MobiusWS\Quantum\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 D:\MobiusWS\Quantum\application\bootstrap.php(37): Zend_Controller_Front->dispatch() #2 D:\MobiusWS\Quantum\public\index.php(8): require('D:\MobiusWS\Qua...') #3 {main}
ya no se cual sea mi problema por favor si pueden ayudarme se los agradecere
__________________
no estare lejos, por que siempre estare junto a ti
  #14 (permalink)  
Antiguo 22/04/2009, 09:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Lo que pasa es que no tienes (o no debes) de hacer una redirección con RewriteRule, si no un forward normal en tu browser si vas a ver /www/quantum/public/, esto es por testing.

Si ya vas a subir a producción tu server lo más recomendable es que aunque sea un subdir uses en tus vistas el baseUrl() y tengas una estructura mas o menos así:
Código:
/
.../application
.../library
.../htdocs/quantum/ <- Aqui va el contenido de public
.../htdocs/index.php
.../htdocs/login.php
.../htdocs/funciones
Saludos.
  #15 (permalink)  
Antiguo 23/04/2009, 13:32
Avatar de poloche  
Fecha de Ingreso: abril-2006
Ubicación: cochabamba
Mensajes: 93
Antigüedad: 18 años
Puntos: 1
Respuesta: ZF -> Duda Multiples aplicaciones VS un solo servidor

Holas gatorv, es exactamente la estructura como la que la estoy planteando dentro quantum va toda la app hecha con zend osea

.../htdocs/quantum/
.../htdocs/quantum/application/
.../htdocs/quantum/application/default/controllers/
.../htdocs/quantum/application/default/views/
.../htdocs/quantum/public/

que es la estrucutra base que me crea end studio para desarrollar una aplicacion
talves alguna configuracion especial que tenga esta estructura planteada que yo este obiando?
plis
__________________
no estare lejos, por que siempre estare junto a ti
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:17.