Я попытаюсь объяснить свою ситуацию как можно яснее.Конструирование, повторяющийся код - нужен совет
Я строю каркас. Его система содержит следующие директории:
1) ядро - маршрутизацию, основной класс (автозагрузка, конфига, константу), запрашивает
2) хелперов
3) Библиотеки
В index.php, я установил все наиболее важные конфигурации переменные, такие как базовый url или индексный файл. Я установил их внутри «основного класса».
Эти атрибуты являются частными, потому что я не хочу, чтобы кто-то их менял во время потока запросов.
Таким образом, единственной точкой доступа к этим переменным является метод «основного класса».
Теперь одной из этих переменных является $_base_url
.
Я хочу, чтобы пользователи могли получить доступ к base_url из какого-то лучшего места, однако, как и для класса URL (внутри справочника помощника).
Для достижения этой цели, я должен создать два метода - get_base_url() внутри «основной класс», и get_base_url() внутри класса URL-адрес, который будет делать что-то вроде этого:
class Url {
public static function get_base_url() {
return Main_Class::get_base_url();
}
}
Моя проблема: у меня есть пара таких переменных, которые я бы хотел вызвать из разных классов.
У меня будет много повторного кода.
Единственное решение, которое я вижу, просто устанавливает эти переменные в разных классах напрямую, но я бы хотел, чтобы они были централизованы внутри основного класса.
Как я должен справиться с этим?
Uh, наследование против централизованного класса для переменных ... один из них лучше здесь, чем другой в моей ситуации, или я должен просто переворачивать монету? : P – user2203484
Это действительно зависит от того, что вы пытаетесь сделать. Наследование позволит вам иметь другое значение для каждого экземпляра. Централизованный класс переменных гарантирует, что независимо от того, какой объект обращается к переменной, он будет иметь только одно значение. – Ares
@ user2203484 Я обновил свой ответ, чтобы объяснить это дальше. – Ares