Foros del Web » Programando para Internet » PHP »

Ruta absoluta a funciones en archivo remoto

Estas en el tema de Ruta absoluta a funciones en archivo remoto en el foro de PHP en Foros del Web. Saludos, necesito utilizar funciones de un archivo localizado en otra maquina. Por lo que el uso de rutas absolutas es necesario(creo yo). Ejemplo: prueba.php (Servidor1) ...
  #1 (permalink)  
Antiguo 03/04/2007, 08:49
 
Fecha de Ingreso: noviembre-2003
Mensajes: 61
Antigüedad: 21 años
Puntos: 0
Ruta absoluta a funciones en archivo remoto

Saludos, necesito utilizar funciones de un archivo localizado en otra maquina. Por lo que el uso de rutas absolutas es necesario(creo yo). Ejemplo:
prueba.php (Servidor1)
<?
function prueba()

?>

prueba1.php (Servidor2)
<?
include 'http://servidor1/prueba.php';
prueba();
?>

Ejecuto prueba1.php, así no me funcionó, me dice que no encuentra la función prueba. Googleando en php.net/include leí que cambiando la extensión de .php a .inc por ejemplo, funcionaría. Procedí a probar:
prueba.php lo cambie a prueba.inc

Funcionó, imprime 'prueba', pero ahora si agrego un tercer archivo y lo incluyo en prueba.inc:

prueba2.php (Servidor1)
<?
function prueba2()

?>

prueba.inc (Servidor1)
<?
include 'prueba2.php';
function prueba()

?>

y ahora en prueba1 intento:
<?
include 'http://servidor1/prueba.inc';
prueba();
prueba1();
?>

No consigue la función prueba1.

Esto es un ejemplo con archivos básicos a ver que sucede. En realidad estoy usando una capa de persistencia generada con propel y que estará ubicada en un servidor diferente a donde estará la aplicación en si. Y bueno, mi problema es con las rutas absolutas a los archivos. Estoy definiendo una constante para acceder a los mismos, Ej. define('RUT','http://servidor1/carpeta/'); y para hacer el include: include RUT.'funcion.php';

Si alguien me pudiese facilitar más información acerca de como trabajar en 3 niveles, incluyendo archivos desde otro servidor lo agradecería.
  #2 (permalink)  
Antiguo 03/04/2007, 18:35
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Ruta absoluta a funciones en archivo remoto

Pues no podés hacer eso, simplemente porque necesitás que el archivo incluido desde otro servidor devuelva texto. A lo sumo podés hacer que el archivo prueba.inc pegue "en sí mismo" el contenido de prueba2.php (con readfile, por ejemplo)

Tené en cuenta que todo lo incluido será tratado como texto, y si es php será ejecutado por el servidor que lo contiene.


Saludos.
  #3 (permalink)  
Antiguo 04/04/2007, 07:59
 
Fecha de Ingreso: noviembre-2003
Mensajes: 61
Antigüedad: 21 años
Puntos: 0
Re: Ruta absoluta a funciones en archivo remoto

¿Entonces no existe una solución en php que permita utilizar una aplicación desarrollada en 3 capas ubicando cada capa en un servidor diferente?
  #4 (permalink)  
Antiguo 04/04/2007, 08:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Ruta absoluta a funciones en archivo remoto

Claro, puedes usar webservices, ubicando cada servicio en cada servidor y transmitiendo los datos usando SOAP.
  #5 (permalink)  
Antiguo 04/04/2007, 09:25
 
Fecha de Ingreso: noviembre-2003
Mensajes: 61
Antigüedad: 21 años
Puntos: 0
Re: Ruta absoluta a funciones en archivo remoto

Según eso, entonces las más de 100 funciones y clases distribuidas en la capa logica y de persistencia deben ser implementadas como servicios. No creo que no exista otra solución posible.
  #6 (permalink)  
Antiguo 04/04/2007, 09:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Ruta absoluta a funciones en archivo remoto

El problema es de seguridad, y no tanto de PHP, debes de pensar que cada servidor es una entidad separada, como Islas, la unica forma de que las Islas se comuniquen es a travez de canales definidos, pero como todo necesita seguridad si no cualquier hijo de vecino podria ver que pasa en esos canales, y seria un riesgo MAYOR de seguridad (imaginate un banco donde sus apis fueran asi de facil visibles).

Para darle seguridad a todo, se usan canales seguros con autentificacion (es decir Sockets via SSL) y hay que validar que el usuario tenga las credenciales correctas para ejecutar y accesar a esa informacion que pide.

Pensando en todo esto, se crearon los Webservices (que hasta los bancos, paypal, bibliotecas, etc.) usan, ya que son poderosos e independientes de un lenguaje en especifico ya que puedes tener el backend en C#, Java, PHP etc. y el frontend en C#, Java, PHP, etc. ya que usan un lenguaje en comun: SOAP.

Dices que tienes mas de 100 funciones y clases distribuidas en tu capa de logica y persistencia, si tenias que desde un inicio hacerlo a travez de servidores, hubieras visto que ese era un problema de seguridad y no tanto del lenguaje que quieras escoger.

Necesitas usar WebServices.

Otra solucion que se me ocurre (si tienes acceso como root al servidor) es montar via red el disco del servidor 1 o servidor 2 e incluir el archivo de forma local, pero esto requiere de mas configuracion y tener acceso al control total del servidor, si esto no es posible, lamento decirtelo pero necesitas usar WebServices.
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 21:47.