@phpcoder81

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

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

Вопрос:
1) Верно ли я построил логику вывода данных в одном методе, то есть либо можем указать ID, либо нет и тогда выведутся все записи, или надо было создать отдельный метод, выводящий только одну запись?
2. Правильно ли я назвал метод getAll. ведь переводится как "получить всё". А есть сокращу до get, по моему не тот смысл уже. Как такие методы вообще принято называть по PSR?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 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
Инженегр-программист
Не используйте в одном методе кучу функционала. Каждый метод должен делать строго определенную функцию и возвращать значение строго определенного типа иначе будут всплывать неожиданности при обработке таких "универсальных функций".
Для вывода одной записи и списка используйте отдельные методы.
Для именования методов поглядывайте на стандарты, но не заморачивайтесь - без фанатизма. Главное в наименовании переменных и функций было понятно что это такое, желательно соблюдать синтаксис английской мовы, и обязательно следовали единому правилу именования внутри проекта.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
25 апр. 2024, в 12:03
75000 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект
25 апр. 2024, в 11:37
40000 руб./за проект