2017 © Pedro Peláez
 

library schemadb

Uknown PHP Database Abstraction Layer

image

javanile/schemadb

Uknown PHP Database Abstraction Layer

  • Wednesday, July 11, 2018
  • by francescobianco
  • Repository
  • 11 Watchers
  • 41 Stars
  • 49 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 7 Forks
  • 8 Open issues
  • 9 Versions
  • 0 % Grown

The README.md

javanile/moldable SensioLabsInsight

StyleCI Code Climate Build Status Test Coverage, (*1)

Moldable is an abstraction layer to manage MySQL database with improved function to alter-state and manipulate database schema. Moldable integrates a ORM class for manage persistent objects and adapt database schema, (*2)

Searcing for contributors :sunglasses:

We are looking for contributors (PHP lovers) that are passioned by ORM and Database worlds for: - Applying PSR code standard in working codebase and beautify the source files - Testing library to different framework like: Slim, Laravel, ZendFramenwork, etc... - Write and maintains updated the wiki sections https://github.com/javanile/moldable/wiki - Increase popularity of https://packagist.org/packages/javanile/moldable by different kind of promotions, (*3)

We guarantee all visibility and thanks for our contributors, many many stars and public reference in all blog posts and articles that talk about javanile/moldable, (*4)

Install via composer

We recommend installing via composer, to install otherwise you will write a issue., (*5)

composer require javanile/moldable

Get Started

How to: Connect to database

<?php
// library namespace 
use Javanile\Moldable\Database;

// initialize a database connection object 
$db = new Database([
    'host'     => 'localhost',
    'dbname'   => 'db_marketing',
    'username' => 'root',
    'password' => 'p4ssw0rd',
    'prefix'   => 'prefix_',
]);

// '$db' is ready to use for your manipulation

How to: Create ORM class-model

<?php
// library namespace 
use Javanile\Moldable\Storable;

// define ORM class-model
class Customer extends Storable 
{
    public $id = self::PRIMARY_KEY;
    public $name = '';
}

// instance empty object
// database tables and fields are automatic generated 
// or updated if change Customer class
$customer = new Customer();

// assign values
$customer->name = 'Franky Franco';

// now object persist on DB
$customer->store();

How to: Create schema (update if exists)

<?php
// '$db' is pre-connected database object (follow: 'How to: Connect to database')

// apply method send queries to create 
// or align database to defined schema 
$db->apply([
    // customer table name
    'Customer' => [     
        // customer fields
        'id'     => $db::PRIMARY_KEY,   // define field as a primary key
        'name'   => '',         // empty string define field as VARCHAR 
        'points' => 0,          // 0 (zero) define field as INT(11)
        'born'   => $db::DATE,      // use to define as date field
        'bio'    => $db::TEXT,      // text for large string and contents
    ],
    // products table name
    'Products' => [
        // products fields      
        'id'    => $db::PRIMARY_KEY,    // define field as a primary key
        'name'  => '',          // empty string define field as VARCHAR 
        'price' => .0,          // for float number init field with point-zero ".0" 
    ],
]);

Setup for testing

To test the library, follow these steps: 1. Run a local MySQL database 2. Copy file phpunit.xml.dist to phpunit.xml 3. Update phpunit.xml with database connection paramiters 4. Run ./vendor/bin/phpunit from project directory, (*6)

Talk about

  • https://medium.com/@billmike1994/getting-started-with-moldable-an-orm-for-continuous-migration-d4be845b7c65
  • https://github.com/nazneen1/follow/wiki/Utilize-Javanile--php-tool-to-connect-any-database
  • https://www.reddit.com/r/PHP/comments/6jsm2d/the_only_php_mysql_orm_for_continuous_delivery/
  • https://www.reddit.com/r/PHP/comments/3okj7x/schemadb_a_modern_and_coincise_database/?ref=readnext_4
  • https://www.reddit.com/r/PHP/comments/427zvg/schemadb_adapt_schema_of_mysql_db_based_on_class/
  • http://fudforum.org/forum/index.php?S=Google%20%5BBot%5D&t=msg&th=123561
  • http://www.codingforums.com/php/374551-manipulate-database-schema.html#post1497472
  • http://forums.phpfreaks.com/topic/300920-manipulate-database-schema-with-orm/
  • http://www.giorgiotave.it/forum/php-mysql/241550-manipolare-lo-schema-del-database.html#post1205019
  • http://www.iprogrammatori.it/forum-programmazione/php/manipolare-schema-del-database-t27275.html
  • http://ctolib.com/javanile-moldable.html

Roadmap

  • Support to MongoDB for trasparent switch MySQL/MongoDB
  • Manage table to store key-value pair like Setting or Config or MetaField
  • Manage UUID field (large integer or hash string) alternative to PRIMARY_KEY index
  • Flexible join system to extend field of table model on runtime
  • Define encode/decode static method for a sub-set of field
  • Implementig Unit of work pattern
  • Listening For Query Events (gestione hook/event per modelli e query al db)

The Versions

11/07 2018

dev-mergify/initial-config

dev-mergify/initial-config http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

18/10 2017

dev-master

9999999-dev http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

18/10 2017

dev-analysis-q2mgeR

dev-analysis-q2mgeR http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

18/10 2017

0.0.47

0.0.47.0 http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

09/10 2017

0.0.46

0.0.46.0 http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

07/09 2017

0.0.9

0.0.9.0 http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

04/04 2017

0.0.1

0.0.1.0 http://www.javanile.org

Uknown PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

  • php >=5.4

 

The Development Requires

by Francesco Bianco

database persistence queryobject schemadb moldable

12/09 2016

v0.4.0

0.4.0.0 http://www.javanile.org

Powered PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Francesco Bianco

database persistence queryobject schemadb

21/04 2016

dev-master-mssql-dev

dev-master-mssql-dev http://www.javanile.org

Powered PHP Database Abstraction Layer

  Sources   Download

MIT

The Requires

  • php >=5.4

 

by Francesco Bianco

database persistence queryobject schemadb