@phpcoder81

Как правильно реализовать метод вывода списка?

Привет мужики. Создаю новый класс. В нем есть метод вывода массива данных из БД. Иногда надо вывести одну строку, иногда все, а иногда и какие-то параметры указать особые (заранее прописанные). Я делаю так:
public function getAll($options = []){}
Пока что массив принимает только: $options['id']

Вопрос:
1) Верно ли я построил логику вывода данных в одном методе, то есть либо можем указать ID, либо нет и тогда выведутся все записи, или надо было создать отдельный метод, выводящий только одну запись?
2. Правильно ли я назвал метод getAll. ведь переводится как "получить всё". А есть сокращу до get, по моему не тот смысл уже. Как такие методы вообще принято называть по PSR?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
А чего бы не сделать так?:
...
    public function select($conditions = [])
    {
        ...
    }

    public function selectAll()
    {
        return $this->select([]);
    }

    public function selectOne($id)
    {
        $result = $this->select(['id' => $id]);
        return count($result)
            ? current($result)
            : null;
    }
    ...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
qonand
@qonand
Software Engineer
1. Для поиска одной записи по ID было бы логичным и удобным реализовать отдельный метод, например какой нибудь findOne($id). Что касается метода getAll - что содержит массив Options? Набор параметров по которым необходимо выбирать записи? если да тогда передавать это массивом, не очень хорошая практика, лучше сделать какой-нибудь объект критерию. Да и само название $options не особо удачно...
2. Лучше называть подобные методы например find()
Ответ написан
@sidni
Php Developer
ну разные есть методики некоторые используют название get как взять т.е. либо данные либо ошибка + методы с префиксом find где либо данные либо false.
А в вашем случае можно изощерятся как угодно типа findAll, findById, findByConditions и т. д.
PS прочитайте про ORM
Ответ написан
Комментировать
chupacabramiamor
@chupacabramiamor
Инженегр-программист
Не используйте в одном методе кучу функционала. Каждый метод должен делать строго определенную функцию и возвращать значение строго определенного типа иначе будут всплывать неожиданности при обработке таких "универсальных функций".
Для вывода одной записи и списка используйте отдельные методы.
Для именования методов поглядывайте на стандарты, но не заморачивайтесь - без фанатизма. Главное в наименовании переменных и функций было понятно что это такое, желательно соблюдать синтаксис английской мовы, и обязательно следовали единому правилу именования внутри проекта.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы