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

Llamar a un método de clase desde un enlace html

Estas en el tema de Llamar a un método de clase desde un enlace html en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy implementando una web con PHP5 y POO pero no sé cómo haciendo click en un enlace en la página html puedo ejecutar un ...
  #1 (permalink)  
Antiguo 30/12/2006, 07:47
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Llamar a un método de clase desde un enlace html

Hola, estoy implementando una web con PHP5 y POO pero no sé cómo haciendo click en un enlace en la página html puedo ejecutar un método de una clase de php.

¿Alguien puede ayudarme? Gracias anticipadas
  #2 (permalink)  
Antiguo 30/12/2006, 16:04
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: Llamar a un método de clase desde un enlace html

Te conviene para ese caso usar el patron MVC, aunque de forma "sencilla" podrias hacerlo asi:

Código PHP:
$obj = new tuClase();
if( !empty( 
$_GET['metodo'] ) ) {
     
$metodo $_GET['metodo'];
     if( 
method_exists$obj$metodo ) ) {
         
$obj->$metodo();
     } else {
         throw new 
Exception("Metodo $metodo no existe en la clase" );
     }

y asi ya lo llamas asi por ejemplo:
Código:
<a href="pagina.php?metodo=buscar">Buscar</a>
  #3 (permalink)  
Antiguo 31/12/2006, 02:16
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: Llamar a un método de clase desde un enlace html

Si usara el MVC seria pasarle el parametro a un controller, el controller haria eso mismo que pusiste,no?
Yo estoy queriendo desarrollar algo en MVC, algo solo por didactica, ya que aun no trabajo; no se si tengas un ejemplo de un controllador , si es algo que usas formalmente, mucho mejor.
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #4 (permalink)  
Antiguo 31/12/2006, 04:15
 
Fecha de Ingreso: julio-2004
Mensajes: 117
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Llamar a un método de clase desde un enlace html

Muchas gracias GatorV era eso exactamente lo que necesitaba y lo has explicado de maravilla.

Espero no volver a atascarme. Feliz año.
  #5 (permalink)  
Antiguo 31/12/2006, 13:32
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: Llamar a un método de clase desde un enlace html

Un "Controlador" no es nadamas que una clase que se encarga de realizar metodos, afectar el modelo, obtener datos, procesar datos y pasar el resultado a la vista para ser rendereado ya como html, xml, etc.

Si a lo que te refieres es un dispatcher/router, puedes iniciar con algo muy sencillo:
Código PHP:
class Router {
     public function 
__construct() {}

     public class 
route() {
           
$controller $_GET['controller'];
           
$action $_GET['action'];

           if( !
$controller $controller 'index';
           if( !
$action $action 'indexAction';
           else 
$action $action "Action";

           
$controllerLocation getcwd() . '/controllers/' $controler '.php';

           if( 
file_exists$controllerLocation ) ) {
                 include_once( 
$controllerLocation );
           } else {
                 throw new 
Exception("No se encuentra el controlador $controllerLocation");
           }

           if( 
class_exists$controllerfalse ) ) {
                  
$cont = new $controller();
           } else {
                  throw new 
Exception"Controller Class not found $controller" );
           }

           if( 
method_exits$cont$action ) ) {
                  
$cont->$action();
           } else {
                   throw new 
Exception"Action not callable $action" );
           }

           
/*Ya a partir de aqui necesitas obtener las variables desde tu 
controlador, y crear una instancia de la vista y pasarle las variables para 
renderear tu html.*/

     
}

Y asi usas tu archivo:
Código PHP:
include( "Router.php" );
$router = new Router();
$router->route(); 
y ya llamas a tu index.php:
Código:
pagina.com/index.php?controller=Clientes&action=verClientes
  #6 (permalink)  
Antiguo 31/12/2006, 15:39
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: Llamar a un método de clase desde un enlace html

Perfecto GatorV... gracias.
__________________
-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




La zona horaria es GMT -6. Ahora son las 03:47.