Foros del Web » Programando para Internet » PHP »

Referente a PHP OP

Estas en el tema de Referente a PHP OP en el foro de PHP en Foros del Web. Buenas, estoy empezando a aprender php orientado a objetos haciendo mis primeras clases y tal y tengo una pregunta para aquellos q estan ya mas ...
  #1 (permalink)  
Antiguo 07/11/2012, 15:14
 
Fecha de Ingreso: octubre-2012
Ubicación: Austria
Mensajes: 47
Antigüedad: 12 años, 1 mes
Puntos: 7
Referente a PHP OP

Buenas,
estoy empezando a aprender php orientado a objetos haciendo mis primeras clases y tal y tengo una pregunta para aquellos q estan ya mas acostumbrados con el tema:

Realmente encapsulais todo el codigo en clases??Tb las variables de sesiones y pequenias cosas que se pueden hacer con un par de lineas de codigo?

Gracias y saludos
  #2 (permalink)  
Antiguo 07/11/2012, 15:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Referente a PHP OP

Bueno la idea es, es OOP o no. Hay cosas que no necesariamente es OOP como por ejemplo el archivo index.php de la librería de Zend framework en el directorio de public, es así
Código PHP:
Ver original
  1. <?php
  2. // Define path to application directory
  3. defined('APPLICATION_PATH')
  4.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  5.  
  6. // Define application environment
  7. defined('APPLICATION_ENV')
  8.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  9.  
  10. // Ensure library/ is on include_path
  11. set_include_path(implode(PATH_SEPARATOR, array(
  12.     realpath(APPLICATION_PATH . '/../library'),
  13. )));
  14.  
  15. /** Zend_Application */
  16. require_once 'Zend/Application.php';
  17.  
  18. // Create application, bootstrap, and run
  19. $application = new Zend_Application(
  20.     APPLICATION_ENV,
  21.     APPLICATION_PATH . '/configs/application.ini'
  22. );
  23. $application->bootstrap()
  24.             ->run();
Si te fijas está creado en forma estructurada, aunque usa OOP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 07/11/2012, 15:28
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: Referente a PHP OP

hace poco les cayo por aquí por donde chambeo una onda de modificar un poco una pagina , ya estabs bien malecha por que segun su deslogeada era nada mas un link a la pagina de inicio



tons lo correcto era manejo de sessiones y con classes se me hace mejor opción


Código PHP:
<?php
class sessiones{
    function 
__construct() {
       
session_start();
   }
   function 
valida(){
        global 
$conn;
        if (empty(
$_SESSION["id_usuario"])){
            
header("location: logout.php");
        }
        else{
            if(empty(
$_SESSION["arregloaccesousuario"])){
                
$sql ="select id_nivel from accesousuario where id_usuario='{$_SESSION["id_usuario"]}'";
                
$rs=mysql_query($sql);
                while (
$row mysql_fetch_array($rsMYSQL_ASSOC)) {
                    
$_SESSION["arregloaccesousuario"][]=$row["id_nivel"];
                }
            }
        }
        
   }
   function 
cerrarsession(){
        
session_unset();
        
session_destroy();
   }
   function 
revisaaccesousuario($acceso){#se puede mandar como arreglo o con un solo valor
        
$tieneacceso=0;
        if (
is_array($acceso)){
            foreach(
$acceso as $accesos){
                if (
in_array($accesos,$_SESSION["arregloaccesousuario"])){
                    
$tieneacceso=1;
                    break;
                }
            }
        }
        else{
            if (
in_array($acceso,$_SESSION["arregloaccesousuario"])){
                
$tieneacceso=1;
                
            }
        }
        if(
$tieneacceso==0){
            
header("location: logout.php");
        }
        
   }
}


?>

entonces ya cuando necesitaba verificar o si el usuario estaba logeado o podia entrar a determinada parte del sistema era mucho menos el codigo a usar


Código PHP:
Ver original
  1. include_once("classes/sessiones.php");
  2. $sess=new sessiones();
  3. $sess->valida();
  4. $sess->revisaaccesousuario(2);


o ya para cerrar mi session

Código PHP:
Ver original
  1. include_once("classes/sessiones.php");
  2. $sess=new sessiones();
  3. $sess->cerrarsession();
  4. header("location: home.php");


la verdad si te facilita mucho el reuso de código y mantenimiento aunque hay mejores usos y mas a fondo de la orientación a objetos como frameworks que una vez que le hallas agarrado chido la onda a la orientacion a objetos conviene que te metas para igual facilitarte la vida
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 07/11/2012, 15:37
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: Referente a PHP OP

Cita:
Iniciado por abimaelrc Ver Mensaje
Bueno la idea es, es OOP o no. Hay cosas que no necesariamente es OOP como por ejemplo el archivo index.php de la librería de Zend framework en el directorio de public, es así
Código PHP:
Ver original
  1. <?php
  2. // Define path to application directory
  3. defined('APPLICATION_PATH')
  4.     || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
  5.  
  6. // Define application environment
  7. defined('APPLICATION_ENV')
  8.     || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
  9.  
  10. // Ensure library/ is on include_path
  11. set_include_path(implode(PATH_SEPARATOR, array(
  12.     realpath(APPLICATION_PATH . '/../library'),
  13. )));
  14.  
  15. /** Zend_Application */
  16. require_once 'Zend/Application.php';
  17.  
  18. // Create application, bootstrap, and run
  19. $application = new Zend_Application(
  20.     APPLICATION_ENV,
  21.     APPLICATION_PATH . '/configs/application.ini'
  22. );
  23. $application->bootstrap()
  24.             ->run();
Si te fijas está creado en forma estructurada, aunque usa OOP.

se que este no es el foro de python pero por ejemplificar en un proyecto en el que participo se usan funciones que llaman a los objetos

Código Python:
Ver original
  1. def capaRechazada():
  2.     """
  3.    Función invocada cuando el super administrador descarta una capa, la acción
  4.    que se debe realizar es borrar la capa del globo de pruebas y notificar al
  5.    manejador de contenidos el resultado.
  6.    
  7.    @todo: Implementar esta función
  8.    """
  9.     print "Rechaza la capa "
  10.    
  11.     estado = Estado()
  12.    
  13.     scapa = estado.dequeue('rechazar')
  14.    
  15.     if scapa:
  16.         try:
  17.             capa = Capa(scapa)
  18.             capa.getGlobo().clean()
  19.             cmd = 'rm -rf %s' % scapa
  20.             subprocess.call( cmd, shell=True )
  21.            
  22.         except Exception, e:
  23.             stderr.write(str(e) + '\n')
  24.             estado.enqueue(scapa, 'rechazar')
  25.            
  26.         finally:
  27.             estado.estadoSiguiente()
  28.            
  29.     else:
  30.         print 'No hay capas que borrar del globo de pruebas'


yo no soy el arquitecto de este este proyecto , pero alguna opinion acerca del por que en zend y en este caso se usan asi? mi idea me da que un método bien podría hacerlo no? es estilo? es por farolear?
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo

Etiquetas: variables
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 09:34.