<rmcreative>

RSS
  1. PHP и его популярность

    28 августа 2015

    GitHub недавно опубликовал статистику по популярности языков.

    Конечно, это только GitHub, но довольно чётко прослеживается тот факт, что PHP в OpenSource занял своё место и никуда с него уходить не собирается в то время как другие языки то становятся новым трендом, то забрасываются в дальний угол как только появляется что-то новое.

    12 комментариев
  2. Форматирование сообщений для Yii::t()

    10 августа 2015

    На хабре появилась исключительно подробная статья, разбирающая возможности форматирования сообщений в Yii 2.0 через Yii::t().

    Очень рекомендую: http://habrahabr.ru/post/264009/

    3 комментария
  3. Yii 2.0 web shell

    8 августа 2015

    Релизнул модуль web shell для Yii 2.0:

    https://github.com/samdark/yii2-webshell

    12 комментариев
  4. Yii 2.0.6

    6 августа 2015

    Состоялся релиз PHP фреймворка Yii версии 2.0.6.

    Версия 2.0.6 является патч-релизом для ветки 2.0 и содержит более 70 небольших улучшений и исправлений, многочисленные улучшения документации и значительный прогресс с её переводом.

    Полный анонс можно прочитать на хабрe

    3 комментария
  5. Yii 2.0.5 (исправление безопасности)

    11 июля 2015

    Вышел Yii 2.0.5 исправляющий проблему с безопасностью, найденную в классе yii\web\ViewAction. Настоятельно рекомендуется обновиться. Обновление полностью совместимо с 2.0.4, содержит только исправление безопасности и не поломает ваш код.

    Уязвимость в ViewAction и заключается в возможности запускать любой PHP файл (или файл с расширением .php) на диске передав относительный путь через параметр view. Так как о проблеме сообщили через публичный трекер, мы исправили её и выпустили обновление немедленно.

    Для этой уязвимости мы зарезервировали номер CVE-2015-5467.

    11 комментариев
  6. Sitemap

    10 июля 2015

    Как-то давно я написал класс для генерации sitemap.xml. В конце прошлого месяца выяснилось, что его используют. Я привёл код в человеческий вид и выложил на GitHub в виде пакета для Composer.

    Через неделю понадобилось реализовать генерацию sitemap в stay.com. Так как данных там много, свой простенький класс не устроил. Монстрами пользоваться тоже не хотелось. Переписал.

    Итак, пакет samdark/sitemap умеет:

    • Создавать файлы sitemap.
    • Создавать индексный файл (да, sitemap может быть несколько).
    • Автоматически создавать новый файл, если достигнут лимит в 50000 URL (согласно спецификации).
    • Эффективно работает с памятью. Кушает по минимуму даже на огромных объёмах данных.

    Пользуйтесь

    5 комментариев
  7. Конкурс Stash

    8 июля 2015

    Совсем забыл написать про конкурс на gostash.ru. О нём, по просьбе автора проекта, я уже писал на хабре. Теперь пишу и тут.

    Опубликуйте код размером до 18 строк без учёта комментариев и переносов. Это может быть быстрый алгоритм, интересное решение, отличный трюк — всё, что может заинтересовать сообщество.

    Призы за первые три места — лицензии на самые лучшие IDE JetBrains, которые компания любезно предоставила. Шанс поучаствовать ещё есть. Итоги будут подводиться 13 июля в 11:00 по московскому времени.

    Участвуйте

    1 комментарий
  8. Пятиминутка PHP, выпуск 9

    30 июня 2015

    Записался в подкасте «Пятиминутка PHP». Получилось не 5 минут, а пол часа. Говорили про php-fig, Yii и другие интересные штуки.

    Послушать можно на сайте проекта.

    17 комментариев
  9. Прячем флаги в замыкания

    23 июня 2015

    window.addEventListener('click', function () {
        var i = 0;
        return function () {
            window.alert('You\'ve clicked it ' + (++i) + ' time(s).');
        };
    }());

    Благодаря замыканиям JavaScript позволяет не выносить флаги за функцию-обработчик и тем самым не засорять области видимости уровнями выше.

    Выполнить данный кусочек кода можно в консоли любого браузера. Для демонстрации щёлкайте по любому месту открытой страницы.

    Кстати, я выкладываю этот и другие интересные кусочки кода на gostash.ru

    4 комментария
  10. Вызвать private метод класса в PHP без Reflection

    10 июня 2015

    В комментариях к заметке о вызове private метода через Reflection Roman верно подметил, что можно использовать вместо Reflection анонимные функции. Вот только его вариант работает с PHP7.

    Оказывается, можно проделать такое чуть иначе и в PHP 5.4:

    class PrivacyViolator
    {
        private $caller;
     
        function __construct()
        {
            $this->caller = function ($method, $args) {
                return call_user_func_array([$this, $method], $args);
            };
        }
     
        function callPrivateMethod($object, $method, $args)
        {
            return $this->caller->bindTo($object, $object)->__invoke($method, $args);
        }
    }
     
    $myObject = new MyClass();
    $privacyViolator = new PrivacyViolator();
    $privacyViolator->callPrivateMethod($myObject, 'hello', ['world']);
    16 комментариев