<rmcreative>

RSS
  1. Онлайн митап от ВсеИнструменты.Ру о PHP, MySQL, нагрузках и асинхронности

    4 февраля 2021

    12 февраля в 17:00 состоится митап, в котором я приму непосредственное участие. Темы:

    • Best Practice из Go для PHP.
    • Оптимизация MySQL в условиях HighLoad.
    • Холивар про асинхронность в PHP.

    Регистрируемся

    Комментировать
  2. Интервью с Hexlet

    4 февраля 2021

    Ещё одно интервью с Hexlet. На этот раз текстом и брал его Святослав Иванов. Про то, как я втянулся в PHP, про сам язык, его сообщество, OpenSource и Yii.

    Читаем

    Комментировать
  3. PHP Russia 2020 переносится на 28 июня 2021 года

    23 января 2021

    Ещё раз пришлось перенести конференцию. Самим это, конечно, очень не нравится, но поделать нечего. Нам, как и всем остальным, хочется нормального оффлайнового общения, а оно пока невозможно.

    Комментировать
  4. Евгений Россинский про прыгунов

    14 января 2021

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

    Об одной из них в интервью рассказал Евгений Россинский, СТО ivi и член ПК Highload и РИТ:

    Люди, которые прыгают из одной компании в другую, проработав по году, не отвечают за свои слова. Это значит, что те архитектурные решения, которые они сделали, проверяет кто-то другой. И они не получают того самого опыта, который нужен для жизни долгоиграющего сервиса. Ты устроился работать в компании, проработал там два месяца, написал какой-то сервис или сделал какую-нибудь фичу, а когда эта фича через 7-8 месяцев перешла в суровую эксплуатацию, ты увольняешься. Но кто будет отвечать за то, что эту хрень написал ты?

    11 комментариев
  5. 2020

    2 января 2021

    Год получился непростым, непривычным, немного страшным и непредсказуемым, но, в общем, неплохим. Итоги в этот раз чуть отстали, но не написать их не могу, как-никак, стабильно подвожу их с 2010.

    Читаем

    2 комментария
  6. Новости Yii 2020, выпуск 8

    30 декабря 2020

    Успел составить предновогодний выпуск. Тройку полностью не выпустили, но начали. В января будут ещё пакеты.

    Чиатем

    Комментировать
  7. PHP 8

    30 ноября 2020

    На днях релизнулся PHP 8. Он не так богат на полезные возможности, как PHP 7.0 или PHP 7.4, но определённо хорош как производительностью с новым JIT, так и тысячей приятных мелочей.

    О новых возможностях коротко можно почитать на специальной странице, которую мы подготовили вместе Романом Пронским, JetBrains и сообществом.

    В честь выхода мы провели стрим с участием двух видных разработчиков этого релиза: Дмитрия Стогова и Никиты Попова.

    Запись можно посмотреть на YouTube.

    По поводу стабильности могу сказать, что, определённо можно пробовать переводить на восьмёрку продакшн. Большинство серьёзных багов отловили в бетах. Yii 1, Yii 2 и Yii 3 к PHP 8 готовы.

    4 комментария
  8. Новости Yii 2020, выпуск 7

    12 ноября 2020

    Вышел очередной выпуск новостей про Yii и новая порция релизов. Опубликовал на хабре.

    Приятного чтения

    Комментировать
  9. Зачистка контекста в unit-тестах

    9 ноября 2020

    Unit-тесты должны быть изолированы. То есть тесты должны проходить если выполнять из по-одному или если включить в PHPUnit режим выполнения в случайном порядке через phpunit.xml.dist:

    <phpunit executionOrder="default">

    Для этого, если тест работает с окружением (например, с файловой системой), окружение нужно подчищать. Причём подчищать и до и после через setUp() и tearDown():

    final class MyTest extends PHPUnit\Framework\TestCase
    {
        public function setUp(): void
        {
            $this->cleanup();
     
            $path = realpath(sys_get_temp_dir());
            mkdir($path, 755);
        }
     
        public function tearDown(): void
        {
            $this->cleanup();
        }
     
        private function cleanup(): void
        {
            $path = realpath(sys_get_temp_dir());
            rmdir($path)
        }

    Зачистка делается два раза и до и после потому как если какой-то тест упадёт, зачистка в tearDown() не выполнится и окружение "встанет".

    8 комментариев
  10. Windows Terminal и пара разных версий PHP в отдельных вкладках

    24 октября 2020

    Недавно у меня умер SSD и заставил настраивать заново всё окружение. Опробованные Linux по тем или иным причинам не зашли (но я ещё попробую, может пропустил что). Вернулся на Windows 10.

    Для тестов фреймворка мне необходимы несколько версий PHP и в этот раз удалось сделать удобно. В Windows Terminal у меня теперь несколько профилей с git bash и в каждом отдельная версия PHP.

    Делается так:

    1. Берём сам PHP, распаковываем в отдельные директории. Например, C:\php74, C:\php80.
    2. Добавляем профили:
    {
        "guid": "{e084a08a-ad94-499d-9573-1d5904b4e9a0}",
        "name": "Git Bash with PHP 8",
        "suppressApplicationTitle": true,
        "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
        "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php80\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"",
        "startingDirectory": "D:\\src\\"
     
    },
    {
        "guid": "{08a7817f-8812-4eb0-b4b7-a4939fc9d14a}",
        "name": "Git Bash with PHP 7",
        "suppressApplicationTitle": true,
        "icon" : "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
        "commandline": "cmd.exe /C \"SET PATH=%PATH%;C:\\php74\\&& \"%PROGRAMFILES%\\Git\\bin\\bash.exe\" -login -i -l\"",
        "startingDirectory": "D:\\src\\"
     
    }
    7 комментариев