PHP-Дайджест № 124 (14 – 28 января 2018)


    Свежая подборка со ссылками на новости и материалы. В выпуске: новый стандарт PSR-15, WordPress на .NET, порция полезных инструментов, и многое другое.
    Приятного чтения!



    Новости и релизы



    PHP Internals


    • phpinternals.net — Сайт, посвященный внутренностям PHP: статьи, документация.


    Инструменты




    Материалы для обучения




    Аудио и видеоматериалы


    • ruvideo Software Development podCAST #72 — Интервью с Ильясом Салиховым про архитектуру retailCRM, PHP, Symfony, PostgreSQL, миграции и soft skills.


    Занимательное



    Спасибо за внимание!

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

    Прислать ссылку
    Поиск ссылок по всем дайджестам
    Предыдущий выпуск: PHP-Дайджест № 123

    Zfort Group 319,90
    Компания
    Поделиться публикацией
    Комментарии 22
    • –3
      Раз уж это дайджест, то может уместно будет задать вопрос:
      — помогите найти open source PHP библиотеку, которая умеет красиво отображать (таблица) и фильтровать данные из базы данных. Данные — это имена пользователей, их действия, timestamps, компьютеры и файлы, которые они читали/писали и т.д… Что-нибудь такое, чтоб были select lists, поиск с помощью SQL.
      • +1
        Думаю, что вам с такими вопросами на тостер, это, кажется, очевидно. Этот сайтик по техническим статьям и рассказам.

        Но дабы не тратить просто так место в комментарии на критику, отвечу: Вам смотреть в сторону PhpMyAdmin/PhpPgAdmin/etc. А дальнйшее дискутирование на эту тему предлагаю провести именно на предназначенном для этого ресурсе.

        P.S. В статье «Сервисы в Rails, Symfony, Yii2 и Zend Expressive: реализуем одну задачу на четырех фреймворках», вместо DirectoryIterator можно (нужно) просто использовать готове Symfony-решение (http://symfony.com/doc/current/components/finder.html):
        public function getFileList(): iterable
        {
            yield from (new Finder())->files()->in($this->path);
        }
        


        Юр, надеюсь ты прочитаешь комментарий и поправишь это досадное упущение =)
        • 0
          PhpMyAdmin — это для администратора.

          Я ищу нечто, чтобы выставлять информация публично.
          • +1
            Настройте права доступа и выставляйте публично
            • +6
              В Yii2 есть такая штука, как GridView.
              Можете глязануть этот русскоязычный материал: nix-tips.ru/yii2-razbiraemsya-s-gridview.html
              Может очень много и позволит на скорую руку слепить красивую таблицу с фильтрами и сортировкой.
              Но предупрежу заранее — это НЕ библиотека, и Вам придется подключатьь целый фреймворк. Хотя в случае с Yii2, это не так уж сложно.
              • 0
                Спасибо,
                Наверное именно то, что надо.
                Конечно, лучше бы найти такую именно библиотеку, чтоб не тянуть целый фрэймворк, но для текущего проекта подойдёт и так.
              • +2

                В yii2 есть gridview, который выполняет что-то похожее

              • 0
                Прочел, это еще в твиттере у Макарова заметили ) я симфу брал разве что для иллюстрации. Но «досадным упущением» это считать сложно, хотя возможно обновлю статью упомянув что лучше юзать файндер. Цель статьи была показать serivce object а не бест практис отдельного каркаса.
                • 0
                  Статья обновлена, спасибо. Подсказчик кода упомянут )
                  • +1

                    Finder разве есть явно в пакетах скелета? (Я не знаю, если честно, ответите потом =)) Если нет, то этот пакет можно было использовать в каждом из примеров. Про явно в пакетах скелета я имею ввиду, что он в корневом composer.json указан. То, что пакет от Symfony не означает, что его обязательно нужно использовать. Примеры были реализованы на чистых скелетах.

                    • 0
                      Имеется ввиду то, что он идёт из коробки вместе с фреймом? github.com/symfony/symfony/blob/master/composer.json#L49
                      • 0
                        В ветке 3.3 тоже он есть, какая в статье использована. Ну, как бы там ни было, статья обновлена. Дебатировать «надо файндер или не надо» имхо не имеет смысла.

                        Симфони-часть писал я, как и ROR часть. И в симфони мой прокол в том что я не знал о таком расширении и более того что оно поставляется в базовой поставке standard edition (в до-4 версиях еще термин такой был).

                        Но, могу сказать что другие части статьи за исключением symfony (а это ror, yii2, zend expressive) писались экспертами в этих каркасах. И конечно такого огреха там нет.

                        А отчего взял еще и симфони для иллюстрации? Нравится. Хочется изучать. Тем более что работу с сервисами описал точно, не отходя ни на шаг от буквы документации. Статья свои задачи выполняет.
                        • 0

                          Нет, меня интересует корневой composer.json, после того, как скелет развернут. Есть ли там Finder?

                  • 0
                    > Высокопроизводительный балансировщик нагрузки и менеджер процессов для Golang на PHP

                    Поначалу подумал что это опечатка и балансировщик на golang для PHP )
                    Можете объяснить для чего может быть нужен подобный мухослон?
                    • +1

                      Изначально использовался в системе очередей (pub/sub, Golang) для передачи задач в PHP проект, на практике работает как и PHP-PM, только без привязки к HTTP стеку и намного быстрее.


                      Позже планируем собрать PSR-7 сервер на этой штуке для API.

                      • 0
                        А он работает отдельно от Golang, только на PHP?

                        Честно говоря, как и s256 не понял что за мультиязычный монстр такой.
                        • +1

                          Это библиотека для Golang для управления и общения с PHP процессами, фактически встраиваемая версия PHP-FPM / PHP-PM только быстрее за счет демонизации процессов.


                          Задумка аналогична PHP-PM, но предоставляет более низкоуровневое АПИ и работает на порядок шустрее.


                          По сути на ней можно собрать свой HTTP сервер (что мы и делаем), использовать как бакенд для очереди, GRPC и т.д.

                      • +2
                        Судя по репозиторию на гитхабе — это таки опечатка. Написано на го, управляет пхп процессами
                      • 0
                        Очень понравился пулл github.com/symfony/symfony/pull/25854. Интересно, сделают ли оптимизацию в ядре по мотивам проблемы. Думаю единицы переопределяют базовые глобальные функции.
                        • 0
                          Использую плагин plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-
                          Там есть настройка, которая позволяет инспектировать такой вызов.
                          • 0
                            Тоже использую плагин, а в комментах к пулу уже обсудили возможность добавления инспекций в PhpCodeSniffer. Но хочется именно в ядре оптимизаций, чтобы такими «костылями» не пользоваться.
                          • +2
                            В guzzle используется переопределение json_encode / json_decode, вечно всплывает в автокомплите.
                            Возможно сделают какую-то оптимизацию на уровне opcache — исключение поиска функции в текущем неймспейсе на этапе компиляции, если это возможно.

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

                          Самое читаемое