1: <?php
2: namespace NGS\Patterns;
3:
4: require_once(__DIR__.'/Searchable.php');
5: require_once(__DIR__.'/IIdentifiable.php');
6: require_once(__DIR__.'/../Client/DomainProxy.php');
7: require_once(__DIR__.'/../Client/CrudProxy.php');
8: require_once(__DIR__.'/../Converter/PrimitiveConverter.php');
9:
10: use NGS\Converter\PrimitiveConverter;
11: use NGS\Client\DomainProxy;
12: use NGS\Client\CrudProxy;
13:
14: 15: 16: 17: 18: 19:
20: abstract class Identifiable extends Searchable implements IIdentifiable
21: {
22: 23: 24: 25: 26: 27: 28:
29: public static function find($uri)
30: {
31: if(is_array($uri)) {
32: $uri = PrimitiveConverter::toStringArray($uri);
33: return DomainProxy::instance()->find(get_called_class(), $uri);
34: }
35: $uri = PrimitiveConverter::toString($uri);
36: return CrudProxy::instance()->read(get_called_class(), $uri);
37: }
38:
39: 40: 41: 42: 43: 44:
45: public static function exists($uri)
46: {
47: $uri = PrimitiveConverter::toString($uri);
48: $res = self::find(array($uri));
49: return !empty($res);
50: }
51: }
52: