2021-03-01 16:32:48 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Ulmus\Ldap;
|
|
|
|
|
|
|
|
use Ulmus\{ Ulmus, EventTrait, Query, Common\EntityResolver, Common\EntityField };
|
|
|
|
|
2021-03-29 20:02:17 +00:00
|
|
|
use Ulmus\Ldap\Annotation\Classes\{ ObjectClass, ObjectType, };
|
2021-03-01 16:32:48 +00:00
|
|
|
|
|
|
|
trait EntityTrait {
|
|
|
|
use \Ulmus\EntityTrait;
|
|
|
|
|
2021-03-24 13:48:28 +00:00
|
|
|
/**
|
|
|
|
* @Id
|
|
|
|
*/
|
|
|
|
public string $dn;
|
|
|
|
|
2021-11-24 16:41:03 +00:00
|
|
|
/**
|
|
|
|
* @Field
|
|
|
|
*/
|
|
|
|
public string $cn;
|
|
|
|
|
2021-03-01 16:32:48 +00:00
|
|
|
public static function resolveEntity() : EntityResolver
|
|
|
|
{
|
|
|
|
return Ulmus::resolveEntity(static::class);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function repository(string $alias = Repository::DEFAULT_ALIAS) : Repository
|
|
|
|
{
|
|
|
|
return new Repository(static::class, $alias);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function field($name, ? string $alias = null) : EntityField
|
|
|
|
{
|
|
|
|
return new EntityField(static::class, $name, $alias ?: Repository::DEFAULT_ALIAS, Ulmus::resolveEntity(static::class));
|
|
|
|
}
|
|
|
|
|
|
|
|
public static function fields(array $fields, ? string $alias = null) : string
|
|
|
|
{
|
|
|
|
return implode(', ', array_map(function($item) use ($alias){
|
|
|
|
return static::field($item, $alias);
|
|
|
|
}, $fields));
|
|
|
|
}
|
|
|
|
}
|