Подписка на RSS

Хочу порекомендовать отличный сайт об оптимизации производительности баз данных use-the-index-luke.com. По большей  части  описана оптимизация при помощи индексов. Все описанное на сайте применимо к  DB2, MySQL, Oracle, PostgreSQL. На сайте sql-performance-explained.com можно взять версию для электронных книг. И обязательно пройдите небольшой тест на знание баз данных.

Эта фича хорошо описана в мануле по Postgres, но, тем не менее, я не знал о такой возможности. При работе в консоле вы можете указывать различные опции форматирования вывода при помощи команды \pset. У этой команды есть короткие алиасы, например \x включает режим расширенного форматирования таблицы, так очень удобно просматривать вывод с большим количеством колонок. \H позволяет отформатировать результат запроса в виде HTML-таблицы. Это особенно полезны при использовании совместно с командой \o, так можно легко сохранить таблицу в HTML. А вообще посмотрите полный список опций доступных для работы с \pset.

В PostgreSQL есть команда COPY,  которая позволяет копировать данные в файл и загружать из файла.

Чтобы копировать результаты запроса в файл
COPY (SELECT * FORM tablename) '/tmp/table.txt';
Экспорт таблицы в CVS
COPY (SELECT * FORM tablename) '/tmp/table.txt' WITH CVS;
или так
COPY (SELECT * FORM tablename) '/tmp/table.txt' WITH DELIMITER ',';
Так же можно ввести в консоли \o file.txt и результаты  последующих запросов будут направлены в файл.

Перевод поста On Error Handling and Closures 

Оператор подавления ошибок («@») часто бывает неизбежным злом. Многие функции возвращают не только значение, которое говорит, что произошла ошибка, но так же вызывают E_NOTICE или E_WARNING, хотя вы предпочли бы вызвать исключение самостоятельно.
И иногда получается такой код:

if (false === ($fh = @fopen($filename, 'r'))) {
    throw new RuntimeException(sprintf(
        'Could not open file "%s" to read', $filename
    ));
}

Вроде бы все довольно просто, но такой подход ошибочен, по многим причинам.

Функция is_file может вести себя очень неожиданно . Когда вы пользуетесь этой функцией, то у директории, в которой находится проверяемый файл, должен быть флаг executable, +x.  Вас может ввести в замешательство то, что другие функции, например readdir(), будут работать корректно, и вы сможете вывести  список файлов. Но is_file() будет возвращать false. Так же ведет себя функция file_exists().

Перевод поста INSERT ON DUPLICATE KEY UPDATE and summary counters.

INSERT … ON DUPLICATE KEY UPDATE — это мощный механизм, но, к сожалению, часто забываемый разработчиками. Он появился в MySQL 4.1, но все равно я часто сталкиваюсь с людьми, не знакомыми с этой фичей. Мне очень нравится эта фича, потому что она сделана в стиле MySQL — очень эффективно, и в то же время, просто в использовании.

На сайте Ильи Альшанетского(одного из разработчиков PHP) есть несколько очень полезных, особенно для новичков, слайдов. Например о новинках в PHP 5.4, о введении в PostgreSQL, о «скрытых» фичах PHP, об оптиизациях и других полезных вещах.

Перевод статьи What problem does dependency injection solve?
Zend Framework 2 поставляется с контейнером внедрения зависимостей (dependency injection container, далее DIC), как Symfony 2, и другие фреймворки, поддерживающие PHP 5.3 или выше. Эта статья исследует проблемы, которые решает DIC.

Перевод статьи A primer on PHP namespaces

 Из мануала по  PHP:

namespaces are a way of encapsulating items

Пространства имен — способ инкапсуляции элементов

Вряд ли это определение покажется очень полезным, но это отправная точка! 

Вышел Webstorm/PhpStorm 4.0 EAP. Так как это не стабильная, то не все обещанные изменения вогли в этот релиз, но появилось достаточно много новинок

  • Множество улучшений интрефейса
  • Поддержка traits и других фич PHP 5.4
  • Встроенные инструменты для показа покрытия php-кода тестами
  • Новый анализатор PHP и JS-кода
  • Поддрежка редактором EcmaScript 6
  • Добавлены различные фичи для работы с SASS и LESS
  • Генерация проектов на основе HTML5 бойлерплет и Twitter-бутстрап.

Разработчики планируют выпустить в своем блоге несколько статей по использованию новых фич.

ts_twitter_widgetbb_videos_cat