k2/activerecord

This package is abandoned and no longer maintained. No replacement package was suggested.

Active Record para KumbiaPHP versión K2, trabaja con PHP 5.3 ó superior y requiere PDO.

dev-master 2013-05-28 22:47 UTC

This package is auto-updated.

Last update: 2022-02-01 12:22:51 UTC


README

Active Record para K2, trabaja con PHP 5.3 ó superior y requiere PDO.

Aunque es una librería realizada con la finalidad de ofrecer una capa de abstracción a base de datos para el framework K2, esta versión puede ser usada en cualquier proyecto PHP.

Actualmente no tiene su propio autoloader, por lo que para usarlo se debe registrar la ruta hacia la lib en cualquier autoloader que cumpla las especificaciones PSR-0.

Configuración

Configuración de la conexión a la base de datos:

<?php

use ActiveRecord\Config\Config;
use ActiveRecord\Config\Parameters;

Config::add(new Parameters("default", array(
    'username' => 'root',
    'password' => 'contraseña',
    'host' => 'localhost', //por defecto localhost
    'type' => 'mysql',
    'port' => '3306', //si no se especifica se usa el puerto por defecto del gestor de base de datos usado.
    'name' => 'nombre_base_de_datos',
)));

?>

Con estos sencillos pasos ya tenemos configurada nuestra conexión a la base de datos.

Creando un Modelo

<?php

use ActiveRecord\Model;

class Usuarios extends Model
{

}

?>

Ahora nuestra clase usuario posee todos los métodos básicos para el acceso y comunicación con nuestra base de datos. por defecto el nombre de la tabla es el nombre del módelo en notación small_case, sin embargo para casos donde no se pueda cumpliar la conversión, podemos especificar el nombre de la tabla reescribiendo el método initialize del modelo, ejemplo:

<?php

use ActiveRecord\Model;

class Usuarios extends Model
{
    protected function initialize()
    {
        static::table('usuarios');
    }
}

?>

Consultando registros

La lib ofrece una serie de métodos para la realización de consultas a nuestra base de datos, veamos algunos ejemplos:

<?php

//Consultando todos los registros en la tabla.
//Devuelve todos los registros de la tabla en la base de datos

$usuarios = Usuarios::findAll();
foreach($usuarios as $usuario){
    //Cada elemento iterado en el foreach es un objeto Usuarios
    echo $usuario->nombres;
}

//Obteniendo el resultados como una matriz
//Devuelve todos los registros de la tabla en la base de datos como un arreglo.

$usuarios = Usuarios::findAll("array");
foreach($usuarios as $usuario){
    //Cada elemento iterado en el foreach es un arreglo
    echo $e["nombres"];
}

?>

Filtrando Consultas

Para filtrar consultas el active record nos ofrece una clase DbQuery que nos permitirá construir consultas SQL de manera orientada a Objetos.

<?php

//El metodo createQuery() crea y nos devuelve una instancia de DbQuery

Usuarios::createQuery()
    ->where("nombres = :nom")
    ->bindValue("nom", "Manuel José")
    ;//->findAll(); //podemos llamar a findAll desde el DbQuery ó hacerlo desde la clase.

//ya que el active record trabaja con PDO, y este permite crear consultas preparadas, es decir, los valores
//de variables no se colocan directamente en la cadena de consulta, sino que se pasan a traves de métodos
//de la clase PDO, que se encargan de filtrar y sanitizar los valores de la consulta, el DbQuery permite establecer
//estos valores directamente en su clase a través de los métodos bindValue($param,$value) y bind($params).

$usuarios = Usuarios::findAll(); //aunque llamemos al mismo metodo findAll, esté va a filtrar los datos por medio de
                                //las especificaciones indicadas en la instancia del DbQuery.

//mostramos los registros que nos devolvió la consulta:
foreach($usuarios as $usuario){
    //Cada elemento iterado en el foreach es un objeto Usuarios
    echo $usuario->nombres;
}

?>