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

Método estructura formulario.

Estas en el tema de Método estructura formulario. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Ante mi afán por lograr por lo menos apartar algo las clases principales de la interfaz en PHP, llegué a una conclusión algo simple, pero ...
  #1 (permalink)  
Antiguo 17/04/2009, 22:57
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 16 años, 6 meses
Puntos: 53
Exclamación Método estructura formulario.

Ante mi afán por lograr por lo menos apartar algo las clases principales de la interfaz en PHP, llegué a una conclusión algo simple, pero que hasta ahora satisface mi practica:

Ejemplo:

Código PHP:
<?php 

include_once('PHP/Interfaz/FormularioRegistro.php');
include_once(
'PHP/Clases/Registro.php');

$objetoFormularioRegistro=new FormularioRegistro();
$objetoFormularioRegistro->estructuraFormulario();

$objetoRegistro=new Registro();
$objetoRegistro->asignarNombres($_POST['nombres']);
$objetoRegistro->obtenerNombres();
?>
Clase FormularioRegistro:

Código PHP:
<?php 

class FormularioRegistro{

public function 
estructuraFormulario(){

echo 
'<form id="form1" name="form1" method="post">
<input name="nombres" type="text" id="nombres" size="25" />
<input type="submit" name="enviar" id="enviar" value="enviar" />
</form>'
;
}
}
Clase Registro:

Código PHP:
<?php 

class Registro{

public 
$nombres;
public 
$apellidos;
public 
$email;
public 
$contrasenia;
public 
$sexo;
public 
$dia;
public 
$mes;
public 
$anio;
public 
$ubicacion;

function 
__construct(){ 

           
$this->nombres='';
         
$this->apellidos='';
         
$this->email='';
         
$this->contrasenia='';
         
$this->sexo='';
         
$this->dia='';
         
$this->mes='';
         
$this->anio='';
         
$this->ubicacion='';
       } 
    
public function 
asignarNombres($arg){
if(isset(
$this->nombres)){
$this->nombres=$arg;
if(empty(
$this->nombres)){
echo 
'No se ha espeficicado un valor para nombres, ubicación: método asignarNombres.<br /br>';
}
}else{
echo 
'Atributo no definido, ubicación: método asignarNombres.';
}
}

public function 
obtenerNombres(){
return 
$this->nombres;
} (...) 
?>
Así obtengo en parte una buena practica de la POO en php.

En conclusión, ¿alguna opinion, en general sobre dicho tema?, concidero una buena practica en este caso, aunque la idea de crear un método que imprima parte del código HTML no suena tanto de mi agrado.

Aceptaré algunos consejos...
  #2 (permalink)  
Antiguo 18/04/2009, 13:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Método estructura formulario.

Recuerda que una gran parte ya sea usando PHP Estructurado o PHP Orientado a Objetos es separar la vista del código PHP, esto se hace por lo general con una clase de plantillas, ya sea Smarty o PHP puro, lo ideal es separar lo más posible de tu parte de PHP, la parte de HTML.

Las ventajas de esto son muchas, y la principal es poder darle mejor mantenimiento a tus scripts, por lo que en lugar de dejar todo el HTML como un string dentro de una clase, mejor usa un motor de plantillas donde puedas asignar algunas variables y renderear el HTML final.

Por otro lado dentro de tu clase no entiendo para que comprobar con isset($this->nombres) ya que siempre va a ser true, el empty es el que si puede varear.

Saludos.
  #3 (permalink)  
Antiguo 18/04/2009, 13:53
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 16 años, 6 meses
Puntos: 53
Respuesta: Método estructura formulario.

Con respecto a los isset(atributo) no siempre va a ser verdadero, en algun momento destacaré el tener que usar no solo diez o menos atributos, dado ello simplemente indico si esta definido o no, si lo esta asigna el argumento, si no "he escrito mal el nombre del atributo" y me indique donde esta el error. Son controles que en Java los manejaba dentro de las mismas clases, para evitar un error algo global de no saber que parametro es el que no esta indicado o asignado correctamente.

Con respecto a lo que me dices de la interfaz: aceptaría sólo manejar código puro, revise en parte las FAQ's y no encontré un ejemplo algo considerable, me gustaría ver una clase E interfaz complementada correctamente o hasta donde la POO en PHP lo permita.

¡Gracias!, pensé nadie daba con mi punto.
¡Saludos!.
  #4 (permalink)  
Antiguo 18/04/2009, 15:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Método estructura formulario.

Mientras tu en tu contructor hagas: $this->nombres = ''; al pasarlo por isset() en cualquier método va a dar true, es por eso mi comentario, lo que sí va más a doc es empty($this->nombres).

Si quieres ver un buen ejemplo implementado ve Zend_View es un componente de Zend_Framework encargado de separar el código PHP de las plantillas y te permite hacer cosas básicas como:
Código php:
Ver original
  1. $data = array(
  2.     array(
  3.         'author' => 'Hernando de Soto',
  4.         'title' => 'The Mystery of Capitalism'
  5.     ),
  6.     array(
  7.         'author' => 'Henry Hazlitt',
  8.         'title' => 'Economics in One Lesson'
  9.     ),
  10.     array(
  11.         'author' => 'Milton Friedman',
  12.         'title' => 'Free to Choose'
  13.     )
  14. );
  15.  
  16. $view = new Zend_View();
  17. $view->books = $data;
  18.  
  19. echo $view->render('booklist.php');

booklist.php:
Código php:
Ver original
  1. <?php if ($this->books) { ?>
  2.     <!-- A table of some books. -->
  3.     <table>
  4.         <tr>
  5.             <th>Author</th>
  6.             <th>Title</th>
  7.         </tr>
  8.  
  9.         <?php foreach ($this->books as $key => $val) { ?>
  10.         <tr>
  11.             <td><?php echo $this->escape($val['author']); ?></td>
  12.             <td><?php echo $this->escape($val['title']); ?></td>
  13.         </tr>
  14.         <?php } ?>
  15.  
  16.     </table>
  17.  
  18. <?php } else { ?>
  19.  
  20.     <p>There are no books to display.</p>
  21.  
  22. <?php } ?>

Saludos.
  #5 (permalink)  
Antiguo 18/11/2009, 17:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Método estructura formulario.

Realmente quiero agradecer por el aporte, en verdad llevaba tiempo en un problema con php, y con lo que has puesto me has dado la punta del hilo para jalar, gracias.
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 07:41.