Мне нравятся простые библиотеки, не перегруженные функционалом на все случаи жизни, но которые четко и быстро решают часто встречающиеся задачи. К таким библиотекам я отнес бы минификатор Bender - класс, выполняющий простую и полезную функцию комбинирования CSS и джаваскриптов в единые файлы (один для всех CSS и один для всех javascript) с последующей их минимизацией на лету. В результате сайт грузится быстрее засчет снижения числа HTTP-запросов, уменьшая нагрузку на сервер и трафик. Bender написан на чистом PHP и не требует каких-либо сторонних библиотек на Java или Python.

Вывести строку запроса к базе данных, созданную через db_select(), можно командой print $query; где $query - объектная переменная запроса. Однако вместо аргументов будут выведены именованные параметры (placeholders) типа :db_condition_placeholder_1, :db_condition_placeholder_2 и т.д. Чтобы заменить их реальными аргументами, можно использовать функцию:

function _get_query_string(SelectQueryInterface $query) {
  $string = (string) $query;
  $arguments = $query->arguments();

  if (!empty($arguments) && is_array($arguments)) {
    foreach ($arguments as $placeholder => &$value) {
      if (is_string($value)) {
        $value = "'$value'";
      }
    }

    $string = strtr($string, $arguments);
  }

  return $string;
}

Она выводит запрос строкой в человекопонятном виде.

Предположим, что у нас есть в БД какие-то шаблоны, например, писем или сообщений пользователю, в которых динамически нужно менять определенные куски, допустим, вставлять текущую дату или вычислять, какое число будет через 10 дней. Т.е. в шаблоне есть места, куда необходимо прописать различные php-функции, которые бы при выводе шаблона выдавали необходимые значения. Эта возможность могла бы иметь вид: "Привет! Сегодня у нас {myphp date("d.m.Y")} , а через 10 дней это будет {myphp date("d.m.Y", strtotime("+10 day",time()))}".

В PHP функция замены подстрок str_replace() может в качестве параметров принимать массивы, что позволяет за один раз ее использования произвести несколько замен. Для того, чтобы в Javascript сделать нечто похожее, придется расширить функционал объекта String: 

Задача: уникализировать многомерный массив, удалив одинаковые значения (дубли), на PHP.

Решение - достаточно всего одной строчки:

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

где $input - наш сложный массив данных, например:

Array
(
    [0] => Array
	(
	    [0] => abc
	    [1] => def
	)
    [1] => Array
	(
	    [0] => ghi
	    [1] => jkl
	)
    [2] => Array
	(
	    [0] => mno
	    [1] => pql
	)
    [3] => Array
	(
	    [0] => abc
	    [1] => def
	)
    [4] => Array
	(
	    [0] => ghi
	    [1] => jkl
	)
    [5] => Array
	(
	    [0] => mno
	    [1] => pql
	)
)
Наверх