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 < ?;