Este es mi proyecto de cartera para el programa de Ingeniería de Software ALX. El proyecto es un ORM simple que le permite interactuar con la base de datos usando PHP. El proyecto aún se encuentra en sus primeras etapas y no se recomienda su uso en entornos de producción. El proyecto es de código abierto y las contribuciones son bienvenidas.
Sebastian Muchui
MIT
0.1.0
Necesita tener PHP instalado en su máquina para usar este paquete. Si no tiene PHP instalado, puede descargarlo desde el sitio web oficial de PHP.
En segundo lugar, asegúrese de tener Composer instalado en su máquina. De lo contrario, puede instalarlo siguiendo las instrucciones proporcionadas en el sitio web oficial del compositor. Una vez hecho esto, debe crear un archivo compositor.json en el directorio raíz de su proyecto y agregar el siguiente código:
{
"minimum-stability" : " dev "
}
Después de eso, puede instalar el paquete ejecutando el siguiente comando en su terminal:
composer require astianmuchui/ PixelSequel
El ORM viene con 2 partes principales, construidas por separado para permitir flexibilidad y facilidad de uso. Las dos partes son:
El modelo es la parte del ORM que le permite interactuar con las tablas de la base de datos. Le permite realizar operaciones como inserción, actualización, consulta y eliminación. Para utilizar el modelo, debe crear una nueva instancia de la clase de modelo.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel ' ,
username: ' root ' ,
password: '' ,
dbhost: ' localhost '
);
De forma predeterminada, se establecen los siguientes valores:
username
: 'root'
password
: ''
dbhost
: 'localhost'
En un entorno de desarrollo, puede simplemente pasar el nombre de base de datos como único parámetro a la clase de modelo.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Para insertar datos, solo necesita llamar al método estático Insert
. Tenga en cuenta que no es necesario asignar la instancia del modelo a una variable, ya que los métodos inferirán la conexión a partir del objeto instanciado.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Insert (
table: ' users ' ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);
Las claves de las matrices de datos deben ser nombres de columnas válidos en la tabla. Los valores correspondientes son los valores que se insertarán en la tabla. En las próximas versiones, el ORM podrá inferir automáticamente los nombres de las columnas de la tabla y validar los datos antes de la inserción.
Aquí básicamente necesitas llamar al método All
. El método puede tomar una variedad de parámetros para filtrar los datos que desea recuperar.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
$ users = Model:: All (
table: ' users ' ,
where: [
' name ' => ' John Doe '
]
where_like: [
' email ' => ' gmail '
]
order_by: 'id',
order: ' DESC ' ,
limit: 10
);
table: The table to read from
where: An associative array of the column names and their values to filter the data using the where clause
where_like: An associative array of the column names and their values to perform searches
order_by: The column to order the data by
order: The order to use. Either 'ASC' or 'DESC'
limit: The number of records to retrieve
json: A boolean value to determine if the data should be returned as a json string or an array
El método devuelve un objeto de los datos recuperados. Luego puede recorrer el objeto para obtener los datos. Si establece el límite en 1, deberá seleccionar el índice cero del objeto para obtener los datos. Por lo general, uno de los objetivos clave al desarrollar esto era lograr que una sola función realice todas las funciones seleccionadas. Existen otros métodos de selección, pero ignórelos ya que no están bien escritos y se eliminarán en versiones futuras.
El método de actualización es básicamente una réplica del método Insertar. Sin embargo, se debe pasar el tipo de parámetro para identificar la fila y su valor.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Update (
table: ' users ' ,
param_t: ' id '
param_n: 1 ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);
param_t
es el tipo de parámetro, normalmente un nombre de columna. param_n
es el valor del tipo de parámetro.
El método Delete
se utiliza para eliminar datos de la base de datos. Toma el nombre de la tabla y el tipo y valor del parámetro para identificar la fila a eliminar.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Delete (
table: ' users ' ,
param_t: ' id '
param_n: 1
);
El esquema es la parte del ORM que le permite interactuar con las tablas de la base de datos. Le permite realizar operaciones como crear, actualizar y eliminar tablas. Para utilizar el esquema, debe crear una instancia de la clase de modelo y pasar la conexión de la base de datos a la clase de esquema. Tenga en cuenta que no es necesario asignar la instancia del modelo a una variable y al esquema también.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
La conexión se puede verificar llamando al método Connected
en la clase de modelo. El método devuelve un valor booleano.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
if (Model:: Connected ())
{
new Schema (
Model:: Connection ()
);
echo ' Connected ' ;
}
else
{
echo ' Not Connected ' ;
}
Una vez establecida la conexión, puede crear tablas llamando al método Create
en la clase de esquema. El método toma el nombre de la tabla y una matriz asociativa de los nombres de las columnas y sus tipos de datos.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Create (
table: ' pxtest ' ,
structure: [
" id " => [
" type " => " int " ,
" length " => 11 ,
" primary_key " => true
],
" username " => [
" type " => " varchar " ,
" length " => 11 ,
" null " => false
]
]
);
Las claves de la matriz de estructura deben ser nombres de columnas válidos en la tabla. Los valores correspondientes son matrices asociativas de los tipos de datos de las columnas y sus propiedades. Las propiedades son:
type: The data type of the column
length: The length of the column
primary_key: A boolean value to determine if the column is a primary key
null: A boolean value to determine if the column can be null
auto_increment: A boolean value to determine if the column is auto increment
El método Alter
se utiliza para modificar tablas. Toma tres parámetros: el nombre de la tabla, el nombre de la columna y qué configurar
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Alter (
table: ' pxtest ' ,
column: ' username '
set: " int(255) NOT NULL "
);
El método Drop
se utiliza para eliminar tablas. Toma el nombre de la tabla como parámetro.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Drop (
table: ' pxtest '
);
Para desconectarse de la base de datos, puede llamar al método Disconnect
en la clase de modelo.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Model:: Disconnect ();
Las contribuciones son bienvenidas. Puedes contribuir bifurcando el repositorio y realizando una solicitud de extracción. También puede abrir un problema si encuentra algún error o tiene alguna solicitud de función.