XMicro PHP Class
Installation
mkdir my-project
cd my-project
composer require batuhanozen/x-micro --prefer-dist dev-main
Getting Started
use XMicro\MicroService;
require_once 'vendor/autoload.php';
// INIT CLASS
// NOTE THAT: IF DEBUGGER ENABLED YOU'LL SEE ONLY QUERIES. NONE OF THEM WILL RUN
$service = new MicroService(true);
$db = $service->conn_mysql('localhost', 'x-micro', 'root', '');
Response
$response=[
"message" => "Here will be response message.",
"code" => 200
];
$service->response($response,$response['code']);
Response To Client
{
"message": "Here will be response message.",
"code": 200
}
Create
// CREATE EXAMPLE
$structure = [
'id' => 'INT(11) AUTO_INCREMENT PRIMARY KEY',
'first_name' => 'VARCHAR(255)',
'last_name' => 'VARCHAR(255)',
'age' => 'INT(11) NOT NULL',
'created_at' => 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP',
'updated_at' => 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP',
'deleted_at' => 'TIMESTAMP NULL DEFAULT NULL',
];
//$db->create('test', $structure,true); if you set third parameter true
//function will handle creating last 3 columns (created_at ,updated_at and deleted_at)
$db->create('test', $structure);
Debugger Result
CREATE TABLE IF NOT EXISTS test (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(255),
last_name VARCHAR(255),
age INT(11) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted_at TIMESTAMP NULL DEFAULT NULL);
INSERT
// INSERT EXAMPLE
$data = [ // array of arrays
["first_name" => "John",
"last_name" => "Doe",
"age" => 25
],
["first_name" => "Jane",
"last_name" => "Doe",
"age" => 24
],
["first_name" => "Jack",
"last_name" => "Boe",
"age" => 26
],
["first_name" => "June",
"last_name" => "Boe",
"age" => 25
]
];
$db->insert('test', $data);
Debugger Result
INSERT INTO test
(first_name, last_name, age, created_at)
VALUES
(?,?,?,NOW()),
(?,?,?,NOW()),
(?,?,?,NOW()),
(?,?,?,NOW());
SELECT
// SELECT EXAMPLE 0(Limit,Index)
//$db->select("test", null, null, 0, 10); => this is long
$db->select("test", index: 0, limit: 10); // => we are suggesting to prefer this one :)
// SELECT FIRST EXAMPLE 1
$db->select("test");
// SELECT FIRST EXAMPLE 2 (id equals)
$db->select("test", "id = ?", [1]);
// SELECT FIRST EXAMPLE 3 (id in)
$inArr = [2, 3, 4];
$db->select("test", "id NOT IN (?)", ['(' . implode(',', $inArr) . ')']);
// SELECT LAST EXAMPLE 4
$db->select("test", "1 ORDER BY id DESC");
// SELECT LAST EXAMPLE 5 (id equals)
$db->select("test", "id = ? ORDER BY id DESC", [1]);
// SELECT LAST EXAMPLE 6 (id in)
$inArr = [5, 6, 7];
$db->select("test", "id IN (?) ORDER BY id DESC", ['(' . implode(',', $inArr) . ')']);
Debugger Result
0.) SELECT * FROM test WHERE deleted_at IS NULL LIMIT 0,10;
1.) SELECT * FROM test WHERE deleted_at IS NULL;
2.) SELECT * FROM test WHERE id = ? AND deleted_at IS NULL;
3.) SELECT * FROM test WHERE id NOT IN (?) AND deleted_at IS NULL;
4.) SELECT * FROM test WHERE 1 AND deleted_at IS NULL ORDER BY id DESC;
5.) SELECT * FROM test WHERE id = ? AND deleted_at IS NULL ORDER BY id DESC;
6.) SELECT * FROM test WHERE id IN (?) AND deleted_at IS NULL ORDER BY id DESC;
SELECT ALL
// SELECT ALL EXAMPLE 1
$db->selectAll("test");
// SELECT ALL EXAMPLE WITH CONDITIONS 2
$conditions = ['first_name = ?', 'age <= ?'];
$params = ['John', 30];
$db->selectAll("test", $conditions, $params);
Debugger Result
1.) SELECT * FROM test;
2.) SELECT * FROM test WHERE first_name = ? AND age <= ?;
UPDATE
// UPDATE EXAMPLE
$db->update('test', 1, ['age' => 31]);
Debugger Result
UPDATE test SET age=? WHERE id = ? AND updated_at = NOW();
DELETE
// DELETE CONDITIONAL EXAMPLE 1
$db->delete('test', ["id" => 1]);
// DELETE ALL EXAMPLE 2
$db->delete('test');
Debugger Result
1.) UPDATE test SET deleted_at = NOW(); WHERE id = ?
2.) UPDATE test SET deleted_at = NOW();
COUNT
// COUNT CONDITIONAL EXAMPLE (AND) 1
$db->count('test', ['age > ?', 'salary < ?'], [18, 20000]);
// COUNT CONDITIONAL EXAMPLE (OR) 2
$db->count('test', 'age > ? OR salary < ?', [18, 20000]);
Debugger Result
1.) SELECT COUNT(*) FROM test WHERE age > ? AND salary < ?;
2.) SELECT COUNT(*) FROM test WHERE age > ? OR salary < ?;