kumbia / activerecord
Fast ActiveRecord
Fund package maintenance!
Open Collective
Installs: 1 503
Dependents: 0
Suggesters: 0
Security: 0
Stars: 24
Watchers: 11
Forks: 11
Open Issues: 6
Requires
- php: >=7.4.0
- ext-pdo: *
README
ESPAÑOL - ENGLISH
ActiveRecord
Nuevo ActiveRecord en desarrollo.
No usar en producción
Instalar con composer en KumbiaPHP
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.
Instalar en KumbiaPHP
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
LiteRecord
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 { }
ActRecord
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 { }
Ejemplo
Modelo
<?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 { }
Controller
<?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); } }
Uso de métodos en LiteRecord
Filtrar datos
//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;
DML / Crear, actualizar, borrar
//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);