[prev in list] [next in list] [prev in thread] [next in thread]
List: php-general-es
Subject: Re: [PHP-ES] Consulta sobre clases en PHP5
From: 80.129.73.83
Date: 2009-01-28 20:44:29
Message-ID: E0.4D.16201.1B3C0894 () pb1 ! pair ! com
[Download RAW message or body]
Ricardo Vila schrieb:
> Buenas a todos listeros,
>
> Queria hacer una consulta, pues hje probado varias formas de resolverlo pero
> no lo consigo =(
>
> tengo una estructura como esta
>
> carpetaMiproyecto
> |
> |->carpetaSeccion1
> |
> |->carpetaSeccion2
> | |
> | |->carpetaclases
> | |
> | |->index2.php
> |
> |->index.php
> |->proceso.php
>
> entonces la carpetaclases esta en esa ubicacion porq la necsito en ese
> lugar, pero cuando llamo a una clase en proceso.php este me da errores
> debido a que en las clases q tengo dentro de carpetaclases se incluyen entre
> si. el error mas comun es que el archivo no existe o y hace referencia al
> require que hago dentro de una de estas clases q tengo. Por ejemplo si
> tengo.
>
> proceso.php
> <?php
> require_once ('carpetaSeccion2/carpetaclases/miclase1.class.php');
> ?>
>
> me da un error :
> *Warning*: Clase2::require(../carpetaclases/archivo.php) [
> function.Conf-require<http://localhost/ifhperu/revista/function.Conf-require>]:
> failed to open stream: No such file or directory in *
> C:\xampp\htdocs\carpetaMiproyecto\carpetaSeccion1\carpetaSeccion2\Clase2.class.php
> * on line *13*
> .
>
> entonces si modifico esa linea ok todo me sale bien, pero entoncs ahora es
> index2.php el me me botya este error.
>
> LO que deseo es poder usar mis clases pues requiero algunos metodos de estas
> desde proceso.php , pero sin que index2.php me bote los errores, es decir
> que ambas paginas puedan usar las clases sin necesidad de cambios respecto a
> los require, trate de probar con la ruta completa pero mi sistema tiene
> restringido hacer includes de URl
>
> Agradesco de antemano su ayuda
>
> Atentamente
>
> Ricardo Vila
>
Hola Ricardo,
yo solucione ese problemita de la siguiente manera:
Digamos que tengo un file "Bootstrap" que le llamo index.php y en el
cual empiezo toda la aplicacion. En ese file hago
if(false == defined('BASEPATH')){
define('BASEPATH', dirname(__FILE__));
}
Con esto hago mi basepath del cual puedo partir siempre. Cuando deseo
usar clases en toda la aplicacion las pongo en su carpeta
correspondiente y las meto en el include path:
set_include_path( get_include_path().PATH_SEPARATOR. BASEPATH . '/libs');
set_include_path(get_include_path().PATH_SEPARATOR. BASEPATH . '/mods/sys');
Asi lo hago todo tambien de un guamazo como decimos en venezuela :-) Yo
por mi parte uso el autoload para llamar mis clases y no tener que estar
incluyendo nada y listo!
Ya que uso Zend Framework y EzComponents juntos pues los uno ambos
en el Bootstrap
Zend_Loader::registerAutoload( 'autoloadClass' );
y la clase autoloadClass
class autoloadClass{
/**
* Autoload Class to load EzComponents and Zend Classes
*
* @param mixed $strClassName
*/
public static function autoload( $strClassName ){
// get the ezc on the Classname
if( stristr( $strClassName, 'ezc') ){
try{
ezcBase::autoload( $strClassName );
} catch ( Exception $e ){
echo $e->getMessage();
return false;
}
}else{
try {
Zend_Loader::loadClass( $strClassName, null );
} catch (Exception $e) {
echo $e->getMessage();
return false;
}
}
}
}
ahora me siento a fumarme mi pipa y dejo que mi vieja me haga masaje en
los pies :-D
Saludos
Carlos Medina
--
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic