<rmcreative>

RSS

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

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

  1. Sitemap

    10 июля 2015

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

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

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

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

    Пользуйтесь

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

    30 июня 2015

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

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

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

    27 мая 2015

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

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

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

    2 комментария
  5. Вызвать 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 комментариев
  6. Перестаньте использовать mcrypt

    13 мая 2015

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

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

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

    И что делать?

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

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

    3 ноября 2014

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

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

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

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

    6 комментариев
  8. 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 комментария
  9. Software Development podCAST #7

    8 августа 2014

    Записался в подкасте. Говорили про Yii и PHP в целом:

    • Как живет и развивается OpenSource проект Yii Framework: участники, организация разработки, зоны ответственности, текущее положение дел и планы по дальнейшему развитию.
    • Yii Application Development Cookbook.
    • PHP Framework Interop Group. Цели группы, её участники, обсуждаемые вопросы.
    • Экосистема PHP: вчера, сегодня, завтра. PSR, загрузчики, HHVM, PhpNG, менеджеры пакетов и прочее.

    Слушаем

    4 комментария
  10. wnmp-dev: nginx, MariaDB, PHP под Windows

    16 июля 2014

    Решил выложить то, что собрал себе вместо denwer для работы с PHP под Windows. Нынче популярны всякие Vagrant, но иногда, особенно если пишется кросс-платформенное решение вроде Yii, нужен и Windows в том числе.

    Итак, wnmp-dev — простейший набор bat-скриптов и конфиг для nginx, которые позволяют развернуть полноценный вебсервер под Windows и легко переключаться между разными версиями PHP.

    Как поставить:

    1. Клонируем https://github.com/samdark/wnmp-dev.git или загружаем архивом.
    2. Забираем нужные версии PHP с сайта PHP for Windows. Берите nts, x86 zip.
    3. Распаковываем архив. Версия 5.5 должна оказаться в php55, версия 5.4 в php54.
    4. Забираем MariaDB или MySQL, складываем в mariadb.
    5. Копируем nginx/conf/vhosts/example._conf в nginx/conf/vhosts/mysite.conf, редактируем так, чтобы конфиг указывал на ваш вебрут.
    6. Добавляем домен из конфига в hosts.
    7. Запускаем start_all.bat
    8. Работаем.

    Предложения, пожелания и вопросы принимаются, ридми будет уточняться.

    https://github.com/samdark/wnmp-dev

    17 комментариев