[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