2017 © Pedro Peláez
 

library text-database

Text-file based database.

image

rmtram/text-database

Text-file based database.

  • Tuesday, December 22, 2015
  • by Rmtram
  • Repository
  • 2 Watchers
  • 3 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

TextDatabase

Build Status, (*1)

Sorry!! the application has been creating does not work., (*2)

Introduction

Create Table., (*3)

use Rmtram\TextDatabase\Schema\Builder;
use Rmtram\TextDatabase\Schema\Schema;

require __DIR__ . '/vendor/autoload.php';

Rmtram\TextDatabase\Connection::setPath('path/to/');

Builder::make()
    ->table('users', function(Schema $schema) {
    $schema->integer('id')->autoIncrement()->primary();
    $schema->string('name')->notNull();
    $schema->dateTime('created_at');
    $schema->dateTime('updated_at');
});

Builder::make()
    ->table('posts', function(Schema $schema) {
    $schema->integer('id')->autoIncrement()->primary();
    $schema->string('title')->notNull();
    $schema->string('description')->notNull();
    $schema->integer('user_id');
    $schema->dateTime('created_at');
    $schema->dateTime('updated_at');
});

Builder::make()
    ->table('comments', function(Schema $schema) {
    $schema->integer('id')->autoIncrement()->primary();
    $schema->text('comment')->notNull();
    $schema->integer('post_id');
    $schema->dateTime('created_at');
    $schema->dateTime('updated_at');
});

Create EntityManager, (*4)


class UserEntityManager extends BaseEntityManager { /** * @var string */ protected $table = 'users'; /** * @var string */ protected $entity = User::class; /** * @var array */ protected $hasMany = [ 'posts' => Post::class ]; } class PostEntityManager extends BaseEntityManager { /** * @var string */ protected $table = 'posts'; /** * @var string */ protected $entity = Post::class; /** * @var array */ protected $belongsTo = [ 'user' => User::class ]; /** * @var array */ protected $hasMany = [ 'comments' => Comment::class ]; } class CommentEntityManager extends BaseEntityManager { /** * @var string */ protected $table = 'comments'; /** * @var string */ protected $entity = Comment::class; /** * @var array */ protected $belongsTo = [ 'post' => Post::class ]; }

Create Entity, (*5)


class User extends BaseEntity { /** * @var int */ public $id; /** * @var string */ public $name; /** * @var \DateTime|string */ public $created_at; /** * @var \DateTime|string */ public $updated_at; /** * @var string */ protected static $entityManager = UserEntityManager::class; } class Post extends BaseEntity { /** * @var int */ public $id; /** * @var string */ public $title; /** * @var string */ public $description; /** * @var int */ public $user_id; /** * @var \DateTime|string */ public $created_at; /** * @var \DateTime|string */ public $updated_at; /** * @var string */ protected static $entityManager = PostEntityManager::class; } class Comment extends BaseEntity { /** * @var int */ public $id; /** * @var string */ public $comment; /** * @var int */ public $post_id; /** * @var string|\DateTime */ public $created_at; /** * @var string|\DateTime */ public $updated_at; /** * @var string */ protected static $entityManager = CommentEntityManager::class; }

Create, Read, Update, Delete

Create and Update., (*6)


// Create $user = new User(); $user->name = 'NickName' $user->created_at = new DateTime(); $user->updated_at = new DateTime(); UserEntityManager::save($user); // Update $user = new User(); $user->id = 1; // primary key. $user->name = 'NickName' $user->created_at = new DateTime(); $user->updated_at = new DateTime(); UserEntityManager::save($user);

Read., (*7)


$users = UserEntityManager::find()->all(); foreach ($users as $user) { echo $user->id; echo $user->name; } // sort $users = UserEntityManager::find() ->order(['name' => 'asc']) ->all(); // relation $user = UserEntityManager::find()->first(); foreach ($user->posts as $post) { echo $post->title; foreach ($post->comments as $comment) { echo $comment->comment; echo $comment->user->name; } }

Delete., (*8)


// all UserEntityManager::delete(); // where $userRepository = new UserRepository(); UserEntityManager::delete(['id' => 1]) // entity $user = UserEntityManager::find()->first(); UserEntityManager::delete($user);

The Versions

22/12 2015

dev-master

9999999-dev http://rmtram.github.io/TextDatabase

Text-file based database.

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar Rmtram

orm database text textdatabase textorm