Дженерики в PHP

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 54

  • @borisn879
    @borisn879 ปีที่แล้ว +16

    Благодарю за видео. Дженериков очень не хватает! Причем, формализованные дженерики были бы более понятны, чем трюки с аннотациями.

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว +1

      Согласен

    • @dizelvinable
      @dizelvinable ปีที่แล้ว

      Тоже согласен. Настоящие дженерики намного понятнее, чем эти костыли

    • @PlaceTickets
      @PlaceTickets ปีที่แล้ว

      @@CutCodeRu Подскажите пожалуйста, какой библиотекой Вы распечатывали коллекцию?

    • @PlaceTickets
      @PlaceTickets ปีที่แล้ว

      @@CutCodeRu Каким редактором IDE Вы пользуетесь?

  • @4KoTRpa
    @4KoTRpa ปีที่แล้ว +1

    Стоит уточнить, что теплейты добавили к коллекциям в ларавел начиная с версии 9

  • @AndrewYurchenko
    @AndrewYurchenko ปีที่แล้ว +4

    Вот как страдаешь, когда после C# или TypeScript приходится пилить на PHP в этом плане.

  • @gromfer708
    @gromfer708 ปีที่แล้ว +2

    Разве в Laravel idea это не делается все автоматически?

    • @Kim1ne
      @Kim1ne ปีที่แล้ว

      читай название видео

  • @МихаилХарченко-е7м
    @МихаилХарченко-е7м ปีที่แล้ว +1

    очень был удивлен первым примером, у класса Collection есть метод each, который принимает замыкание, в которое передается объект, являющийся значением итерируемого элемента, которому можно указать тип явно, считаю это более элегантным решением. Надеюсь вы об этом в курсе.

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      Вас не по теме видео уже понесло) но за удивление и комментарий спасибо!

  • @silentage6310
    @silentage6310 ปีที่แล้ว +5

    еще вариант чтобы были подсказки в коллекции/массиве без создания отдельной коллекции
    /** @var User[] $users */
    $users = User::all();
    foreach($users as $user)
    // $user->... с подсказкой...

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      Ну отдельная коллекция создается не для подсказок а вот грязь с var я стараюсь избегать

    • @silentage6310
      @silentage6310 ปีที่แล้ว

      @@CutCodeRu чтото я упустил, а для чего еще?

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      @@silentage6310 выношу в них логику по коллекциям разных ответственностей но в ролике да использовались как пример по дженерикам, ну а var это не на тему ролика

  • @litvinenkow
    @litvinenkow ปีที่แล้ว

    вопрос, а как атрибуты бьются с аннотациями, потому что вроде как в пхп 8 одни заменили другие?

    • @vladsarosek9521
      @vladsarosek9521 ปีที่แล้ว

      Атрибуты ещё сырые и не закрывают все потребности

    • @millkiway3682
      @millkiway3682 6 หลายเดือนก่อน

      @@vladsarosek9521 , с атрибутами там все нормально - проблема с тем что ещё не сформирован общепринятый подход к их использованию

  • @MrLnext
    @MrLnext ปีที่แล้ว

    ide-helper с этим справляется на ура

  • @sufir
    @sufir ปีที่แล้ว

    Можно ли указать несколько темплейтов класса и как к ним в таком случае обращаться?

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      Также по имени

    • @sufir
      @sufir ปีที่แล้ว

      @@CutCodeRu @extends/implements MultiGenericClass как-то так?

    • @sufir
      @sufir ปีที่แล้ว

      В общем ждём продолжения, тема интересная )

  • @topalek
    @topalek ปีที่แล้ว +4

    огонь, спасибо большое... можно еще аидео по док-блокам. я смотрю там куча возможностей с хорошей IDE

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      А уже было на канале, поищите

  • @24Eugen
    @24Eugen ปีที่แล้ว +1

    очень кстати Спасибо

  • @BurmAlex
    @BurmAlex ปีที่แล้ว +1

    правильней сказать что это дженерики шторма, а не самой пыхи, хотя видео полезное

  • @HEX_CAT
    @HEX_CAT ปีที่แล้ว +1

    ❤🎉

  • @МихаилХарченко-е7м
    @МихаилХарченко-е7м ปีที่แล้ว +1

    очень был удивлен вторым примером, во первых можно передать необходимый вам объект через конструктор, что более чисто и правильно, во вторых даже если вы используете app() для получения объекта, то почему вы не делаете этого внутри конструктора. в третьих в приведенных выше двух примерах получается что дженерик и не нужен вовсе.

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      Пример с app из ларавел, я просто вынес чтобы в коде фреймворка не ковырять

    • @МихаилХарченко-е7м
      @МихаилХарченко-е7м ปีที่แล้ว

      ​@@CutCodeRu понял, спасибо за ответ, согласен с вами, в качестве показательного примера приведенные годятся, но считаю, что было бы более правильным явно указать (то есть просто проговорить), что в реальных проектах так конечно лучше не делать, вас наверняка смотрят много начинающих ларщиков и в целом ваш контент очень крутой, вы действительно часто приводите крутые примеры, спасибо вам за ваш контент

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว +1

      @@МихаилХарченко-е7м признаюсь вам все не учтешь, даже когда очень стараешься и многое становится понятно уже спустя время, ну и в особенности благодаря комментариям

  • @kinvain
    @kinvain 7 หลายเดือนก่อน

    Хорошо, но мало. Слишком базово.

  • @aliakseiprybytkou7552
    @aliakseiprybytkou7552 ปีที่แล้ว +2

    это не дженерики как в джава, это просто подсказки на сколько я понял.

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว

      Дженериков в php нет

    • @millkiway3682
      @millkiway3682 6 หลายเดือนก่อน +1

      @@CutCodeRu так вы и не объяснили что такое дженерики, но зато смело называете дженериками инструкции в докблоках

  • @alexblack43
    @alexblack43 ปีที่แล้ว

    И сюда эти типы тащат... Блин, они и в тайпскрипте меня достали, надеялся хоть здесь спрятаться, но всё идёт в то же болото.

  • @lexxkrt
    @lexxkrt 3 หลายเดือนก่อน

    это вообще близко не дженерики

  • @kion9138
    @kion9138 12 วันที่ผ่านมา

    Какая же дичь этот ваш app()

    • @CutCodeRu
      @CutCodeRu  12 วันที่ผ่านมา

      @@kion9138 есть такое дело

  • @dastan331
    @dastan331 ปีที่แล้ว +2

    Мне кажется PHP существует только из за Laravel 😂

    • @kamil19862307
      @kamil19862307 ปีที่แล้ว +11

      Laravel существует только из-за PHP🤣

    • @dastan331
      @dastan331 ปีที่แล้ว +1

      @@kamil19862307 Ну это само собой. Просто давно не слышал про php.

    • @sufir
      @sufir ปีที่แล้ว +3

      Laravel не существует, это массовое помешательство ;)

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว +1

      😀

    • @AlbertCartel
      @AlbertCartel ปีที่แล้ว +2

      ​@@sufir 😁👍

  • @aleksandrbakharev5199
    @aleksandrbakharev5199 ปีที่แล้ว +1

    так напиши аннотацию над форычом /** @var User $user */ и иде будет понимать что это за переменная. Это не костыль, а особенность языка, хочешь джаву - пиши на джаве

    • @CutCodeRu
      @CutCodeRu  ปีที่แล้ว +1

      Спасибо но речь не об этом! И устанешь писать всюду, не все любят грязь с подобными комментами

  • @borisn879
    @borisn879 ปีที่แล้ว

    namespace app\components\Shared\Domain\Contract;
    use ArrayObject;
    /**
    * @extends ArrayObject
    */
    class ItemCollection extends ArrayObject
    1. От ItemCollection наследовал типизированные коллекции. Куча оверхеда и бойлерплейта)
    2. Psalm, dockblock аннотации - костыль.

    • @millkiway3682
      @millkiway3682 6 หลายเดือนก่อน

      Не понял в чем вопрос или претензия, поясните

    • @borisn879
      @borisn879 6 หลายเดือนก่อน

      @@millkiway3682 имхо, дженерики нужны, а костыли - так себе.