Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP orientado a objetos

Estas en el tema de PHP orientado a objetos en el foro de PHP en Foros del Web. Hola a todos. Si tengo un objeto, con algunos metodos para desplegar vistas, algo asi como un controlador, que forma me recomienda para desplegar las ...
  #1 (permalink)  
Antiguo 19/07/2015, 11:45
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Pregunta PHP orientado a objetos

Hola a todos.

Si tengo un objeto, con algunos metodos para desplegar vistas, algo asi como un controlador, que forma me recomienda para desplegar las vistas, haciendo require o mejor con header('location:...')???

De antemano muchas gracias.
  #2 (permalink)  
Antiguo 19/07/2015, 12:30
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: PHP orientado a objetos

Antes yo te invito a saber que es cada cosa, creo que con eso responderá tu pregunta:

Require(): http://php.net/manual/es/function.require.php

Header(): http://php.net/manual/es/function.header.php

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 19/07/2015, 12:43
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: PHP orientado a objetos

Hola, gracias por tu respuestas!

tengo nocion de lo q hace cada una, es solo q en el caso q planteo, no se cual seria mas recomendable usar, cual me sugeririas?
  #4 (permalink)  
Antiguo 19/07/2015, 16:28
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: PHP orientado a objetos

Sería con requiere, no entiendo cómo podrías incluir un objeto con header location.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 19/07/2015, 18:40
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: PHP orientado a objetos

hola chronos682, gracias por tu respuesta!

pero si es una buena practica hacer un require de vista dentro de un objeto?
  #6 (permalink)  
Antiguo 19/07/2015, 18:43
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: PHP orientado a objetos

Que es lo que quieres hacer exactamente con el objeto o cuál es la función del mismo? El require lo necesitas para instanciar el objeto? O específicamente para que?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #7 (permalink)  
Antiguo 19/07/2015, 18:59
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: PHP orientado a objetos

el objeto es un controlador, por decirlo de alguna manera, en ese objeto, tengo varios metodos, entre ellos, hay algunas q son para desplegar vistas, sera bueno q las vistas las despliegue con require? lo digo por como el codigo de la vista se incluiria en el objeto al hacer el requiere. mi intencion es desplegar vistas de la mejor manera aplicable en ese caso, ya sea por require o por redireccionar a esa vista con header.

o si usted tiene alguna sugerencia se lo agradeceria mucho chronos682.
  #8 (permalink)  
Antiguo 19/07/2015, 19:01
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: PHP orientado a objetos

Podrias poner el codigo del objeto para ver como funciona porque sigo aun sin entender bien.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #9 (permalink)  
Antiguo 20/07/2015, 09:16
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: PHP orientado a objetos

este es el codigo chronos682

Código PHP:
<?php 
    
require '../modelo/sesion.php'
    new 
sesion("../index.php");    

    require 
'../modelo/usuario.php';
    
$usuario=new cls_usuario();

    class 
