Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.87 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Src\Components\DICOM;
  4.  
  5.  
  6. /**
  7.  * Фабрика для создания экземпляров элеменов по тэгу или его имени.
  8.  */
  9. abstract class DataElementFactory
  10. {
  11.  
  12.     /**
  13.      * @var array
  14.      */
  15.     protected $dict = [];
  16.  
  17.     /**
  18.      * При инстанциировании фабрики загружается словарь элементов.
  19.      */
  20.     public function __construct()
  21.     {
  22.         $pattern = dirname(__FILE__) . "/dict/*.php";
  23.  
  24.         foreach (glob($pattern) as $dict) {
  25.             $data = require $dict;
  26.  
  27.             $this->dict = array_merge($this->dict, $data);
  28.         }
  29.     }
  30.  
  31.     /**
  32.      * Инстанциирует элемент по его типу.
  33.      * @param mixed $type
  34.      * @return DataElement
  35.      */
  36.     abstract public function factory($type): DataElement;
  37.  
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement