@YanAlexandrov
Чайник со стажем

Вызов несуществующего метода?

На ООП нужно реализовать получение данных для ряда заранее не предопределённых таблиц из БД. Есть ли более лучшее решение чем __callStatic?

Пример, что пока есть:
class Field {
    public static function __callStatic( string $name, array $args ) {
        // здесь MySQL запрос типа (для иллюстрации поведения)
        return SELECT * FROM {$name}fields WHERE id = $args['0'] AND name = $args['1']
    }
}

И получение, данных:

echo Field::post( [ 2, 'meta_field' ] );
Печаль в том, что в метод __callStatic можно передать только 2 аргумента. И второй только в виде массива.

Есть ли паттерн, который позволил бы реализовать это в виде?
echo Field::post( 2, 'meta_field' );
Я пробовал так:
echo Field::post( 2 )->meta_field;
Но интерпретатор ожидаемо вернул ошибку. Так как передать можно только массив.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вам не нужно ничего передавать "в виде массива", движок пхп сделает это сам, если не найдет существующий метод.
https://ideone.com/EsnAEZ

EtT1rUn.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы