k2/activerecord

此包已被弃用且不再维护。未建议替代包。

KumbiaPHP K2版本的Active Record,支持PHP 5.3或更高版本,并需要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,支持PHP 5.3或更高版本,并需要PDO。

虽然这是一个旨在为K2框架提供数据库抽象层的库,但此版本也可以用于任何PHP项目。

目前它没有自己的自动加载器,因此为了使用它,必须在符合PSR-0规范的任何自动加载器中注册库的路径。

配置

数据库连接配置

<?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',
)));

?>

通过以下简单步骤,我们已经配置了数据库连接。

创建模型

<?php

use ActiveRecord\Model;

class Usuarios extends Model
{

}

?>

现在我们的用户类具有访问和与数据库通信的所有基本方法。默认情况下,表名是模型的小写命名约定,但如果无法满足转换,可以通过重写模型的initialize方法来指定表名,例如

<?php

use ActiveRecord\Model;

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

?>

查询记录

此库提供了一系列方法用于执行对数据库的查询,以下是一些示例

<?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"];
}

?>

过滤查询

为了过滤查询,Active Record提供了一个DbQuery类,它允许我们以面向对象的方式构建SQL查询。

<?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;
}

?>