<rmcreative>

RSS

Все заметки с тегом «PHP»

Можно уточнить:

  1. PHP vs Go

    25 августа

    15 августа записали видео где попытались разобраться, как пишут приложения на PHP и Go. Участники кроме меня:

    • Елена Граховац - руководитель программного комитета конференции GolangConf 2019, экс-ведущая подкаста GolangShow.
    • Илья Шихалеев - соорганизатор go-митапов в Йошкар-Оле, Казани и онлайне, по работе также пишет на PHP.
    • Руслан Ханов - соорганизует PHP-митапы http://symcode.ru в Петербурге.
    • Дискуссию вёл Антон Морев (Wormsoft).

    Смотрим

    Комментировать
  2. PHP friendly классы

    5 августа

    Дружественные классы видят как минимум protected-методы друг друга. В PHP реализуются так:

    <?php
     
    abstract class Base
    {
        protected function doit()
        {
            throw new \RuntimeException('Not implemented');
        }
    }
     
    class Closed extends Base
    {
        protected function doit()
        {
            echo 'done!';
        }
    }
     
    class Opener extends Base
    {
        public function execute(Closed $closed)
        {
            $closed->doit();
        }
    }
     
    $closed = new Closed();
    $opener = new Opener();
     
     
    $opener->execute($closed);

    Здесь можно запустить. Если что, это не баг.

    Как это использовать? В Yii 3 мы так закрываем DI-контейнер и диспетчер событий чтобы в рантайме они были только для чтения, но, при этом их можно было сконфигурировать специальными friendly-конфигураторами на этапе инициализации приложения.

    Сделано это чтобы не дать стрелять себе в ногу, в этом плюс. Минус в том, что про такую фичу PHP мало кто знает и это вызывает вопросы:

    9 комментариев
  3. Microsoft, Windows и PHP

    14 июля

    iXBT опубликовали новость "Microsoft прекращает поддержку PHP в Windows".

    Компания Microsoft объявила о том, что она собирается прекратить поддержку PHP в своей операционной системе Windows.

    На самом деле всё не так:

    1. Microsoft многие годы оплачивали фуллтайм-работу по поддержке Windows в PHP. Изначально они объявили что делают это для версий 7.x. К PHP 8 это не относилось.
    2. В самой операционной системе Windows ничего не меняется. Ну разве что WSL 2 добавили, но на запуск php.exe это не влияет никак.
    3. Для версий PHP меньше 8-ки ничего не меняется. Будут официальные билды.
    4. Для 8-ки команда из Microsoft билдов делать не будет. Скорее всего потому как можно нормально запускать PHP из WSL 2. Но, на самом деле, никто не мешает собрать билд самому. Плюс не факт, что их место никто не займёт. Например, Jan-E из Apache Lounge. Команда из Microsoft готова передать дела.
    Комментировать
  4. Короткие теги в PHP

    10 июня

    Почти десять лет назад я писал про короткие теги и радовался включению короткого echo по умолчанию.

    Сегодня меня спросили, что я думаю по поводу использования коротких тегов.

    Их осталось на данный момент в PHP 7.4 два вида:

    • <? - короткая форма <?php. Включается через short_open_tag в php.ini.
    • <?= - короткая форма <?php echo. Доступна всегда.

    Если с <?= всё ясно, тег доступен всегда и удобен при использовании в шаблонах, то с <? не всё так просто.

    В PHP 7.4 его хотели убрать и почти убрали после положительного голосования за RFC. Но в итоге сначала предложили сделать это по-другому, а потом и вовсе не делать.

    В результате в PHP 7.4 теги работают как и ранее. В PHP 8 тоже (но не факт, что так будет в релизе).

    Стоит ли использовать <? - вопрос неоднозначный. Если у вас проект, который разворачивается только на ваши сервера, вы контролируете php.ini и никогда не забываете short_open_tag = On, то технически ничего ужасного в использовании коротких тегов нет. Если же вы делаете продукт, который можно поставить на свой сервер, такой как CMS или фреймворк, то использовать <? - плохая идея. Часть пользователей обязательно попробует развернуть ваш продукт в окружении, где у них нет возможности поправить php.ini.

    7 комментариев
  5. 25 лет PHP

    8 июня

    8 июня 1995 года, программист родом из Гренландии Расмус Лердорф публикует в usenet анонс набора CGI-скриптов, который он назвал PHP Tools.

    Иногда говорят, что первые версии PHP были написаны на Perl. Это, конечно же, неправда.

    Главные факты и события из 25 лет истории PHP смотрите в таймлайне.

    Заревьювить и дополнить его помогли непосредственные участники событий: Andi Gutmans, Derick Rethans, Peter Kokot, Александр Макаров, Дмитрий Стогов и другие.

    Еще 27 мая исполнилось 10 лет PhpStorm. Чтоб отметить сразу два дня рождения делаем скидку 50% на персональную годовую подписку.

    С днем рождения PHP!

    Комментировать
  6. PHP Mentors

    20 апреля

    В ноябре 2018-го года мне написал Flávio Silveira. У него была идея собрать книгу с ответами на одни и те же вопросы от видных в сообществе PHP людей. В итоге всё получилось: 55 человек, 17 вопросов.

    Сайт книги

    Комментировать
  7. PHP: return в finally

    4 марта

    function test()
    {
        try {
            throw new \RuntimeException('try');
        } catch (\RuntimeException $e) {
            throw new \RuntimeException('catch');
        }
        finally {
            return 'finally';
        }
    }
     
    echo test();

    return в finally - штука опасная. Он тихо проигнорирует все исключения.

    3 комментария
  8. Как узнать, равны ли два float в PHP

    6 декабря 2019

    Тип float не отличается точностью, страдают от ошибок округления и сравнивать как обычно их нельзя. Почему так отлично написано на специальном сайте floating-point-gui.de.

    В PHP узнать, равны ли два float и не нарваться на ошибки можно так:

    $equal = \abs($a - $b) < PHP_FLOAT_EPSILON;

    PHP_FLOAT_EPSILONмашинный ноль для PHP.

    Для PHP < 7.2 можно в качестве epsilon использовать 0.0001.

    8 комментариев
  9. PHP 7.4

    28 ноября 2019

    Увидела свет новая версия PHP.

    Самое важное для меня:

    • Производительность увеличилась.
    • Типизация свойств. Потенциально хорошая штука для простых DTO.
    • Ковариантность возвращаемого типа и типа аргументов. Очень полезно для типизированных коллекций и реализации PSR с добавлением дополнительной типизации.
    • Возможность бросать исключения в __toString(). Точно упростит обработчик ошибок в Yii 3 и очень важно для реализации виджетов.
    • preload. Потенциально интересно.
    3 комментария
  10. Немного видео с PHP Russia

    7 июня 2019

    Комментировать