Я пытаюсь создать простой абстрактный класс Cache, который может применять методы в подклассах, и я пытаюсь установить настройки по умолчанию для наследования подклассов.Вот мой основной недостаток:
define('APP_ROOT', getcwd());
abstract class BaseCache {
protected $baseCacheDir = APP_ROOT . '/cache';
abstract function exists($resource);
abstract function store($resource);
abstract function delete($resource);
abstract function check($resource);
}
class TemplateCache extends BaseCache {
protected $CacheDir = $this->baseCacheDir . '/tpl/';
public function exists($resource) {}...
}
class LinkCache extends BaseCache {
protected $CacheDir = $this->baseCacheDir . '/link/';
}
Это правильный / лучший способ сделать это?Это как вы получаете доступ к свойствам в абстрактных классах в подклассе?Свойство $ baseCacheDir не следует изменять, и я хочу жестко закодировать его по умолчанию, а затем создать подклассы из базового каталога.(например, «cache / link», «cache / tpl», «cache / apc», «cache / memcache»)
Спасибо.