Удобный доступ к конфигу/массиву

Долго думал как назвать пост. Иногда очень достают километровые строки для доступа к массиву(как правило километры – именно в конфиге), например:

$this->config->config['siteconfig']['someavatar']['normal']['height']

А хочется что – то более лаконичное, вроде

$this->_siteConfig('someavatar', 'normal', 'height');

или может даже

$this->_siteConfig('someavatar/normal/height')

Read more

CodeIgniter: добавляем фильтр. Часть 1

Прочитав небольшой обзор фреймворка yii навеяло желание сделать одной очень нужной для CodeIgniter вещи – фильтра. Подробнее о том что это. В кратце – метод который вызывается сразу после конструктора контроллера перед выполнением метода, который был выбран фреймворком на основании правил роутинга.

Область применения – самая разная: различные проверки прав, xss фильтрация, установка каких-либо полей класса, загрузка и инициализация моделей/библиотек/хелперов и прочего.

Read more

flex: Array в качестве dataProvider в DataGrid’е

Изначально у меня все данные для отображения в таблицах хранились в обычных массивах Array, с биндингом, в общем виде как то так:

[Bindable]
protected var super_mega_array:Array = new Array();

В него push’ались элементы, и всё это дело какбе работало. В процессе работы приложения массив меняется, я надеясь на [Bindable] думал, что таблицы тоже должны какбе поменяться. А вот и нет.

Read more

flex: много DataGrid с одинаковыми столбцами

Есть такая ситуация: много DataGrid компонентов, но у них есть общее – один и тот же заголовок таблицы(проперти columns).

Задача – не дублировать колонки в каждой из таблиц, т.е. избежать вот такого
[cc lang=”xml”]








[/cc]

Read more

jQuery: отправка полей формы ajax-ом

Чтоб отправить поля формы(в примере с id=”f2s”), с помощью jQuery и аякса методом POST, в качестве второго аргумента не обязательно специально создавать объект в котором перечислять поля в виде ключ-значение.
Можно поступить так:
[cc lang=”html”]
debug me
[/cc]

Read more

Смена дефолтной jvm в debian

Чтоб изменить виртуальную машину ява(jvm) по умолчанию можно воспользоваться утилиткой update-alternatives

У меня вот так:

update-alternatives --config java
Есть 4 вариантов для альтернативы java (предоставляет /usr/bin/java).

  Выбор   Путь                                  Приор Состояние
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      автоматический режим
  1            /usr/bin/gij-4.3                           43        ручной режим
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      ручной режим
* 3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        ручной режим
  4            /usr/lib/jvm/java-gcj/jre/bin/java         1042      ручной режим

Read more

foreach: признак последней итерации

[cc lang=”php”]
// пусть есть массив $spots, c любмыми типами ключей
$last_key = end(array_keys($spots));
foreach($spots as $k => $spot) {
$isLast = ($k === $last_key);
….
// что то делаем
}
[/cc]
Нужно просто получить последний ключ массива а потом сравнивать очередной ключ при каждой итерации. Можно конечно использовать $last_key = count($spots) – 1; но в случае ассоциативного массива это бы не сработало.