Я написал много-много кода на PHP, ориентированного на объект -, но до сих пор все мои классы были «единственными», я полагаю, вы можете это назвать. Я нахожусь в процессе изменения нескольких классов (, которые имеют 5 или около того идентичных методов ), чтобы расширить один класс (, чтобы избавиться от повторяющегося кода ). Я столкнулся с несколькими проблемами.
Я пытаюсь получить доступ к методу в родительском классе, но вы видите проблему.
Родительский класс:
class DatabaseObject {
public static function find_all() {
return self::find_by_sql("SELECT * FROM ". self::$table_name);
}
}
Детский класс:
class Topics extends DatabaseObject {
protected static $table_name = "master_cat";
protected static $db_fields = array('cat_id', 'category');
public $cat_id;
public $category;
}
Код, пытающийся получить доступ ко всей информации из этой таблицы из файла php/html:
$topics=Topics::find_all();
foreach($topics as $topic):
echo $topic->category;
endforeach;
Как видите, большая часть кода не была объединена с новым способом ведения дел. Мне нужно изменить имя self ::$table _, которое больше не работает по-новому. У меня будет около 5 классов, расширяющих этот объект, так что это лучший способ закодировать это, чтобы я мог получить доступ к разным таблицам с помощью одного метода (, а не включать этот точный метод поиска _все ()в 5 различных классах.