ESPAÑOL - ENGLISH
Nuevo ActiveRecord en desarrollo.
No usar en producción
Necesita KumbiaPHP > 0.9RC
- Crear el archivo composer.json en la raiz del proyecto:
--proyecto
|
|--vendor
|--default
|--core
|--composer.json Acá va nuestro archivo
- Añadir el siguiente código:
{
"require": {
"kumbia/activerecord" : "dev-master"
}
}
-
Ejecutar el comando composer install
-
Seguir los pasos 2 y 3 de la siguiente sección.
Necesita KumbiaPHP > 0.9RC
-
Copiar config/config_databases.php en app/config/databases.php y configurar
-
(Opcional) Añadir en app/libs/ : lite_record.php y/o act_record.php
Para los que prefieren SQL y las ventajas de un ORM, incluye un mini ActiveRecord
<?php
//app/libs/lite_record.php
/**
* Record
* Para los que prefieren SQL con las ventajas de ORM
*
* Clase padre para añadir tus métodos
*
* @category Kumbia
* @package ActiveRecord
* @subpackage LiteRecord
*/
//use Kumbia\ActiveRecord\LiteRecord as ORM;
class LiteRecord extends \Kumbia\ActiveRecord\LiteRecord
{
}
ActiveRecord completo
<?php
//app/libs/act_record.php
/**
* ActiveRecord Nuevo
*
* Clase padre para añadir tus métodos
*
* @category Kumbia
* @package ActiveRecord
* @subpackage ActiveRecord
*/
//use Kumbia\ActiveRecord\ActiveRecord;
class ActRecord extends \Kumbia\ActiveRecord\ActiveRecord
{
}
<?php
//app/models/personas.php
class Personas extends ActRecord //o LiteRecord según el que prefiera
{
}
O directamente sin clase padre
<?php
//app/models/personas.php
class Personas extends \Kumbia\ActiveRecord\LiteRecord
{
}
<?php
//app/controller/personas_controller.php
class PersonasController extends AppController {
public function index() {
$this->data = Personas::all();
}
public function find($id) {
$this->data = Personas::get($id);
}
}
//obtener todos los registros como array
$filas = Personas::all();
echo $filas[0]->nombre;
//obtener un registro por su clave primaria
$fila = Personas::get($personaId);
echo $fila->nombre;
//obtener los registros como array según el filtro
$filas = Personas::filter("WHERE nombre LIKE ?", [$nombrePersona]);
echo $filas[0]->nombre;
//obtener registro según sql
$fila = Personas::first("SELECT * FROM personas WHERE nombre = :nombre", [":nombre" => $nombrePersona]);
echo $fila->nombre;
//obtener array de registros según sql
$filas = Personas::all("SELECT * FROM personas WHERE fecha_contrato >= ?", [$fechaContrato]);
echo $filas[0]->nombre;
//creando un nuevo registro
$personaObj = new Personas();
$personaObj->create([
'nombre' => 'Edgard Baptista',
'cargo' => 'Contador',
'fecha_contrato' => date('Y-m-d'),
'activo' => 1
]); //retorna True o False si hay éxito o error respectivamente
//creando un nuevo registro //alternativa
//por favor, prefiera este método por su simplicidad.
//save ejecuta el método create cuando falta la clave primaria y
//el de actualización cuando existe
$personaObj = new Personas();
$personaObj->save([
'nombre' => 'Edgard Baptista',
'cargo' => 'Contador',
'fecha_contrato' => date('Y-m-d'),
'activo' => 1
]); //retorna True o False si hay éxito o error respectivamente
//creando un nuevo registro //alternativa //método abreviado
//pasamos los datos cuando se instancia la clase
$personaObj = new Personas([
'nombre' => 'Edgard Baptista',
'cargo' => 'Contador',
'fecha_contrato' => date('Y-m-d'),
'activo' => 1
]);
$personaObj->save(); //retorna True o False si hay éxito o error respectivamente
//actualizar un registro
//primero buscar el registro que se quiere actualizar
$personaObj = Personas::get($personaId);
$personaObj->update([
'nombre' => 'Edgard Baptista',
'activo' => 0
]); //retorna True o False si hay éxito o error respectivamente
//actualizar un registro //alternativa
//primero buscar el registro que se quiere actualizar
$personaObj = Personas::get($personaId);
$personaObj->save([
'nombre' => 'Edgard Baptista',
'activo' => 0
]); //retorna True o False si hay éxito o error respectivamente
//borrar un registro usando su clave primaria
Personas::delete($personaId);