For developers /

Подавление ошибок php

Некоторое время назад мне сделали замечание, что использовать @ — «плохая привычка». На предложение доказать, что это именно так, я получил ссылку на Хабр, со статьей про управление ошибками.

Окей, наконец-то я узнал, как именно ими управлять, но чем же плоха привычка подавлять сообщения об ошибках, если ты знаешь, что делаешь?

На мой взгляд, плохого здесь нет и быть не может. Применение @ — это такое же управление ошибками, как и функция error_reporting() или директива в php.ini.

Однако, детальный разбор показал несколько иное.
06 july 2013, 18:43    Василий Наумкин
0    3743    6 0
Security /

Уязвимость в коннекторах MODX

Php-ниндзя Евгений Борисов откопал очередную уязвимость в MODX Revolution, что подтверждает народную мудрость: «не бывает здоровых людей, бывают плохо диагностированные».

Итак, за подробностями отправляю вас на сайт автора, а сам пока напишу мой способ борьбы с этой (и будущими) уязвимостями.
04 june 2013, 23:46    Василий Наумкин
0    1225    30 0
For developers /

Первичный ключ xPDOObject

Как известно, при создании собственных таблиц в MODX принято наследовать или xPDOSimpleObject, или xPDOObject.

Отличие между ними ровно одно — в SimpleObject уже прописан первичный ключ id, а в Object — нет. То есть, если вы хотите, чтобы у вашей таблицы создавалось поле id с становилось primary key — нужно наследовать SimpleObject.

Я, однако, люблю простые таблицы ключ-значение, в которые добавляю первичным ключом два и более полей сразу. Например, в репозитории пакет может быть в нескольких категориях, значит нужно создать таблицу extraCategoryMember из двух полей category_id и package_id.

Ключ id мне здесь совершенно не нужен, ведь он будет расти при каждой операции добавления пакета в категорию, а таких операций может быть очень много. Конечно, вряд ли INT(10) скоро закончится, но зачем хранить лишнее?
11 may 2013, 16:42    Василий Наумкин
4    1238    16 0
Hosting /

Даешь больше памяти от Linode!

Друзья, и снова замечательная новость, которую я обнаружил сегодня утром — вчера Linode поднял объем памяти в 2 раза.
Притом все это в короткое время после последнийх апдейтов и что самое замечательное — бесплатно!
10 april 2013, 11:08    Clean
0    410    16 0
For developers /

Установка компонентов через MODX API

Предлагаю всем желающим готовую функцию для установки компонентов через Api.

Можно делать из консоли, можно из сниппета — не важно. Собственно загрузка файла выделена в отдельную функцию, которая пытается работать через file_get_contents(), если это не запрещено. Иначе использует cUrl.

Параметров всего 2: имя компонента и id провайдера пакетов (по умолчанию — 1, то есть, modx.com).
21 march 2013, 11:57    Василий Наумкин
0    1087    4 0
Hosting /

Ядерный апгрейд Linode

Было 4, стало 8. Никакой платы, просто апгрейд всех серверов. Ранее уже было увеличение HDD на 20% и лимита трафика в 10 раз

18 march 2013, 21:51    Василий Наумкин
0    462    24 0
Security /

XSS уязвимость в Quip

Новость для всех пользователей компонента комментирования Quip. Если у вас включены теги, то ваш сайт уязвим перед XSS атаками через эти теги.

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

Вот баг-репорт, благодарим за него, как обычно, Евгения Борисова.
16 march 2013, 23:14    Василий Наумкин
0    698    6 0
For developers /

Динамические функции на замену фильтрам

Очередная модель от известного велосипедостроителя — меня.

Суть в следующем: заменить все фильтры в чанке на функции внутри сниппета, сделанного на pdoTools.
При этом, сами фильтры должны лежать как и раньше, сниппетами, а не быть жестко закодированы, чтобы их можно было удобно изменять и использовать также в в плагинах, или еще где.
14 march 2013, 22:36    Василий Наумкин
2    868    4 0
Hosting /

Редирект с index.html на контейнер

Сегодня, в процессе общения с wget выяснилось, что он добавляет index.html для контейнеров MODX.

То есть, адрес sitename.ru/section/, а этот товарищ качает sitename.ru/section/index.html, получая в ответ заслуженный 404 not found.
03 march 2013, 08:44    Василий Наумкин
0    1341    7 0
Hosting /

Установка параметров php через Nginx

Есть частая задача — изменить параметры php для одного определённого url.

Например, вы импортируете на какой-то странице xml с товарами, и вам нужно увеличить именно для неё memory_limit и max_execution_time.

Правки в /etc/php5-fpm/sites-available/sitename.conf не подходят — ибо это изменит работу всего сайта, а нам нужен один конкретный url. В этой ситуации, как и во многих других, нам поможет Nginx!
03 march 2013, 07:24    Василий Наумкин
4    2994    0 0