controlador_admin{
        private 
$accion;
        private 
$contenido;
        private 
$msj;

        function 
__construct($usuario) {

            
$this->accion=isset($_REQUEST['accion'])?$_REQUEST['accion']:null;
            
$this->contenido=array();

            
$row=$usuario->ver_mi_info();

            if (
$this->accion=="vista_gestion_usuarios" || $this->accion==null) {
            
                
$this->contenido[0]="gestion_usuarios.php";
                
$this->contenido[1]="?accion=vista_gestion_usuarios";
            
            } else if (
$this->accion=="vista_transferencias") {
            
                
$this->contenido[0]="transferencia_proyecto.php";
                
$this->contenido[1]="?accion=vista_transferencias";
            
            } else if (
$this->accion=="vista_trayectos") {
            
                
$this->contenido[0]="trayectos.php";
                
$this->contenido[1]="?accion=vista_trayectos";
            
            } else if (
$this->accion=="vista_bitacora") {
            
                
$this->contenido[0]="bitacora.php";
                
$this->contenido[1]="?accion=vista_bitacora";

            } else if (
$this->accion=="vista_mi_perfil") {
            
                
$this->contenido[0]="mi_perfil.php";
                
$this->contenido[1]="?accion=vista_mi_perfil";

                
$row=$usuario->ver_mi_info();
            
            } else if (
$this->accion=="vista_cambiar_clave") {
            
                
$this->contenido[0]="cambiar_clave.php";
                
$this->contenido[1]="?accion=vista_cambiar_clave";

            } else if (
$this->accion=="agregar_usuario") {
            
                
$this->msj=$usuario->agregar_usuario($_POST['nombre'], $_POST['apellido'], $_POST['tipo_usu'], 
                    
$_POST['correo'], $_POST['usuario'], $_POST['clave']);

                
$this->contenido[0]="gestion_usuarios.php";
                
$this->contenido[1]="?accion=vista_gestion_usuarios";
            
            } else if (
$this->accion=="eliminar_usuario") {
            
                
$this->msj=$usuario->eliminar_usuario($_POST['id']);

                
$this->contenido[0]="gestion_usuarios.php";
                
$this->contenido[1]="?accion=vista_gestion_usuarios";
            
            } else if (
$this->accion=="modificar_usuario") {

                
$_POST['tipo_usu']=isset($_POST['tipo_usu']) ? $_POST['tipo_usu'] : null ;

                if (
$_POST['tipo_usu']) {
                    
$this->msj=$usuario->modificar_usuario($_POST['id'], $_POST['nombre'], $_POST['apellido'], 
                    
$_POST['tipo_usu'], $_POST['correo'], $_POST['usuario']);
                } else {
                    
$this->msj=$usuario->modificar_usuario($_POST['id'], $_POST['nombre'], $_POST['apellido'], 
                        
null$_POST['correo'], $_POST['usuario']);                    
                }

                
$this->contenido[0]="gestion_usuarios.php";
                
$this->contenido[1]="?accion=vista_gestion_usuarios";
            
            } else if (
$this->accion=="modificar_mi_info") {

                
$this->msj=$usuario->modificar_usuario($_POST['id'], $_POST['nombre'], $_POST['apellido'], null,
                
$_POST['correo'], $_POST['usuario']);                    

                
$this->contenido[0]="mi_perfil.php";
                
$this->contenido[1]="?accion=vista_mi_perfil";
            
            } else if (
$this->accion=="cambiar_clave") {
            
                
$this->msj=$usuario->modificar_mi_clave($_POST['id_usuario'], $_POST['clave_actual'],
                    
$_POST['clave_nueva']);

                
$this->contenido[0]="cambiar_clave.php";
                
$this->contenido[1]="?accion=vista_cambiar_clave";
            
            } else if (
$this->accion=="filtrar") {

                
$this->contenido[0]="gestion_usuarios.php";
                
$this->contenido[1]="?accion=vista_gestion_usuarios";
                
                isset(
$_REQUEST['parametro'])?$_REQUEST['parametro']:null;

                if (isset(
$_REQUEST['parametro']) && $_REQUEST['parametro_txt'] != "") {

                    if (
$_REQUEST['parametro']=="nombre_perfil") {
                        
$usuario->listar_usuarios("SELECT * FROM usuario INNER JOIN perfil 
                            WHERE usuario.id_perfil=perfil.id_perfil AND perfil."
.$_REQUEST['parametro'].
                            LIKE '$_REQUEST[parametro_txt]%' ORDER BY perfil."
.$_REQUEST['parametro']." ASC");
                    }else{
                        
$usuario->listar_usuarios("SELECT * FROM usuario INNER JOIN perfil 
                            WHERE usuario.id_perfil=perfil.id_perfil AND usuario."
.$_REQUEST['parametro'].
                            LIKE '$_REQUEST[parametro_txt]%' ORDER BY usuario."
.$_REQUEST['parametro']." ASC");
                    }

                } else {
                    
$usuario->listar_usuarios("SELECT * FROM usuario INNER JOIN perfil 
                        WHERE usuario.id_perfil=perfil.id_perfil ORDER BY "
.$_REQUEST['parametro']." ASC");
                }

                return 
false;
            } else if (
$this->accion=="cerrar_sesion") {
            
                
session_start();
                
session_destroy();
                
                
header("location:../index.php");
                return 
false;
            } 

            require 
'../vista/vista_admin/vista_admin.php';
        }
    }

    
$controlador_admin=new controlador_admin($usuario);
 
?>
aclaro que en gran medida el codigo ha sido condicionado por otras personas para q sea asi, yo se q hay muchas fallas, yo no lo hubiese programado asi, pero me adapto.

mi curiosidad surge por saber buenas practicas.
  #10 (permalink)  
Antiguo 20/07/2015, 09:28
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: PHP orientado a objetos

Ya creo mas o menos entender que es lo que hace. Se supone que al llamar la clase desde tu código esta determina que acción es la que se quiere hacer y de acuerdo a eso genera un array con dos elementos el primero en el que está el nombre del archivo al que apuntará y el segundo las variables que se pasarán por get a través de la url, al final del código (supongo) lo que quieres hacer es que junte los dos elementos p ej: trayectos.php?accion=vista_trayectos y se dirija a esa página. Si es así ahí si tienes que usar el header location pero recuerda que tienes que invocarlo antes de escribir cualquier código html en pantalla para que funcione o sino te va a dar error.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #11 (permalink)  
Antiguo 20/07/2015, 09:39
 
Fecha de Ingreso: junio-2015
Mensajes: 54
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: PHP orientado a objetos

fino chronos682, aclaraste mi duda, muchas gracias por tu ayuda y tu tiempo!

saludos.

Última edición por user_fdw; 20/07/2015 a las 09:41 Razón: error
  #12 (permalink)  
Antiguo 20/07/2015, 11:56
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: PHP orientado a objetos

Cita:
mi curiosidad surge por saber buenas practicas.
Espero que tengas tiempo por que tienes mucho trabajo por delante, comenzado por hacer una buena refactorización del código que presentas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: objetos, orientado
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 13:27.