Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Error en require_once de PHP cuando todos los archivos se ven bien

Estas en el tema de Error en require_once de PHP cuando todos los archivos se ven bien en el foro de PHP en Foros del Web. Hola buenas tardes. Estaba probando un codigo en PHP con Conexion a MySQL y me encontre con un pequeño, pero extraño detalle. En el uso ...
  #1 (permalink)  
Antiguo 12/07/2016, 14:02
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 9 meses
Puntos: 1
Exclamación Error en require_once de PHP cuando todos los archivos se ven bien

Hola buenas tardes.
Estaba probando un codigo en PHP con Conexion a MySQL y me encontre con un pequeño, pero extraño detalle.
En el uso de required_once
Tengo las carpetas de mi proyecto de prueba organizada de la sgte manera:


La direccion indica cuál requiere de cuál:
UsaPersona.php requiere de Persona.php y Conexion.php
Sus linea de codigo serian:
require_once("../ent/Persona.php") y require_once("../util/Conexion.php")

Por ese lado no hay problema, el detalle esta en la ejecucion de 'ControlaPersona.php'.



El cual no tiene problemas en encontrar el archivo 'UsaPersona.php', pero si muestra un error diciendo que no se encuentra el archivo que éste último requiere, es decir 'Persona.php'

No entiendo porque el error cuando se requiere de un archivo que requiere a otro, sin embargo no pasa nada cuando todos los archivos estan juntos, pero no quiero eso.

Estoy tratando de trabajar en esto orientado solo a Objetos, como lo hago en Java y tenia la idea de que 'require_once' era algo asi como 'import'.
Por favor ayudenme a entender esto y como solucionarlo, se los agradeceria de antemano
  #2 (permalink)  
Antiguo 12/07/2016, 14:14
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 9 años
Puntos: 20
Respuesta: Error en require_once de PHP cuando todos los archivos se ven bien

Hola amigo,
quizá puede ser por las rutas relativas que estás usando, prueba utilizando dirname en tus require, para el ejemplo de UsaPersona.php que comentas, quedaría de ésta forma:

Código PHP:
Ver original
  1. require_once dirname(dirname(__FILE__))."/ent/Persona.php";
  2. require_once dirname(dirname(__FILE__))."/util/Conexion.php";

Pruebalo de ésta forma
Saludos!
  #3 (permalink)  
Antiguo 13/07/2016, 09:47
 
Fecha de Ingreso: julio-2010
Ubicación: La Ciudad Blanca, Mérida-Yucatán
Mensajes: 375
Antigüedad: 14 años, 5 meses
Puntos: 7
Respuesta: Error en require_once de PHP cuando todos los archivos se ven bien

Hola que tal podría ser que en Usapersona.php ya tienes incluido el archivo persona.php y por eso te da ese error.

Si no estoy mal si en un archivo 'X' importas un required cuando importes a ese archivo a un archivo 'Y', todas las importaciones que estén dentro de tu archivo 'X' se importarán autómaticamente en el nuevo archivo 'Y', nose si me logre explicar.
__________________
--No todos aprendemos de la misma forma, ni a la misma velocidad---
  #4 (permalink)  
Antiguo 13/07/2016, 14:48
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años, 1 mes
Puntos: 154
Respuesta: Error en require_once de PHP cuando todos los archivos se ven bien

Hola,

El problema es que el archivo c:/Wamp/www/test/model/db/UsaPersona.php no encuentra el archivo c:/Wamp/www/test/model/ent/Persona.php, eso lo dice bien claro el error, por eso la solución puede ir por donde dice german_1441, no tiene nada que ver si se ha incluido ya en otro archivo o no, por eso es el sufijo _once.
  #5 (permalink)  
Antiguo 14/07/2016, 10:56
Avatar de carlitosMiranda  
Fecha de Ingreso: marzo-2015
Ubicación: Colombia
Mensajes: 32
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Error en require_once de PHP cuando todos los archivos se ven bien

Gracias!!. Funciono a la perfeccion!!. Claro q puedo notar q Dreamweaver no reconoce las rutas pero funciona sin ningún problema en WampServer

Etiquetas: mysql+php, php+archivos, require_once
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 02:13.