PHP » Tutorial » Diseño Mapeo Objeto-Relacional Unidad I

Conexión

Archivo: Conexion.php

<?php

//Archivos necesarios
require 'phpDataMapper/Base.php';
require 'phpDataMapper/Adapter/Mysql.php';

class Conexion {//Inicio de la clase

    public function getConexion() {
        try {
//parametros: ip, base de datos, usuario, pass
            $conexion = new phpDataMapper_Adapter_Mysql ( 'localhost', 'prueba', 'root', '' );
        } catch ( Exception $e ) {
            echo $e->getMessage ();
            exit ();
        }
        return $conexion;
    }

}//Fin de la clase

?>

El primer archivo requerido es el Base.php este es para las tablas, el mapeo.

El segundo es la interfaz de conexión para MySql.

El bloque try-catch es una estructura que se usa cuando es necesario capturar excepciones (errores).

try {
//Sentencias a ejecutar
} catch ( Exception $e ) {
//Sentancias a ejecutar en caso de una excepcion
}

En este caso la excepción seria que no se pudo hacer la conexión con MySql.

Mapeo

Archivo: Persona.php

<?php

class Persona extends phpDataMapper_Base {//inicio de la clase de mapeo

    // definir la fuente de datos (tabla)
    protected $_datasource = "persona";

    // definir los atributos como propiedades de la clase con visibilidad publica
    public $id = array ('type' => 'int', 'primary' => true, 'serial' => true );
    public $nombre = array ('type' => 'string', 'required' => true );
    public $email = array ('type' => 'string', 'required' => true );
    public $web = array ('type' => 'string' );
   
}//fin de la clase de mapeo

?>

Estructura:

Uso

Archivo: index.php

<?php

    include 'Conexion.php';
    include 'Persona.php';

    $persona = new Persona(Conexion::getConexion());
    
?>

Al instanciar el modelo pasamos por parametro la conexión.

La sentencia Conexion::getConexion() significa una auto-instanciación de Conexion(), (no se necesita el new), y llamado de la función getConexion() inmediatamente.

También podría ser:

<?php

    include 'Conexion.php';
    include 'Persona.php';

    $conexion = new Conexion();
    $persona = new Persona($conexion->getConexion());

?>

sauljp07

Publicado el 22 de Julio del 2010 por sauljp07

1353 visitas, 2 mensajes y 2 ediciones

Mensajes

Diego Escares Diego Escares el 25 de Julio del 2010: 0

Ayudita visual de como se vería "id" en phpmyadmin, con la opción auto increment (A_I):

Diego Escares Diego Escares el 03 de Septiembre del 2010: 0

Funciona muy cool!! me encantó como funciona, ayer lo estuve practicando :D

¡Amigo! te demorarás 10 segundos en crear tu cuenta.

Disfrutarás de todos los beneficios de DocumentoWeb.

Twitter Twitter Facebook Facebook Feed RSS Feed RSS

www.DocumentoWeb.com Licencia Creative Commons