Довольно часто при написании модульных тестов нам приходится сталкиваться с тем, что тестируемый класс зависит от данных из внешних источников, состояние которых мы не можем контролировать. К таким источникам можно отнести далеко расположенную общедоступную базу данных или службу, датчик какого-нибудь физического процесса и пр. Либо нам необходимо убедиться, что некие действия выполняются в строго определенном порядке. В этих случаях к нам на помощь приходят Mock объекты (mock в переводе с английского — пародия), позволяя тестировать классы в изоляции от внешних зависимостей. Использованию Mock объектов в PHPUnit посвящается эта статья.
Читать полностью »
Рубрика «php» - 258
PHPUnit: Mock объекты
2012-03-18 в 21:13, admin, рубрики: mock, php, phpunit, метки: mock, PHP, phpunitРазработка парсера PHP средствами ANTLR
2012-03-18 в 11:55, admin, рубрики: antlr, java, php, Компиляторы, Программирование, метки: antlr, java, PHPВ качестве хобби последние несколько месяцев я разрабатываю парсер языка PHP с помощью ANTLR. Сам проект для меня скорее просто Just for fun, но в ходе его реализации у меня, разумеется, возникали сложности. Тут сказывается как особенность языка PHP с полным отсутствием спецификаций, так и ограничения алгоритмов LL(k).
В этой статье я бы хотел поделиться техническими решениями и некоторыми хитростями в реализации парсера и процедуры его тестирования. Данная статья будет полезна тем, кто хочет подробнее разобраться в использовании средства ANTLR v2.Читать полностью »
php и nodejs, разница на пальцах
2012-03-15 в 17:54, admin, рубрики: node.js, nodejs, php, метки: nodejs, PHP Являясь постоянным пользователем форума nodejs.ru, часто наблюдаю картину когда люди начиная изучать nodejs сравнивают ее с php, а иногда пытаются работать с ней так как с php. Я бы хотел объяснить “на пальцах” разницу между php и nodejs применительно к работе сайта. Статья предназначена для новичков. Я намеренно буду говорить очень упрощенно, не вдаваясь в глубокие подробности, что бы как можно проще показать различия в технологиях.
Читать полностью »
Честная генерация DOCX файлов на PHP. Часть 2
2012-03-15 в 6:57, admin, рубрики: docx, php, метки: docx, PHP Здравствуйте, уважаемое читатели!
Продолжаем историю про генерацию DOCX средствами PHP.
Что нас ждет сегодня:
- Мы узнаем, как вставлять изображения в документ;
- Просветимся на счет English Metric Units;
- Сделаем задел на будущую генерацию Exel.
Тем, кто не в курсе, рекомендуется прочитать первую часть. Ну а кто в теме – прошу под катЧитать полностью »
Полезности для php. Часть 1, Autoload
2012-03-14 в 23:45, admin, рубрики: autoload, php, метки: autoload, PHPВ данной реализации поддерживаются PSR-0 и карты классов, загрузчики пространств имен и префиксов, кеширование в APC.
Немного о хэшах и безопасном хранении паролей
2012-03-14 в 15:06, admin, рубрики: cryptography, php, безопасность, пароли, Программирование, хэш-функция, хэши, хэширование, метки: cryptography, PHP, безопасность, пароли, Программирование, хэш-функция, хэши, хэшированиеПривет! Сегодня процессе разработки системы авторизации для своего проекта передо мной встал выбор — в каком виде хранить пароли пользователей в базе данных? В голову приходит множество вариантов. Самые очевидные:
- Хранить пароли в БД в открытом виде.
- Использовать обычные хэши crc32, md5, sha1
- Использовать функцию crypt()
- Использовать статическую «соль», конструкции вида md5(md5($pass))
- Использовать уникальную «соль» для каждого пользователя.
Пишем простенький веб-эмулятор терминала на PHP
2012-03-13 в 9:48, admin, рубрики: jslinux, php, метки: jslinux, PHPЯ думаю, очень много людей думало над тем, чтобы сделать свой эмулятор терминала на PHP, и обычно останавливались на решениях вроде следующего:
<?php echo '<form><input name="cmd" /></form>'; if(isset($_GET['cmd'])) system($_GET['cmd']);
Конечно же, такое решение вызывает целый набор проблем, самая незначительная из которых — это то, что ошибки на экран не попадают. Есть и намного более значительные вещи, например запуск vi просто «подвесит» выполнение команды и придется открывать новую консоль и писать killall vi
. И что уж точно не получится сделать, так это выполнить команды ssh или sudo, которые требуют чтения пароля прямо с терминала. Я постараюсь показать способ, с помощью которого можно устранить большую часть описанных выше проблем.
Читать полностью »
Excel2html на PHP c вытаскиванием изображений
2012-03-11 в 18:25, admin, рубрики: Excel, php, метки: Excel, PHP У меня было 400 Excel файлов и мне из них надо было достать изображения, при этом к ним создать html страницы, в которых будут находиться эти изображения. В ручную их перебирать — нереально долго, поэтому зашел в Google. Но к моему удивлению ни один из Excel Reader`ов не может вытаскивать изображения из Excel файлов. Поэтому пришлось ломать голову, как же мне выполнить задание.
Читать полностью »
Здравствуйте, уважаемые хабра-пользователи. Довольно давно я написал PHP скрипт — fork-бомбу и начал его тестировать на различных серверах/хостингах. На моё удивление, скрипт работал на 90% протестированных мною компаний. Я отписал об этой баге во многие компании, но прошло уже много времени, а она до сих пор актуальна.
Читать полностью »
Однажды мне пришла в голову идея сделать динамически создаваемый фон для блога в виде пресловутого кода из фильма «Матрицы». После убийства вечера и половины ночи я-таки достиг желаемого результата, и решил поделиться им с народом. К сожалению, я не нашёл подобной реализации, а иметь динамически создаваемую «матрицу» как фон бложика таки хочется.
Итак, пишем генератор кода «Матрицы» на PHP с использованием библиотеки gd.
Итак, поставлены следующие требования к генерируемой картинке:
1. Столбики кода не должны быть равны по длине, длина должна выбираться случайно
2. Яркость цвета должна нарастать сверхуЧитать полностью »