私は、サブクラスでメソッドを実行できる単純な抽象キャッシュクラスを構築しようとしています。継承するサブクラスのデフォルト設定を設定しようとしています。ここで私の基本的なランニングダウンです:PHP OO:サブクラスで抽象プロパティにアクセスするには?
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')
ありがとうございました。
この猫には100種類の方法がありますが、この回答はアクセサーを提供し、子クラスが 'getBaseCacheDir'メソッドをオーバーライドできないようにするため、良い答えです。 –
パーフェクト!ご助力ありがとうございます。私は「最終的な」方法を使用することは考えていませんでした。 OO PHPの新機能 – Brandon