Возможность получить alias таблицы в коллекции

5

В классе shopProductsCollection есть метод

protected function getAlias($table) {...}

Вопрос: А почему метод protected?

Если я хочу отфильтровать товары по категориям, я вынужден добавить еще один addJoin, чтобы получить новый алиас либо писать алиас cp1, что может вызвать ошибку впоследстивии.

Какой смысл не давать получить алиас к таблицам, которые уже сджоинены?

Предлагаю сделать этот метод public. Вреда никакого не будет.

5 комментариев

  • +1
    Aleksey Kuksov Aleksey Kuksov 7 декабря 2021 19:40 #

    Согласен, пробовали по этой теме https://support.webasyst.ru/fo... и не получилось, как нам отфильтровать категории?! 

    • +1
      Anton F Anton F 8 декабря 2021 02:25 #

      вариант "как надо": наследуешь класс и можешь спокойно работать с protected методами в рамках класса

      вариант "как не надо":

      $getAliasReflection = new ReflectionMethod($productsCollection, 'getAlias');
      $getAliasReflection->setAccessible(true);
      $getAliasReflection->invokeArgs(null, $args);

      • +1
        ITFrogs ITFrogs 8 декабря 2021 11:11 #

        Тут дело вообще не в этом, а в том, что, допустим, по какой-то причине, ты потерял алиас таблицы. Ты в своей IDE пишешь $collection-> и ждешь что где-то там вылезет подсказка на getAlias и не находишь этот метод. Потом нужно будет каждый раз лезть в классы движка и разбираться в что к чему. А зачем? Чем метод getAlias так опасен, что нужно наследовать класс? Я просто прошу в обновлениях пересмотреть видимость этого метода на public.

        • +1
          Anton F Anton F 8 декабря 2021 14:37 #

          дело не в безопасности, банальная инкапсуляция...

          Ты в своей IDE пишешь $collection-> и ждешь что где-то там вылезет подсказка на getAlias и не находишь этот метод.

          что за IDE такая у тебя? во всех популярных IDE в инспекторе классов видны все методы

          • +1
            ITFrogs ITFrogs 9 декабря 2021 20:53 #

            PHP Storm

            Я не говорю об инспекторе классов, а об автоматических подсказках, которые выдает шторм. Если десятки раз ковыряться в коллекциях, то конечно же все запомнишь, но сразу навскидку это не удобно.

            Добавить комментарий

            Чтобы добавить комментарий, зарегистрируйтесь или войдите