CacheProvider, какими стандартами и практиками пользоваться при написании на php?
Собственно я задумал кэшпровайдер лишь как класс единого API кэширования, но стал вопрос, как указывать драйвер для работы с кэшем?
На текущий момент у меня так:
<?php
$cache = new CacheProvider(CacheProvider::DRIVER_REDIS, $configRedis);
$cache->set('key', 'value');
?>
Вопрос в следующем: Критично ли использование констант для идентификации драйвера? То есть в самом классе прописаны константы идентификации:
const DRIVER_REDIS = 0;
const DRIVER_MEMCADHED = 1;
const DRIVER_FILE = 2;
По этим ID в конструкторе из конфига грузится путь класса драйвера и создание его экземпляра:
Cache.Config.php
<?php
$config = array(
'drivers' => array(
'0' => array(
'name' => 'RedisDriver',
'lib' => '\Architect\Cache\Drivers\RedisDriver'
),
'1' => array(
'name' => 'MemcachedDriver',
'lib' => '\Architect\Cache\Drivers\FileDriver'
),
'2' => array(
'name' => 'FileDriver',
'lib' => '\Architect\Cache\Drivers\FileDriver'
)
)
);
?>
При добавлении драйверов приходится прописывать константу идентификации. Может переписать на именованном конструкторе?
$cache = CacheProvider::driver('REDIS');
$cache->set('key', 'value');
Или меня просто параноит за зря и мне надо избавиться от констант и прописывать строкой имя драйвера?
$cache = new CacheProvider('REDIS', $driverConfig);
P.S. Очень трепетно отношусь к мелочам.
-Подсмотреть Доктрину/Symfony/Laravel/YII/CI не предлагайте пожалуйста.
Используется ли в таких случаях именованный конструктор?