• Какаказалось
    +6

    Как глупо Кеша спалился. А вот не критиковал бы код, сидел бы сейчас на стуле и ел бы рыбку...

  • YouTube удаляет инструкции по хакингу
    0
    sql-инъекциями

    без проникновения

    SQL-инъекция Шредингера прям...

  • ПитательныйБот или как я хочу отобрать хлеб у фитнес-тренеров
    0

    Ну да, не противоречит. Что-то я ляпнул, не подумав.
    А по коду полностью согласен

  • ПитательныйБот или как я хочу отобрать хлеб у фитнес-тренеров
    0

    Коммерческий же продукт...

  • Yandex Retro Games Battle 2019 — разрабатываем игры для ZX Spectrum
    +1

    Я про сейчас… А раньше-то вполне себе воспринимали и графику, и звук...

  • Yandex Retro Games Battle 2019 — разрабатываем игры для ZX Spectrum
    0
    уже просто не могу воспринимать этот жутковатый звук

    Это вы ещё не с ленты софт грузили...

  • Yandex Retro Games Battle 2019 — разрабатываем игры для ZX Spectrum
    0

    Да. Запускаете компьютер и начинаете писать на sinclair basic.

  • Работа с JSON RPC в Symfony 4
    0

    Авторизация и аутентификация — это скорее всего не про ограничение доступа к API. А так да, согласен

  • Работа с JSON RPC в Symfony 4
    0

    Не понял только, зачем здесь swagger, он на rpc ну вообще не ложится… Есть же SMD. sergeyfast даже как-то предлагал инструменты для визуализации


    Ещё бы научить всё это асинхронной обработке методов при batch-запросах, чтобы можно быть не ждать, пока обработается уведомление (потому что оно всё равно не ответит), чтобы время ответа соответствовало обработке самого долгого метода...

  • Работа с JSON RPC в Symfony 4
    0

    Самое лучшее, на мой дилетантский взгляд, это передача токена авторизации в метод. Можно, конечно, воспользоваться заголовками запроса, но json-rpc всё-таки транспортно-независимый протокол.

  • Не пора ли к мозгоправу?
    0

    Если Саша === nmivan, то, скорее всего, пора

  • Нейросеть научилась раздевать женщин
    0

    Вообще, лет 10 назад уже были подобные сервисы. И одежду снимали, и показывали как будете выглядеть в старости...

  • Нейросеть научилась раздевать женщин
    +14

    С таким фурункулом на бедре лучше обратиться в больницу...

  • Каково это — быть разработчиком в России, когда тебе сорок
    0

    А какой год? У меня отец сам собирал спектрум, комплектующие покупал в Новосибирске (жили мы на Алтае). Это были года где-то 90-92, если не ошибаюсь

  • Бытие современного фуллстек-разработчика
    +8

    Природа очень простая. При операторе . интерпретатор пытается привести значения к строке, при + — к числам.


    <?php
    
    $foo = 1;
    $bar = '2';
    
    $result = $foo + $bar; // 3
    $result = $foo . $bar; // 12
  • Бытие современного фуллстек-разработчика
    +3
    А потом, в начале двухтысячных, полностью перешел на Linux и покупать стало нечего.

    Ну не знаю… Сижу на Linux, но купил PHPStorm. Ни разу не пожалел.


    Каюсь, но я до сих пор не настроил ротацию логов.

    Laravel умеет в ротацию логов из коробки. Есть драйвер daily


    Для деплоя я использую систему контроля версий GIT и специально написанные скрипты, разбитые на этапы, имеющие один центральный скрипт запуска.

    Рекомендую попробовать Deployer. Написан на php, Добавляется через Composer, изучается и прикручивается за вечер

  • Поймай меня, если сможешь. Версия Пророка
    0
    В книге просто и доходчиво… Приводится детальное описание причин,… почему настоящий руководитель должен вырасти внутри предприятия, а не быть привлеченным извне. Только человек, выросший в компании, прошедший с ней большой путь – желательно, лет в 15, понимает и чувствует ее, в прямом смысле.

    т.е. Король прошёл на птицефабрике абсолютно иной, но успешный путь, и теперь рекомендует книгу, в которой вообще всё не так?


    Не люблю я этих тайн мадридского двора, потому и не стал интересоваться подробнее

    А поинтересовался бы, может и понял бы, что этот Король не просто "эффективный", а ещё и паразитирующий и не умеющий в честную игру.

  • Golang Meetup vol.4 — 27 июня, Нижний Новгород
    0

    Будет ли у вас онлайн трансляция или какая-нибудь другая возможность послушать/посмотреть/почитать доклады?

  • 5 способов деплоя PHP-кода в условиях хайлоада
    0

    Как-то так:


    current -> /releases/ver2
    releases/
      ver1/
        public/
          uploads -> /shared/public/uploads
          index.php
        src/
          file1.php
          file2.php
          file3.php
          file4.php
      ver2/
        public/
          uploads -> /shared/public/uploads
          index.php
        src/
          file1.php
          file2.php
          file3.php
          file4.php
    shared/
      public/
        uploads/
          file1.jpg
          file2.jpg
          file3.jpg
          file4.jpg
          file5.jpg

    т.е. в каждом релизе есть символьные ссылки на директории с общими файлами.

  • Golang DevDay: 31 мая, Новосибирск + трансляция
    0

    Спасибо спикерам за доклады! Спасибо 2гис за организацию!

  • Микрофреймворк slim
    0

    Не понял, о чём Вы

  • Микрофреймворк slim
    0

    Не знал. Спасибо!

  • Микрофреймворк slim
    0

    т.е. после выполнения команды можно внести /.idea в ~/.gitignore_global и забыть?

  • Микрофреймворк slim
    0

    Можно, учитывая это обстоятельство, писать промежуточное ПО, принимающее в конструкторе контейнер.
    Можно переопределить \Slim\MiddlewareDispatcher путём наследования, а потом наследоваться от \Slim\App.


    Но оба варианта такое себе...

  • Микрофреймворк slim
    0

    Именно так!
    Можно воспользоваться любым контейнером, который реализует PSR-11.

  • Микрофреймворк slim
    0

    Прошу прощения. Поправил ссылку.

  • Микрофреймворк slim
    0
    app/Provider/AppProvider.php — такую портянку теперь обязательно писать?

    Конечно же не обязательно.


    Можно сократить, сразу забиндив интерфейс к реализации, заменить


    <?php
    // app/Provider/AppProvider.php
    
    namespace App\Provider;
    
    // ...
    
    class AppProvider implements ServiceProviderInterface
    {
    
        public function register(Container $container)
        {
            // ...
            /*
             * Регистрируем обработчик результатов роутера
             */
            $container->set(RouteResolver::class, function (ContainerInterface $container) {
                return new RouteResolver($container->get(RouteCollectorInterface::class));
            });
    
            /*
             * Связываем интерфес обработчика результатов роутера с реализацией
             */
            $container->set(RouteResolverInterface::class, function (ContainerInterface $container) {
                return $container->get(RouteResolver::class);
            });
            // ...
        }
    }

    на


    <?php
    // app/Provider/AppProvider.php
    
    namespace App\Provider;
    
    // ...
    
    class AppProvider implements ServiceProviderInterface
    {
    
        public function register(Container $container)
        {
            // ...
            /*
             * Регистрируем обработчик результатов роутера
             */
            $container->set(RouteResolverInterface::class, function (ContainerInterface $container) {
                return new RouteResolver($container->get(RouteCollectorInterface::class));
            });
            // ...
        }
    }

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


    Если нет необходимости использовать роутер в сервисах, контроллерах, командах и т.д., можно вообще через фабрику создать экземпляр приложения, вынести обработчик ошибок в public/index.php и вообще удалить AppProvider.


    Сделать можно так, как вам удобно.


    Раньше можно было на каждом этапе что то в ответ добавить, но видимо это ни кому не нужно.

    Как уже ответили, и сейчас можно.
    Я полагаю, что на данный шаг разработчики пошли во имя следования стандартам PSR (В частности, PSR-15 Middleware)


    Лично мне не понятно зачем всё это было сделано. Фреймворк это всё такие готовый набор инструментов и какие то направляющие для работы, а теперь Slim это что угодно и как угодно.

    Slim — это микрофреймворк. А направляющие для работы в нём — пакеты psr/*.

  • Микрофреймворк slim
    +1

    Опять же ИМХО, но как можно его назвать фреймворком, если в нём из коробки только роутинг? Даже реализации контейнера нет...

  • Российский электромобиль Zetta появится в продаже с декабря по 450 000 рублей
    0

    В статье написано:


    Подвеска — адаптированные решения восьмого и десятого семейства Lada.

    Это произошла такая нехилая адаптация, чтобы из макферсона сделать двухрычажную, которая как раз и использовалась Ладой/ВАЗом, но ДО восьмого семейства.

  • Российский электромобиль Zetta появится в продаже с декабря по 450 000 рублей
    0

    Передняя подвеска больше напоминает классическую (01-07), нежели 8 и 10 семейства...

  • PHPUnit. Мокаем Doctrine Entity Manager
    0

    Т.е. в разрезе юнит-теста я должен был закончить тест-кейс на моменте проверки возвращаемого результата/исключения, а всё остальное — вынести в отдельный тест?

  • PHPUnit. Мокаем Doctrine Entity Manager
    +1

    Но проверка, вызывался ли в сервисе метод сохранения данных — это же не интеграционное тестирование? Или в юнит-тестах нет необходимости проверять этот момент?

  • PHPUnit. Мокаем Doctrine Entity Manager
    0

    Да, я не правильно выразился в высказывании


    Но как тогда проверить, сохранилась ли сущность в БД
    Конечно же, речь шла о проверке вызова метода сохранения.

    В проектах на Symfony, как правило, репозитории используют только для выборки данных, а сохранение осуществляется через EM. Именно такой кейс и рассмотрен в статье

  • PHPUnit. Мокаем Doctrine Entity Manager
    0

    Согласен, вариант хорош. Но как тогда проверить, сохранилась ли сущность в БД? Или сохранение тоже вынесено в репозиторий?

  • PHP-Дайджест № 156 (6 – 20 мая 2019)
    +1
    bramus/composer-autocomplete — Автодополнение команд composer в командной строке, в том числе сценариев из секции scripts.

    А я недавно как раз писал перевод поста, на котором и основан этот пакет

  • Как Мегафон спалился на мобильных подписках
    0
    Опсосов не оправдываю, но страница оплаты хранится на их серверах, даже если это услуга партнера.
  • Дело было вечером, делать было нечего, или как установить Gentoo без клавиатуры
    +4
    Gentoo загрузилась! Краски радуют глаз!

    Сначала прочитал: "Краснеет глаз". Перечитал, выдохнул.

  • «Бэкап мне на ленту запили». Рассказ от первого лица
    0
    Встречаются, но среди домашнего железа воткнуть некуда.
  • Если есть в кармане пачка сигарет…
    +4
    Водка у них не «Каждый День», а «КД». Цензурненько
  • Ускоряем WebGL/Three.js с помощью OffscreenCanvas и веб-воркеров
    0
    Просмотров статьи всего 251, а сайт уже не открывается :(