Ini adalah proyek portofolio saya untuk program Rekayasa Perangkat Lunak ALX. Proyek ini adalah ORM sederhana yang memungkinkan Anda berinteraksi dengan database menggunakan PHP. Proyek ini masih dalam tahap awal dan tidak direkomendasikan untuk digunakan di lingkungan produksi. Proyek ini bersifat open source dan kontribusinya diterima.
Sebastian Muchui
MIT
0.1.0
Anda harus menginstal PHP di mesin Anda untuk menggunakan paket ini. Jika Anda belum menginstal PHP, Anda dapat mendownloadnya dari situs resmi PHP.
Kedua, pastikan Anda telah menginstal composer di mesin Anda. Jika belum, Anda dapat menginstalnya dengan mengikuti petunjuk yang diberikan di situs resmi pembuatnya. Setelah ini selesai, Anda perlu membuat file composer.json di direktori root proyek Anda dan menambahkan kode berikut:
{
"minimum-stability" : " dev "
}
Setelah itu, Anda dapat menginstal paket tersebut dengan menjalankan perintah berikut di terminal Anda:
composer require astianmuchui/ PixelSequel
ORM hadir dengan 2 bagian utama, Dibangun secara terpisah untuk memungkinkan fleksibilitas dan kemudahan penggunaan. Kedua bagian tersebut adalah:
Model adalah bagian dari ORM yang memungkinkan Anda berinteraksi dengan tabel database. Ini memungkinkan Anda untuk melakukan operasi seperti penyisipan, pembaruan, pembuatan kueri, dan penghapusan. Untuk menggunakan model, Anda perlu membuat instance baru dari kelas model.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel ' ,
username: ' root ' ,
password: '' ,
dbhost: ' localhost '
);
Secara Default, nilai berikut ditetapkan:
username
: 'root'
password
: ''
dbhost
: 'localhost'
Dalam lingkungan pengembangan, Anda cukup meneruskan dbname sebagai satu-satunya parameter ke kelas model.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Untuk memasukkan data, Anda hanya perlu memanggil metode Insert
statis. Perhatikan bahwa instance Model tidak perlu ditugaskan ke variabel karena metode akan menyimpulkan koneksi dari objek yang dipakai.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Insert (
table: ' users ' ,
data: [
' name ' => ' John Doe ' ,
' email ' => ' [email protected] '
]
);
Kunci array data harus berupa nama kolom yang valid dalam tabel. Nilai yang sesuai adalah nilai yang akan dimasukkan ke dalam tabel. Dalam versi mendatang, ORM akan dapat secara otomatis menyimpulkan nama kolom dari tabel dan memvalidasi data sebelum dimasukkan.
Di sini pada dasarnya Anda hanya perlu memanggil metode All
. Metode ini dapat mengambil berbagai parameter untuk memfilter data yang ingin Anda ambil.
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
Metode mengembalikan objek data yang diambil. Anda kemudian dapat mengulang objek untuk mendapatkan data. Jika Anda menetapkan batas ke 1, Anda harus memilih indeks nol dari objek untuk mendapatkan data. Biasanya salah satu tujuan utama saat mengembangkan ini adalah menjadikan satu fungsi dapat melakukan semua fungsi yang dipilih. Ada metode pilihan lain tetapi abaikan saja karena tidak ditulis dengan baik dan akan dihapus di versi mendatang.
Metode update pada dasarnya adalah replika dari metode Sisipkan, Namun jenis parameter untuk mengidentifikasi baris dan nilainya harus diteruskan
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
adalah tipe parameter, biasanya nama kolom. param_n
adalah nilai tipe parameter.
Metode Delete
digunakan untuk menghapus data dari database. Dibutuhkan nama tabel dan tipe parameter serta nilai untuk mengidentifikasi baris yang akan dihapus.
use PixelSequel Model Model ;
new Model (
dbname: ' pixel_sequel '
);
Model:: Delete (
table: ' users ' ,
param_t: ' id '
param_n: 1
);
Skema adalah bagian dari ORM yang memungkinkan Anda berinteraksi dengan tabel database. Ini memungkinkan Anda untuk melakukan operasi seperti membuat, memperbarui, dan menghapus tabel. Untuk menggunakan skema, Anda perlu membuat instance kelas model dan meneruskan koneksi database ke kelas skema. Perhatikan bahwa instance Model tidak perlu ditugaskan ke variabel dan skema juga
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Koneksi dapat diperiksa dengan memanggil metode Connected
pada kelas model. Metode ini mengembalikan nilai boolean.
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 ' ;
}
Setelah koneksi dibuat, Anda dapat membuat tabel dengan memanggil metode Create
pada kelas skema. Metode ini menggunakan nama tabel dan array asosiatif dari nama kolom dan tipe datanya.
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
]
]
);
Kunci array struktur harus berupa nama kolom yang valid dalam tabel. Nilai terkait adalah array asosiatif tipe data kolom dan propertinya. Propertinya adalah:
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
Metode Alter
digunakan untuk mengubah tabel. Dibutuhkan tiga parameter: nama tabel, nama kolom, dan apa yang harus disetel
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 "
);
Metode Drop
digunakan untuk menjatuhkan tabel. Dibutuhkan nama tabel sebagai parameter.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Schema:: Drop (
table: ' pxtest '
);
Untuk memutuskan sambungan dari database, Anda dapat memanggil metode Disconnect
pada kelas model.
use PixelSequel Model Model ;
use PixelSequel Schema Schema ;
new Model (
dbname: ' pixel_sequel '
);
new Schema (
Model:: Connection ()
);
Model:: Disconnect ();
Kontribusi dipersilakan. Anda dapat berkontribusi dengan melakukan forking pada repositori dan membuat permintaan tarik. Anda juga dapat membuka masalah jika Anda menemukan bug atau memiliki permintaan fitur apa pun.