/** @return CssSprite */ public static function inst($spritable) { //Если строка, значит передано название поддиректории в папке www/resources/sprites $spritable = is_string($spritable) ? DirManager::sprites($spritable)->getDirItem() : $spritable; check_condition($spritable instanceof Spritable, 'Элемент для построения спрайта не является подклассом Spritable'); $name = $spritable->getSpriteName(); if (array_key_exists($name, self::$sprites)) { return self::$sprites[$name]; } if ($spritable instanceof DirItem) { check_condition($spritable->isDir(), "Некорректная директория {$spritable} для построения спрайта"); } return self::$sprites[$name] = new CssSprite($name, $spritable); }