<rmcreative>

RSS

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

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

  1. Современный брутфорс и безопасный логин

    2 октября 2011

    Оказывается, любой печатный восьмисимвольный пароль в домашних условиях ломается перебором всех комбинаций за три с половиной дня. Это при том, что хеширован он вполне современным sha256. Всего несколько лет назад на такой перебор могли уйти годы, а то и вся жизнь.

    Что же теперь делать?

    1. Можно и нужно сделать лимит на количество попыток ввода пароля. По достижении лимита можно, например, просить ввести капчу. Однако, если произойдёт «утечка» базы данных, что, конечно, бывает не так часто, но бывает, ограничение не поможет.
    2. Хорошим решением будет в дополнение сделать вычисление хеша более ресурсоёмкой операцией. Пользователь не заметит, а вот для взломщика перебор станет, если не невозможным, то, как минимум, финансово невыгодным. Реализуется, например, при помощи bcrypt. Выглядеть это может примерно как здесь.
    27 комментариев
  2. traits и члены класса

    1 октября 2011

    traits в PHP 5.4 — довольно занятный механизм. Хотя, приведённое ниже в официальном мануале не показывается (возможно, решили перестраховаться), но работает:

    trait MyTrait
    {
        public $traitVar = 'trait var';
     
        public function test()
        {
            echo $this->traitVar;
            echo $this->classVar;
        }
    }
     
    class MyClass
    {
        private $classVar = 'class var';
        use MyTrait;
    }
     
    $c = new MyClass();
    $c->test();
    echo $c->traitVar;
    28 комментариев
  3. PhpStorm 3.0 EAP 108.1421

    28 сентября 2011

    Вот и вторая сборка EAP 3.0. Кроме исправления небольшого числа зависаний и полузависаний есть и очень вкусная штука: поиск дублирующегося кода. Такого пока нет ни в одной известной мне IDE. Я уже успел поиграться и могу сказать, что штука определённо полезная.

    12 комментариев
  4. PhpStorm 3.0, первый EAP-билд 108.1343

    22 сентября 2011

    Вот и вышел первый EAP-билд долгожданной третьей версии полюбившейся многим разработчикам PHP IDE. Остаток дня был проведён за кодом уже в новом билде. Впечатления положительные. Что же интересного принесла нам свежая EAP? Среди просто нереального количества фиксов болячек разной степени важности стоит выделить следующее.

    Производительность

    Разница действительно очень значительна. Теперь ощущения от работы автодополнения и набора текста в общем очень похожи на работу в «нативных» IDE.

    Также обещают более плавную работу с большими проектами при использовании 32-х битной JRE. Как раз мой случай.

    Похоже, мне повезло. Коллеги жалуются на задержки в автокомплите. Возможно, связано с комплитом из библиотек.

    Интерфейс

    Интерфейс претерпел значительные изменения. Сразу бросаются в глаза похудевшие табы, более компактные и продуманные диалоги. Linux и Mac тоже вниманием не обделили. Маку дали более приятный вид и fullscreen, линуксу drag&drop файлов и кучу фиксов.

    PHP

    • Автоматический перевод курсора в нужное место при записи ассоциативного массива с каждым элементом на новой строке (ура!).
    • Улучшили анализ синтаксиса и подсветку ошибок.
    • Различные улучшения в поддержке XDebug.
    • Добавили тулзу для анализа дампов профайлера XDebug.
    • Поправлены ошибки автоформаттера.
    • Поправили неприятное поведение при вводе кавычек.
    • В настройках можно выбрать конкретный интерпретатор PHP. Зачем, правда, пока не ясно.
    • Улучшили поддержку Twig.
    • Улучшили дополнение по namespace и в замыканиях.
    • Нормально реагирует на ENTER внутри PHPDoc, да и вообще много всего по PHPDoc (ура!)
    • Улучшена поддержка Phing.
    • Поддержка @return $this, @return self и @return static, что очень полезно для дополнения в Yii.

    JavaScript

    • Улучшенная поддержка синтаксиса библиотек.
    • Фиксы форматирования и анализа кода.
    • JSLint / JSHint

    CSS / HTML

    • Автоматический перевод курсора в нужное место при записи CSS лесенкой.
    • Фикснули оптимизацию перекрывающих друг друга записей.
    • Улучшили поддержку HTML5.
    • Поменяли диалог для выбора цвета. Добавили пипетку и возможность вводить цвет в hex. Убрали HSB. Попробую привыкнуть.
    • Zen Coding 0.7

    Разное

    • Добавили возможность исключать директории из заливки по FTP.
    • XSLT debugger

    Так как это первый билд третьей версии, стоит отбэкапить настройки перед обновлением. У меня лично обновилось всё без особых проблем, но мало-ли.

    51 комментарий
  5. PHP 5.4 beta1

    16 сентября 2011

    PHP 5.4 перешёл в статус beta, что не может не радовать. Официальный анонс ещё впереди, а пока можно почитать описание на хабре. Стоит отметить:

    Полный changelog тоже можно посмотреть.

    В общем-то в данной версии ничего супервкусного добавлено не было, хотя вкусняшек из трёх альфа-версий уже вполне достаточно для счастья. Статус «бета» даёт надежду на достаточно скорый релиз.

    Пощупать в деле можно тут или здесь для Windows.

    2 комментария
  6. Unable to allocate memory for pool

    14 сентября 2011

    Буквально двадцать минут назад забился кэш APC на форуме yiiframework.ru. Расследование проблемы заняло некоторое время. Итак, что же делать при получении Unable to allocate memory for pool.

    • Сливаем архив с APC.
    • Берём оттуда apc.php и заливаем на сервер.
    • Открываем apc.php в браузере и смотрим, есть ли у нас свободная память.
    • Если нет, меняем в php.ini значение apc.shm_size.
    • Рестартим PHP.

    Проблема может быть и другого рода, но чаще всего это именно забитый кэш.

    14 комментариев
  7. unset

    5 сентября 2011

    Ещё одна интересная особенность PHP, которую хорошо бы знать, чтобы не терять много времени при встрече с ссылочным foreach:

    $val = '2';
    $arr = array('1', &$val);
    var_dump($arr);
    unset($val);
    var_dump($arr);

    Штука действительно очень зла, если про неё забыть. Максим напоминал мне больше, чем целый день…

    13 комментариев
  8. Осторожно, in_array

    3 сентября 2011

    Такая функция как in_array используется очень часто. Однако, есть особенности, на которые сегодня обратил моё внимание aktuba, дав мне вот такой кусочек кода:

    $array = array(0, 'one', 'two');
    var_dump(in_array('three', $array));

    Работает он немного неожиданно — выдаёт true. Всё дело в том, что строка three приводится к типу элемента массива перед сравнением. В нашем случае интересно приведение к числу.

    Если такое поведение нежелательно, можно заставить сравнивать элементы ещё и по типу, передав третий параметр:

    $array = array(0, 'one', 'two');
    var_dump(in_array('three', $array, true));
    24 комментария
  9. PhpStorm 2.1.3

    30 августа 2011

    Релизнулся стабильный PhpStorm 2.1.3. Последние внесённые исправления не привносят новых возможностей, но довольно важны так как прилично улучшают поведение автодополнения.

    Кроме исправлений добавлена возможность отсылать статистику по использованию разных фич IDE в JetBrains. Включить можно в File → Settings → Usage Statistics. Настоятельно рекомендую т.к. на статистику скорее всего будут ориентироваться, выставляя приоритеты.

    Ждём новых EAP с вкусняшками.

    12 комментариев
  10. Команде переводчиков документации PHP требуется помощь

    1 августа 2011

    Документация PHP на русском несколько лет назад пропала с сайта PHP как неактуальная. Русскоязычная команда переводчиков хочет исправить эту ситуацию, но т.к. объёмы документации по PHP очень внушительны, сделать это небольшой группой сложно.

    Итак, если вы владеете PHP, английским и русским, то у вас есть шанс помочь PHP и войти в историю, заполучив попутно почту с доменом @php.net и OpenSource-лицензию на PhpStorm (конечно, при значительном вкладе в общее дело).

    Подробности описаны в двух постах на хабре:

    2 комментария