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

Importar al estilo java

Estas en el tema de Importar al estilo java en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Como se hace un import en el cual se traba con paquetes ?(al estilo java): Código PHP: import ( "com.manageDB.*" );  Un saludo!...
  #1 (permalink)  
Antiguo 24/01/2007, 18:43
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Importar al estilo java

Como se hace un import en el cual se traba con paquetes ?(al estilo java):
Código PHP:
import("com.manageDB.*"); 
Un saludo!
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 24/01/2007, 18:55
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Importar al estilo java

GatorV hace poquito mostro lo que utilizaba el, seguramente te sirva.

http://www.forosdelweb.com/f68/instanciar-objeto-apartir-clase-cualquiera-455936/

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 24/01/2007, 19:09
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Gracias, ese codigo ya lo habia visto, pero solo funciona para traer una instancia a partir de una clase y dandole el classpath..
Yo quiero al estilo namespaces.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 24/01/2007, 20: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
Re: Importar al estilo java

de hecho, si te fijas por algun otro post puse el que si uso, y sirve para importar clases al estilo como dices tu
Código PHP:
import"com.empresa.modelos.*" ); // Suponiendo que en la carpeta modelos exista usuarios.php

$usuarios = new usuarios(); 
  #5 (permalink)  
Antiguo 25/01/2007, 00:01
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Podrias poner tu codigo porfa , es que no encontre tu post..
Gracias
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #6 (permalink)  
Antiguo 25/01/2007, 08:39
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
Re: Importar al estilo java

http://www.forosdelweb.com/showpost....55&postcount=8
  #7 (permalink)  
Antiguo 25/01/2007, 15:14
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Código PHP:
import$class_path ) {
    
$class_path str_replace"."DIRECTORY_SEPARATOR$class_path );
    
$class_path BASE_DIR "/aplicacion/" $class_path// BASE_DIR puede estar definida en la configuracion.
    
require( $class_path ".php" );

Pero en ese codigo como se maneja cuando pones un asterisco?
import("com.database.*");
Ah y otra cosa, eso se declara como una funcion? esa funcion debe de estar en todas las clases donde las voy a usar y ya luego la mando llamar(es que aun no entiendo del todo su funcionamiento?
function import($class_path){
....
}
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.

Última edición por B**; 25/01/2007 a las 15:37
  #8 (permalink)  
Antiguo 25/01/2007, 15:27
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
Re: Importar al estilo java

Cierto, ese codigo es muy muy simple, de hecho la version mas completa es la que uso en mi framework, te pego el codigo aunque re-usa otros componentes:
Código PHP:
function import$class ) {
    
$importDir getcwd() . "/application/";
    
$classDir str_replace"."DIRECTORY_SEPARATOR$class );
    
    if( 
substr$classDir, -1) === "*" ) { // Import several Classes
        
$classDir str_replace"*"""$classDir );
        
$importDir .= $classDir;
        
$files GeckoUtils::list_dir$importDir, array( "php" ) );
        foreach( 
$files as $file ) {
            require_once( 
$importDir $file );
        }
    } else {
        
$file $importDir $classDir '.php';
        if( 
file_exists$file ) ) {
            require_once( 
$file );
        } else {
            throw new 
Exception"$class not found" );
        }
    }

  #9 (permalink)  
Antiguo 25/01/2007, 16:38
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Gracias GatorV, pero esto(parte de tu framework)q hace?:
Código PHP:
GeckoUtils::list_dir$importDir, array( "php" ) ); 
EDIT:Ah ok, en lugar de usar eso hago un script que me diga los archivos que existen en la carpeta con scandir, no es asi?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.

Última edición por B**; 25/01/2007 a las 16:52
  #10 (permalink)  
Antiguo 25/01/2007, 17:51
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

EDIT:
Mi import gracias a GatorV:
Código PHP:
function import$class ) {
                    
$importDir getcwd() . "/application/";
                   
                    
$classDir str_replace"."DIRECTORY_SEPARATOR$class );
                    
                    if( 
substr$classDir, -1) === "*" ) { // Import several Classes
                        
$classDir str_replace"*"""$classDir );
                        
$importDir .= $classDir;
                        
$archivo=scandir($importDir);
                        foreach(
$archivo as $key => $val)
                         {
                             
$tmp=explode(".",$val);
                             if(
end($tmp)=="php")
                                 require_once(
$importDir $val);
                             
                         }
                    } else {
                        
$file $importDir $classDir '.php';
                        if( 
file_exists$file ) ) {
                            require_once( 
$file );
                        } else {
                            throw new 
Exception"$class not found" );
                        }
                    }
                } 
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.

Última edición por B**; 25/01/2007 a las 18:09
  #11 (permalink)  
Antiguo 25/01/2007, 18:52
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Ahora solo una duda, hay que hacer el include en todas las aplicaciones ?
Código PHP:
include("directorio/import.php");
import("blabla");//y ahora si usar import? 
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #12 (permalink)  
Antiguo 25/01/2007, 20:20
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
Re: Importar al estilo java

desgraciadamente si, a menos que uses algun patron MVC que te auto cargue ese archivo ya no necesitarias usar algo asi.
  #13 (permalink)  
Antiguo 25/01/2007, 20:27
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Un favor.....como seria el archivo de configuracion y el de booteo(MVC)?
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #14 (permalink)  
Antiguo 25/01/2007, 20:35
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
Re: Importar al estilo java

