20 Апреля 2017 19:00

Фиктивный sendmail для Linux

PHP Linux

Fake Sendmail code

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

Читать дальше...

17 Марта 2017 23:38

PHP PostgreSQL на MacOS

PHP Mac OS PostgreSQL

PostreSQL

В общем и целом все не сложно, если знать как. Для того чтобы знать, попробую описать как на MacOS запустить PostreSQL и установить расширение php-pgsql.

Postgres.app

Это действительно самый простой способ запустить PostgreSQL на MacOS. Качаем с официального сайта интересующую нас версию, перемещаем в приложения и просто запускаем. И вот, у нас есть работающий PostgreSQL. Для себя я выбрал версию 9.3, как оптимальное соотношение распространенности и размера файла.

Для подключения в качестве имени пользователя используйте ваш логин в MacOS. Так же, с точки зрения разработчика замечу, что несомненным плюсом перед другими вариантами является то, что запустил приложение - сервер работает, закрыл - не работает и не жрет ресурсы впустую.

PHP pgsql

Читать дальше...

02 Сентября 2016 15:12

Oracle Client вместе с PHP-FPM

PHP Oracle Linux

PHP-FPM

Достаточно часто встречается связка Nginx + PHP-FPM, которая заменяет собой привычный многим Apache + mod_php. А когда требуется добавить возможность работать с Oracle из PHP, то не подготовленный человек, а точнее привычный к настройке Oracle Client для PHP, работающего как модуль Apache, может столкнуться с непредвиденными проблемами, о решении которых я попробую рассказать.

Итак, у нас CentOS (в принципе на других Linux все будет аналогично) на который уже установлен Nginx, PHP, PHP-FPM и Oarcle Client + модуль php_oci8. На всякий случай, в этом можно убедиться командой:

# php -m | grep oci

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

# php -m | grep oci
oci8

Но при попытке использовать oci_connect(...) получаем вот такую ошибку:

Warning: oci_connect(): OCIEnvNlsCreate() failed. There is something wrong with your system - please check that ORACLE_HOME and LD_LIBRARY_PATH are set and point to the right directories in /var/www/...

Когда все известные бубны с прописыванием ORACLE_HOME и LD_LIBRARY_PATH во все скрипты запуска и прочие перебраны, но все равно не работает, то простое решение кажется просто невозможным, но оно есть!

Читать дальше...

11 Августа 2016 16:36

Вопрос для любителей ПеХеПе

PHP

PHP Code

Вашему внимаю предлагается жвачка для ума для любителей true-кодинга на PHP.

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

Итак, задача казалось бы вполне тривиальная и очень типичная:

Получить в переменную $id значение параметра id из GET, при условии, что это цифра и больше 0, в остальных случаях - FALSE.

И это бы было тривиально, если бы не следующие ограничения:

Запись должна быть в одну строку $id = ...; (точку с запятой можно поставить только один раз в конце строки), а операторы 'if' и '?', а также фигурные скобки использовать нельзя. Обращаться к массивам $_* нельзя.

Тест-кейс который должен выполняться:

index.php?id=100500  => 100500
index.php?id=-10     => FALSE
index.php?id=0       => FALSE
index.php?id=        => FALSE
index.php?id=wtf     => FALSE
index.php?           => FALSE

Ну что ж, давайте рассуждать как это сделать.

Читать дальше...

26 Марта 2016 13:42

Установка расширений PHP в Mac OS X

В мемориз PHP Mac OS

Как известно, в Mac OS X уже есть и apache и PHP, но что делать если требуется добавить какое-либо расширение в PHP? Можно, конечно, воспользоваться brew и получить еще одну параллельную версию PHP, а потом мучиться с ее настройкой, ради одного расширения. Я же опишу более правильный путь - собрать расширение для уже имеющегося в системе PHP.

Читать дальше...

Фильтр