"PHP" / Говнокод #25770 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
<?php

namespace App\Http\Controllers\Admin;

use App\Command\Admin\User\Create\Command as UserCreateCommand;
use App\Command\Admin\User\Update\Command as UserUpdateCommand;
use App\Command\Admin\User\Remove\Command as UserRemoveCommand;
use App\Command\User\Auth\Verify\Command as UserVerifyCommand;
use App\Command\Admin\User\Draft\Command as UserDraftCommand;
use App\Command\CommandBus;
use App\Entity\User\User;
use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\Users\CreateRequest;
use App\Http\Requests\Admin\Users\UpdateRequest;
use App\Query\Admin\User\FindUsersByDescQuery;
use App\Query\Admin\User\Role\GetUserRolesQuery;
use App\Query\Admin\User\Status\GetUserStatusesQuery;
use App\Query\QueryBus;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;

class UsersController extends Controller
{
    private $commandBus;
    private $queryBus;

    public function __construct(CommandBus $commandBus, QueryBus $queryBus)
    {
        $this->commandBus = $commandBus;
        $this->queryBus = $queryBus;
    }

    public function index()
    {
        $query = $this->queryBus->query(new FindUsersByDescQuery());
        $users = $query->paginate(20);

        $statuses = $this->queryBus->query(new GetUserStatusesQuery());
        $roles = $this->queryBus->query(new GetUserRolesQuery());

        return view('admin.users.index', compact('users', 'statuses', 'roles'));
    }

    public function create()
    {
        return view('admin.users.create');
    }

    public function store(CreateRequest $request)
    {
        $this->commandBus->handle(new UserCreateCommand($request));

        return redirect()->route('admin.users.index');
    }

    public function show(User $user)
    {
        return view('admin.users.show', compact('user'));
    }

    public function edit(User $user)
    {
        $roles = $this->queryBus->query(new GetUserRolesQuery());

        return view('admin.users.edit', compact('user', 'roles'));
    }

    public function update(UpdateRequest $request, User $user)
    {
        $this->commandBus->handle(new UserUpdateCommand($request, $user));

        return redirect()->route('admin.users.index');
    }

    public function destroy(User $user)
    {
        $this->commandBus->handle(new UserRemoveCommand($user));

        return redirect()->route('admin.users.index');
    }

    public function verify(User $user)
    {
        $this->commandBus->handle(new UserVerifyCommand($user));

        return redirect()->route('admin.users.show', $user);
    }

    public function draft(User $user)
    {
        $this->commandBus->handle(new UserDraftCommand($user));

        return redirect()->route('admin.users.show', $user);
    }
}

Запостил: kartoshka kartoshka, (Updated )

Комментарии (30) RSS

  • Уже 4 из 8 станций мониторинга в РФ скрывают данные для контроля за ядерными взрывами



    Еще две мониторинговые станции, теперь на Чукотке и Алтае, установленные для отслеживания уровня радиации, прекратили передачу данных после взрыва на морской платформе при испытаниях, предположительно, крылатой ракеты "Буревестник" в 35 км от Северодвинска 8 августа. "Коммерсант" 20 августа опубликовал перевод сообщения исполнительного секретаря Организации Договора о всеобъемлющем запрещении ядерных испытаний (ДВЗЯИ) Лассина Зербо журналу The Wall Street Journal.
    Ответить
    • Ты заебал. Но скажу, что Хуютин сказал. Что при взрыве ядерной ракеты нету радиации - это все выдумки, но погибшим и пострадавшим выдам бестолковые медалки. В то же время Путин отметил, что принимаются превентивные меры, "чтобы не было никаких неожиданностей".
      Когнетивщина сплошная.
      Ответить
  • Российские СМИ возмущаются, что в Подмосковье мародёры разбирают вещи из салона экстренно севшего самолёта.

    Это плохо. Это мародёрство. Так делать нельзя.

    Аварийно севший на кукурузное поле в Подмосковье самолёт начали разбирать и растаскивать на металлолом местные жители, как обычно это происходит в странах "третьего мира".

    Это к тому, если вы по заблуждению своему до сих пор думали, что дикари живут в африканских странах.

    А теперь напомните-ка мне, что писали эти же пропагандистские рупоры после разграбления российскими террористами сбитого ими Боинга МН17?
    Ответить
  • какое-то нереальное количество бойлерплейта ради нихуя
    Ответить
      • тут еще и пхп поднасрал
        на котлине можно тоже самое (с тем же ООП) в 4 раза короче написать
        Ответить
        • Кстати, в «PHP» можно несколько методов свернуть в один:
          public function __call($name, $arguments)
              {
                  if(array_key_exists($name, array('destroy', 'verify', 'draft'))) {
                       $classname = 'User' . ucfirst($name) . 'Command';
                       $this->commandBus->handle(new $classname($arguments[0]));
                       return redirect()->route('admin.users.show', $arguments[0]);
                  }
              }
          Ответить
            • Коллега, не совсем понятен Ваш выбор языка на основе некоторого случайного куска кода.
              Мой опыт подсказывает, что и другие языки программирования могут обладать определенными полезными свойствами.
              Ответить
    • Это ещё здесь ES нет, иначе было бы ещё больше кода ради (ну вы поняли)
      Ответить
    • А в S" Forth" даже аргументы указывать не обязательно.
      Ответить
      • В таких языках программирования как "Perl" и "JavaScript" передача аргументов так же строго опциональна
        Ответить
      • Ну вообще-то в "PHP" тоже: можно в описании функции оставить пустые скобки, а аргументы получать вызовом func_get_args().
        Ответить
        • Однако только в Perl, да пожалуй еще в assembler у программиста нет возможности указать формальные парамеры функции
          Ответить
          • В S" Forth" ее тоже нет, там просто простой синтаксис для объявления локалок, которые инициализируются со стека, их можно описать в любом месте.
            Можно писать:
            : foo  { a b }  ... ;

            А можно:
            : foo  0 { a b tmp } ... ; ( tmp инициализируется нулем )

            Или даже:
            : foo  <cond> if { hui pizda jigoorda } else { oh tyzh yop tvoyu mat' } then ... ;


            Именно поэтому я за S" Forth".
            Ответить
          • Еще в 'J' такой возможности нет, в тацитных определениях вообще аргументы не используются, а в эксплицитных их имена уже объявлены (x и y в глаголах, u и v в наречиях и союзах).
            Ответить
        • А в S" Forth" их и получать не надо. Они уже на стеке лежат.

          Именно поэтому я за S" Forth".
          Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8