Te recomiendo que le heches un ojo a este post:

http://www.forosdelweb.com/f68/programacion-3-capas-php-441141/
  #15 (permalink)  
Antiguo 25/01/2007, 20:42
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Ya me lei ese thread completo...pero eso de autocargar , no se como se hace.... solo te pido una ayuda a grandes rasgos o si conoces algun link donde hablen de eso.
Gracias.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #16 (permalink)  
Antiguo 25/01/2007, 21:32
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Importar al estilo java

En el manual explican algo:

http://ar.php.net/autoload

Y en los comentarios hay ejemplos de como realizarlo si deseas tener las clases en distintas carpetas (como es tu caso) La verdad no probe ninguno de los ejemplos, pero quiza te sirvan si lo que deseas son ideas.

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #17 (permalink)  
Antiguo 25/01/2007, 23:46
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Gracias Fridureiks,pero no es lo mismo, eso de autoload, eso yo ya lo sabia ,y solo funciona cuando estas dentro del mismo path... lo que yo quiero es importar paquetes al estilo java, ya lo logre, pero ahora solo me falta que autocargue la funcion import.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #18 (permalink)  
Antiguo 26/01/2007, 08:55
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
Re: Importar al estilo java

Como te explico, esto es posible solo si usas algun patron de diseño, con un boot file.

En el boot file, haces tu include inicial y luego pones a correr la aplicacion, te pego como le hago en mi framework:
Código PHP:
require( $_SERVER['DOCUMENT_ROOT'] . "/librariesv5/base.php" );

Gecko::run(); 
la funcion run(), se encarga de levantar todo el ambiente, incluir el archivo de configuracion XML, parsearlo y correr el controlador que se requiere via parametros GET, y ejecuta la accion que se necesita.
  #19 (permalink)  
Antiguo 10/02/2007, 10:28
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Importar al estilo java

Cita:
Iniciado por B** Ver Mensaje
EDIT:
Mi import gracias a GatorV:
Código PHP:
function import$class ) {
                    
$importDir getcwd() . "/application/";
                   
                    
$classDir str_replace"."DIRECTORY_SEPARATOR$class );
                    
                    if( 
substr$classDir, -1) === "*" ) { // Import several Classes
                        
$classDir str_replace"*"""$classDir );
                        
$importDir .= $classDir;
                        
$archivo=scandir($importDir);
                        foreach(
$archivo as $key => $val)
                         {
                             
$tmp=explode(".",$val);
                             if(
end($tmp)=="php")
                                 require_once(
$importDir $val);
                             
                         }
                    } else {
                        
$file $importDir $classDir '.php';
                        if( 
file_exists$file ) ) {
                            require_once( 
$file );
                        } else {
                            throw new 
Exception"$class not found" );
                        }
                    }
                } 
B** te molestaria colocar tu codigo en las FAQ's o que alguien lo haga por ti? Seia interesante que quede a mano
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #20 (permalink)  
Antiguo 15/02/2007, 19:31
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

Cita:
Iniciado por GatorV Ver Mensaje
Como te explico, esto es posible solo si usas algun patron de diseño, con un boot file.

En el boot file, haces tu include inicial y luego pones a correr la aplicacion, te pego como le hago en mi framework:
Código PHP:
require( $_SERVER['DOCUMENT_ROOT'] . "/librariesv5/base.php" );

Gecko::run(); 
la funcion run(), se encarga de levantar todo el ambiente, incluir el archivo de configuracion XML, parsearlo y correr el controlador que se requiere via parametros GET, y ejecuta la accion que se necesita.
GatorV podrias usar pseudolenguaje o en el major de los casos con codigo,para explicar lo que hace el metodo run..
Gracias
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #21 (permalink)  
Antiguo 15/02/2007, 23: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
Re: Importar al estilo java

Te lo pongo los pasos, en si es un router basico:

- En Run creo una instancia estatica del Router, y lo guardo (patron Singleton), luego llamo a la funcion init (dentro de un try/catch mayor (esto me permite cachar algun exception y mostrarla de una forma bonita, y si estoy en debug_mode, ver el stack trace mas facil))
- En init hago lo siguiente:
- Creo una instancia estatica de un objeto que me carga toda la configuracion desde un XML
- Creo un objeto request que me limpia todas las variables de entrada (para evitar problemas con quotes y eso)
- Obtengo el Controlador y Accion a realizar, y veo si estan definidas o no para ver que controlador cargar y que accion a realizar.
- Cargo el controlador desde al controllerDir, e inicializo el controlador.
- Le pido al controlador que me de la vista a utilizar y la cargo
- Cargo una instancia de la vista
- Checo si puedo ejecutar la accion, o llamar a no route, o de plano mandar una excepcion si no puedo ejecutar ninguna accion en el controlador
- Dependiendo si se ejecuto o no, obtengo las variables del controlador
- Las asigno a la vista
- Obtengo el template a utilizar
- Cargo los template helpers
- y por ultimo rendereo el template
- Limpio el controlador y la vista y termino la aplicacion.

Última edición por GatorV; 15/02/2007 a las 23:35
  #22 (permalink)  
Antiguo 16/02/2007, 01:43
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: Importar al estilo java

(Y) Muchas gracias .. lo analizare
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:20.