<rmcreative>

RSS

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

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

  1. Как не надо писать сравнения. Symfony2 vs Yii: какой фреймворк выбрать в 2015-м году?

    2 сентября 2015

    Почитал свежую статью отличной команды stfalcon. Оформлена она замечательно, читается приятно. В итоге Symfony почти безоговорочно рвёт Yii, но есть «нюансы», которые делают статью некорректной.

    Читаем

    23 комментария
  2. PHP и его популярность

    28 августа 2015

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

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

    12 комментариев
  3. Sitemap

    10 июля 2015

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

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

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

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

    Пользуйтесь

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

    30 июня 2015

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

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

    17 комментариев
  5. Вызвать 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 комментариев
  6. Видео с DevConf 2014: собачники против

    27 мая 2015

    В этом году я на DevConf, к сожалению, не попадаю, но организаторы порадовали видео с прошлого раза.

    Доклад рассказывали сразу три человека: Иван Матвеев, Григорий Кочанов и я. Тема холиварная, про оператор @.

    Посмотреть можно на сайте DevConf

    2 комментария
  7. Вызвать private метод класса в PHP

    25 мая 2015

    Бывает, не хочется портить API ради тестирования, но нужно как-то добраться до private метода. Сделать это можно вот так:

    function callPrivateMethod($object, $method, $args)
    {
        $classReflection = new \ReflectionClass(get_class($object));
        $methodReflection = $classReflection->getMethod($method);
        $methodReflection->setAccessible(true);
        $result = $methodReflection->invokeArgs($object, $args);
        $methodReflection->setAccessible(false);
        return $result;
    }
     
    $myObject = new MyClass();
    callPrivateMethod($myObject, 'hello', ['world']);

    UPD: вариант без Reflection

    13 комментариев
  8. Перестаньте использовать mcrypt

    13 мая 2015

    Сегодня в очередной раз всплыла статья об распространённых ошибках при реализации шифрования. Сама по себе она ничего так, но местами учит плохому. А именно, использовать mcrypt.

    Почему его не стоит использовать

    mcrypt не обновлялся более десяти лет и не планирует. Авторы его забросили. В нём есть серьёзные недоработки.

    И что делать?

    Мы в Yii от него ушли в сторону OpenSSL, чего и вам советую. Реализовал переход, в основном, Tom Worster. У него есть серия интересных постов на тему.

    8 комментариев
  9. PHP Frameworks Day 2014, Киев

    3 ноября 2014

    15 ноября 2014 в Киеве в Конгресс-холле «Космополит» пройдёт конференция PHP Frameworks Day — одна из самых интересных конференций для тех, кто работает с PHP-фреймворками или разрабатывает их.

    В этом году приехать не получается, но Yii на конференции, скорее всего, будет. В докладчики предложен Александр Бордун, CTO EuroMD. В сообществе Yii он известен созданием yiiframework.com.ua и переводом документации на украинский. Также он внёс значительный вклад в русскоязычный сборник рецептов. Тема будет «Yii2 — на пути от Alpha до GA. Взгляд с практической стороны». Его можно поддержать в голосовании на сайте. Кнопки появятся после регистрации.

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

    Официальный анонс

    6 комментариев
  10. OpenSource-им PHP код

    19 августа 2014

    Недавно Максим Ekstazi Фуртуна написал тему для авторов кода на форуме yiiframework.ru. Я решил сделать подобный список для современного PHP-кода в общем.

    • Пишите под поддерживаемые версии PHP. Сейчас это 5.4 и выше.
    • Форматируйте код по PSR-2.
    • Используйте git, а лучше github.
    • Релизы делайте по правилам семантического версионирования.
    • Используйте Composer и не забывайте добавить пакет в packagist.
    • Называйте и загружайте классы по стандарту PSR-4. Писать свой загрузчик не нужно, Composer уже умеет.
    • Пишите unit-тесты. Замечательно, если ваш код покрыт ими на 70-80%. Запускать автоматически можно через Travis CI.
    • Документируйте код в стиле DocBlocks.
    • Напишите отличный readme: что код делает, как настроить и использовать. Получилось длинно — оставляйте в readme «что код делает», остальное выносите в полноценное руководство. В качестве разметки советую markdown.
    • Не забрасывайте свой код. Если времени нет — подключите к проекту тех, кто активнее всех вам помогает и заинтересован.
    • Обязательно приложите текст одной из OpenSource-лицензий. Рекомендую BSD или MIT.
    3 комментария