miladm/prototype

1.19.0 2023-10-29 19:57 UTC

README

Just install package using composer and load autoloader into your index.php file

composer require miladm/prototype

index.php

<?php

include 'vendor/autoload.php';

create model (prototype)

use miladm\Prototype;

class UserModel extends Prototype
{

}

here we extend Prototype

create connection

to create connection create a class as below

use miladm\table\Connection;

class MainConnection extends Connection
{
    public $host = "127.0.0.1";
    public $databaseName = "sample";
    public $user = 'root';
    public $password = 'root';
}

and setup your connection into prototype as below

class UserModel extends Prototype
{
    public function connection()
    {
        return new MainConnection;
    }
}

insert schema

to create schema we have to setup schema in init method pf class

class UserModel extends Prototype
{
    public function connection()
    {
        return new MainConnection;
    }

    public function init()
    {
        // schema goes here
    }
}

create schema

there's a method in Prototype parent called schema as below

    schema($name = false): Schema

name parameter is the name of this prototype in your database. for example if you have a table named user_data in database and you want to create UserModel prototype you have to put user_data as name into schema method.

class UserModel extends Prototype
{
    public function init()
    {
        $this->schema('user_data');
    }
}

to create schema you have to setup architecture of the table. to config table architecture you have to call methods of Schema. to understand better we go through an example

    public function init()
    {
        $this->schema('user_data')->string('name')->string('family')->int('age');
    }

in this example we have three fields for table user_data and they are name in type if string and family in type of string and age in type of number. by type string we mean varchar in mariadb database and by type number we mean int.

Important note: all schema has id:int, create_time:timestamp and update_time:timestamp by default. you don't need to add any.

there are more field types for your architecture. you can follow as table below:

Example

    public function init()
    {
        $this->schema('user_data')
            ->string('name')
            ->string('family')
            ->int('age')
            ->email('email')
            ->hash('password')
            ->boolean('verified');
    }

this documentation is under construction but code talks for itself. feel free to read and use the code!