- First draft of current WIP

This commit is contained in:
mcndave committed 2019-08-21 16:13:00 -04:00
commit b73d046e0a
47 files changed
+2797

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
<?php
namespace Ulmus\Common;
use Ulmus\Ulmus;
class EntityField
{
public string $name;
public string $entityClass;
public string $alias;
protected EntityResolver $entityResolver;
public function __construct(string $entityClass, string $name, string $alias)
{
$this->entityClass = $entityClass;
$this->name = $name;
$this->alias = $alias;
$this->entityResolver = Ulmus::resolveEntity(static::class);
}
public function name($useAlias = true) : string
{
# Must use REFLECTION before throwing this value.
# Should first check if it's a relation field, and if it is,
# it's real key must be returned (PK usually)
return $useAlias ? "{$this->alias}.`{$this->name}`" : $this->name;
}
public static function isScalarType($type) : bool
{
switch($type) {
case 'int':
case 'bool':
case 'string':
case 'float':
case 'double':
return true;
}
return false;
}
public static function isObjectType($type) : bool
{
return strpos($type, "\\") !== false;
}
public function __toString() : string
{
return $this->name();
}
}