Resolving #4
This commit is contained in:
@@ -4,7 +4,13 @@ namespace ORM;
|
|||||||
|
|
||||||
class DBInstance {
|
class DBInstance {
|
||||||
|
|
||||||
|
private static function addPrefix($sql, $instance = 'default'){
|
||||||
|
$con = Connections::getConnection($instance);
|
||||||
|
return preg_replace('/{(.*)}/', "$con->prefix$1", $sql);
|
||||||
|
}
|
||||||
|
|
||||||
public static function execute($sql, $data = null, $instance = 'default') {
|
public static function execute($sql, $data = null, $instance = 'default') {
|
||||||
|
$sql = self::addPrefix($sql, $instance);
|
||||||
if ($data) {
|
if ($data) {
|
||||||
self::queryPrepare($sql, $data, $instance);
|
self::queryPrepare($sql, $data, $instance);
|
||||||
} else {
|
} else {
|
||||||
@@ -19,6 +25,7 @@ class DBInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function query($sql, $data = null, $instance = 'default') {
|
public static function query($sql, $data = null, $instance = 'default') {
|
||||||
|
$sql = self::addPrefix($sql, $instance);
|
||||||
if ($data) {
|
if ($data) {
|
||||||
return self::queryPrepare($sql, $data, $instance);
|
return self::queryPrepare($sql, $data, $instance);
|
||||||
} else {
|
} else {
|
||||||
@@ -28,6 +35,7 @@ class DBInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function queryOne($sql, $data = null, $instance = 'default') {
|
public static function queryOne($sql, $data = null, $instance = 'default') {
|
||||||
|
$sql = self::addPrefix($sql, $instance);
|
||||||
if ($data) {
|
if ($data) {
|
||||||
return self::queryPrepare($sql, $data, $instance);
|
return self::queryPrepare($sql, $data, $instance);
|
||||||
} else {
|
} else {
|
||||||
@@ -37,6 +45,7 @@ class DBInstance {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function queryPrepare($sql, $data = Array(), $instance = 'default') {
|
public static function queryPrepare($sql, $data = Array(), $instance = 'default') {
|
||||||
|
$sql = self::addPrefix($sql, $instance);
|
||||||
$con = Connections::getConnection($instance);
|
$con = Connections::getConnection($instance);
|
||||||
$statement = $con->prepare($sql);
|
$statement = $con->prepare($sql);
|
||||||
$statement->execute($data);
|
$statement->execute($data);
|
||||||
|
|||||||
+17
-17
@@ -4,17 +4,17 @@ namespace ORM;
|
|||||||
|
|
||||||
abstract class Entity {
|
abstract class Entity {
|
||||||
|
|
||||||
const table_name = '';
|
const tableName = '';
|
||||||
const connection_name = 'default';
|
const connectionName = 'default';
|
||||||
const softdelete = false;
|
const softdelete = false;
|
||||||
const _ignore = Array(
|
const _ignore = Array(
|
||||||
'classname',
|
'classname',
|
||||||
'_properties',
|
'_properties',
|
||||||
'_ignore',
|
'_ignore',
|
||||||
'connection_name',
|
'connectionName',
|
||||||
'timestamps',
|
'timestamps',
|
||||||
'softdelete',
|
'softdelete',
|
||||||
'table_name'
|
'tableName'
|
||||||
);
|
);
|
||||||
|
|
||||||
const _properties = Array();
|
const _properties = Array();
|
||||||
@@ -80,7 +80,7 @@ abstract class Entity {
|
|||||||
|
|
||||||
$update_string = rtrim($update_string, ', ');
|
$update_string = rtrim($update_string, ', ');
|
||||||
|
|
||||||
$sql = "UPDATE " . static::tableName . " SET $update_string WHERE id = :_update_id";
|
$sql = "UPDATE {" . static::tableName . "} SET $update_string WHERE id = :_update_id";
|
||||||
DBInstance::execute($sql, $update_data, static::connectionName);
|
DBInstance::execute($sql, $update_data, static::connectionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ abstract class Entity {
|
|||||||
$first_argument = rtrim($first_argument, ', ');
|
$first_argument = rtrim($first_argument, ', ');
|
||||||
$second_argument = rtrim($second_argument, ', ');
|
$second_argument = rtrim($second_argument, ', ');
|
||||||
|
|
||||||
$sql = "INSERT INTO " . static::tableName . " ($first_argument) VALUES ($second_argument)";
|
$sql = "INSERT INTO {" . static::tableName . "} ($first_argument) VALUES ($second_argument)";
|
||||||
DBInstance::execute($sql, $insert_data, static::connectionName);
|
DBInstance::execute($sql, $insert_data, static::connectionName);
|
||||||
$this->id = DBInstance::lastInsert();
|
$this->id = DBInstance::lastInsert();
|
||||||
}
|
}
|
||||||
@@ -121,13 +121,13 @@ abstract class Entity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT * FROM " . static::tableName . " WHERE id = ?";
|
$sql = "SELECT * FROM {" . static::tableName . "} WHERE id = ?";
|
||||||
|
|
||||||
$this->fill(DBInstance::queryPrepare($sql, Array($id), static::connectionName)[0]);
|
$this->fill(DBInstance::queryPrepare($sql, Array($id), static::connectionName)[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function purge() {
|
public function purge() {
|
||||||
$sql = "DELETE FROM " . static::tableName . " WHERE id = :id";
|
$sql = "DELETE FROM {" . static::tableName . "} WHERE id = :id";
|
||||||
DBInstance::execute($sql, Array('id' => $this->id), static::connectionName);
|
DBInstance::execute($sql, Array('id' => $this->id), static::connectionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,9 +164,9 @@ abstract class Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (static::softdelete && !$trashed) {
|
if (static::softdelete && !$trashed) {
|
||||||
$sql = "SELECT $criteria FROM " . static::tableName . " WHERE deleted_at is null $limits_sql";
|
$sql = "SELECT $criteria FROM {" . static::tableName . "} WHERE deleted_at is null $limits_sql";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT $criteria FROM " . static::tableName . " $limits_sql";
|
$sql = "SELECT $criteria FROM {" . static::tableName . "} $limits_sql";
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = DBInstance::query($sql, Array(), static::connectionName);
|
$results = DBInstance::query($sql, Array(), static::connectionName);
|
||||||
@@ -216,9 +216,9 @@ abstract class Entity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (static::softdelete && !$trashed) {
|
if (static::softdelete && !$trashed) {
|
||||||
$sql = "SELECT COUNT(*) FROM " . static::tableName . " $criteria_sql AND deleted_at is null";
|
$sql = "SELECT COUNT(*) FROM {" . static::tableName . "} $criteria_sql AND deleted_at is null";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT COUNT(*) FROM " . static::tableName . " $criteria_sql";
|
$sql = "SELECT COUNT(*) FROM {" . static::tableName . "} $criteria_sql";
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = DBInstance::queryOne($sql, $criteria_data, static::connectionName);
|
$results = DBInstance::queryOne($sql, $criteria_data, static::connectionName);
|
||||||
@@ -275,9 +275,9 @@ abstract class Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (static::softdelete && !$trashed) {
|
if (static::softdelete && !$trashed) {
|
||||||
$sql = "SELECT $select_sql FROM " . static::tableName . " $criteria_sql AND deleted_at is null $limits_sql";
|
$sql = "SELECT $select_sql FROM {" . static::tableName . "} $criteria_sql AND deleted_at is null $limits_sql";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT $select_sql FROM " . static::tableName . " $criteria_sql $limits_sql";
|
$sql = "SELECT $select_sql FROM {" . static::tableName . "} $criteria_sql $limits_sql";
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = DBInstance::query($sql, $criteria_data, static::connectionName);
|
$results = DBInstance::query($sql, $criteria_data, static::connectionName);
|
||||||
@@ -334,9 +334,9 @@ abstract class Entity {
|
|||||||
$select_sql = rtrim($select_sql, ', ');
|
$select_sql = rtrim($select_sql, ', ');
|
||||||
|
|
||||||
if (static::softdelete && !$trashed) {
|
if (static::softdelete && !$trashed) {
|
||||||
$sql = "SELECT $select_sql FROM " . static::tableName . " $criteria_sql AND deleted_at is null $limits_sql";
|
$sql = "SELECT $select_sql FROM {" . static::tableName . "} $criteria_sql AND deleted_at is null $limits_sql";
|
||||||
} else {
|
} else {
|
||||||
$sql = "SELECT $select_sql FROM " . static::tableName . " $criteria_sql $limits_sql";
|
$sql = "SELECT $select_sql FROM {" . static::tableName . "} $criteria_sql $limits_sql";
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = DBInstance::query($sql, Array(), static::connectionName);
|
$results = DBInstance::query($sql, Array(), static::connectionName);
|
||||||
@@ -444,7 +444,7 @@ abstract class Entity {
|
|||||||
foreach ($remote_limit as $key => $value) {
|
foreach ($remote_limit as $key => $value) {
|
||||||
$limits_sql .= "$key $value ";
|
$limits_sql .= "$key $value ";
|
||||||
}
|
}
|
||||||
$sql = "SELECT $remote_in_pivot FROM $pivot_table WHERE $local_in_pivot = $this->id $limits_sql";
|
$sql = "SELECT $remote_in_pivot FROM {$pivot_table} WHERE $local_in_pivot = $this->id $limits_sql";
|
||||||
|
|
||||||
$relations = DBInstance::query($sql, Array(), static::connectionName);
|
$relations = DBInstance::query($sql, Array(), static::connectionName);
|
||||||
$ids = Array();
|
$ids = Array();
|
||||||
|
|||||||
+26
-11
@@ -4,25 +4,33 @@ include_once 'ORM/Connections.php';
|
|||||||
include_once 'ORM/DBInstance.php';
|
include_once 'ORM/DBInstance.php';
|
||||||
include_once 'ORM/Entity.php';
|
include_once 'ORM/Entity.php';
|
||||||
|
|
||||||
|
use ORM\Entity as Entity;
|
||||||
|
use ORM\Connections as Connections;
|
||||||
|
use ORM\DBInstance as DBInstance;
|
||||||
|
|
||||||
class Pais extends Entity{
|
class Pais extends Entity{
|
||||||
|
|
||||||
const table_name = 'basico_geografico_paises';
|
const tableName = 'pais';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Estado extends Entity {
|
class Estado extends Entity {
|
||||||
|
|
||||||
const table_name = 'basico_geografico_estados';
|
const tableName = 'estado';
|
||||||
|
|
||||||
function municipios() {
|
function pais(){
|
||||||
return $this->has_many(Municipio::class, 'estado_id');
|
return $this->belongsTo(Pais::class, 'pais_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// function municipios() {
|
||||||
|
// return $this->has_many(Municipio::class, 'estado_id');
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class Municipio extends Entity {
|
class Municipio extends Entity {
|
||||||
|
|
||||||
const table_name = 'basico_geografico_municipios';
|
const tableName = 'basico_geografico_municipios';
|
||||||
|
|
||||||
function estado() {
|
function estado() {
|
||||||
return $this->belongs_to(Estado::class, 'estado_id');
|
return $this->belongs_to(Estado::class, 'estado_id');
|
||||||
@@ -34,7 +42,7 @@ class User extends Entity {
|
|||||||
|
|
||||||
const timestamps = true;
|
const timestamps = true;
|
||||||
const softdelete = true;
|
const softdelete = true;
|
||||||
const table_name = 'basico_auth_users';
|
const tableName = 'basico_auth_users';
|
||||||
|
|
||||||
public function existencia() {
|
public function existencia() {
|
||||||
$this->has_one(Existencia::class, 'user_id');
|
$this->has_one(Existencia::class, 'user_id');
|
||||||
@@ -56,7 +64,7 @@ class User extends Entity {
|
|||||||
|
|
||||||
class Role extends Entity{
|
class Role extends Entity{
|
||||||
|
|
||||||
const table_name = "basico_auth_roles";
|
const tableName = "basico_auth_roles";
|
||||||
|
|
||||||
function permissions(){
|
function permissions(){
|
||||||
return $this->belongs_to_many(Permission::class, 'basico_auth_role_permission', 'role_id', 'permission_id');
|
return $this->belongs_to_many(Permission::class, 'basico_auth_role_permission', 'role_id', 'permission_id');
|
||||||
@@ -65,11 +73,13 @@ class Role extends Entity{
|
|||||||
|
|
||||||
class Permission extends Entity{
|
class Permission extends Entity{
|
||||||
|
|
||||||
const table_name = "basico_auth_permissions";
|
const tableName = "basico_auth_permissions";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections::add_connection(new PDO("pgsql:dbname=urfat; user=urfat; password=urfat;host=127.0.0.1;port=5432"));
|
$conn = new PDO("pgsql:dbname=urfat; user=urfat; password=urfat;host=127.0.0.1;port=5432");
|
||||||
|
$conn->prefix = "urfat_";
|
||||||
|
Connections::addConnection($conn);
|
||||||
|
|
||||||
//$a = new Pais();
|
//$a = new Pais();
|
||||||
//$b = $a->count( Array('id' => Array('in', Array(10, 20, 30)) ));
|
//$b = $a->count( Array('id' => Array('in', Array(10, 20, 30)) ));
|
||||||
@@ -82,9 +92,12 @@ Connections::add_connection(new PDO("pgsql:dbname=urfat; user=urfat; password=ur
|
|||||||
//$a = new User();
|
//$a = new User();
|
||||||
//$a->load(1);
|
//$a->load(1);
|
||||||
//$a = User::find_one(Array('id'=>Array('=', 1) ));
|
//$a = User::find_one(Array('id'=>Array('=', 1) ));
|
||||||
$a = User::find_one( 1 );
|
|
||||||
|
|
||||||
var_dump( $a->permissions() );
|
//$a = Estado::findOne( 1 );
|
||||||
|
//var_dump($a);
|
||||||
|
//var_dump($a->pais());
|
||||||
|
|
||||||
|
//var_dump( $a->permissions() );
|
||||||
|
|
||||||
//$a = new Estado();
|
//$a = new Estado();
|
||||||
//$a->load(23);
|
//$a->load(23);
|
||||||
@@ -96,3 +109,5 @@ var_dump( $a->permissions() );
|
|||||||
//$a = new Municipio();
|
//$a = new Municipio();
|
||||||
//$a->load(1);
|
//$a->load(1);
|
||||||
//$a->estado();
|
//$a->estado();
|
||||||
|
|
||||||
|
var_dump( DBInstance::queryOne('SELECT * FROM {estado}'));
|
||||||
Reference in New Issue
Block a user