2017 © Pedro Peláez
 

library higher

ORM library

image

ackintosh/higher

ORM library

  • Saturday, December 20, 2014
  • by ackintosh
  • Repository
  • 1 Watchers
  • 0 Stars
  • 5 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Higher

[Work in progress] Higher is a ORM library, written in PHP., (*1)

master : Build
Status Coverage Status, (*2)

develop : Build Status Coverage Status, (*3)

Description

Named "Higher" was inspired by this song. (「゚Д゚)「 gow gow, (*4)

MAN WITH A MISSION : higher, (*5)

Requirement

PHP 5.4 or higher, (*6)

Usage

<?php
$config = (new Ackintosh\Higher\Config())
    ->setConfigFile('config.yml')
    ->parse()
    ->setTableDir(__DIR__ . '/table');

$repo = new Ackintosh\Higher\Repository($config);
$connectionManager = new Ackintosh\Higher\ConnectionManager($config);
$query = new Ackintosh\Higher\Query($connectionManager);

$users = $repo->get('users');
$orders = $repo->get('orders');

SELECT

$res = $query->select([
        [$users, 'name', 'addr'],
        [$orders, 'total'],
    ])
    ->from($users)
    ->join($orders, ['id' => 'user_id'])
    ->where(
        function ($expr) use ($users, $orders) {
            $expr->_($users, ['id', '=', 2]);
            $expr->_or($users, ['id', '=', 3]);
        },
        'AND',
        function ($expr) use ($users, $orders) {
            $expr->_($users, ['id', '=', 2]);
            $expr->_or($users, ['id', '=', 3]);
        }
        )
    ->useMaster()// use the master DB explicitly.
    ->execute();
SELECT
`users`.`name` as `users.name`,
`users`.`addr` as `users.addr`,
`orders`.`total` as `orders.total`
FROM
`users`
INNER JOIN `orders`
ON `users`.`id` = `orders`.`user_id`
WHERE
(  `users`.`id` = ? OR `users`.`id` = ? )
AND
(  `users`.`id` = ? OR `users`.`id` = ? )

INSERT

<?php
$connectionManager->begin();

$res = $query->insert($users, ['name', 'created'])
    ->values(['testname', date('Y-m-d H:i:s')])
    ->execute();

$connectionManager->commit();
INSERT INTO `users` ( `name`,`created` )  VALUES ( ?,? )

UPSERT

<?php
$connectionManager->begin();

$res = $query->upsert($users, ['name', 'created'])
    ->values(['testname', date('Y-m-d H:i:s')])
    ->execute();

$connectionManager->commit();
INSERT INTO `users` ( `name`,`created` )  VALUES ( ?,? ) ON DULPLICATE KEY UPDATE `name` = ?,`created` = ?

UPDATE

<?php
$ret = $query->update($users)
    ->set(['name' => 'foo', 'addr' => 'bar'])
    ->where(
        function ($expr) use ($users) {
            $expr->_($users, ['id', '=', 2]);
        }
    )->execute();

UPDATE users  SET `name` = ?, `addr` = ? WHERE  (  `users`.`id` = ? )

OTHER

<?php
$u = $users->newRecord();
$u->name = 'foo';
$u->created = date('Y-m-d H:i:s');
$query->save($u); // insert

$u->name = 'bar';
$query->save($u); // update

Install

```composer.json { "require": { "ackintosh/higher": "*" } }, (*7)


```shell $ php composer.phar install

Contribution

Licence

Author

Akihito Nakano, (*8)

The Versions

20/12 2014

dev-master

9999999-dev http://github.com/ackintosh

ORM library

  Sources   Download

MIT

The Requires

 

The Development Requires

orm

10/09 2014

dev-develop

dev-develop http://github.com/ackintosh

ORM library

  Sources   Download

MIT

The Requires

 

The Development Requires

orm