Yii хотелки и меньше лапше-кода
Довольно часто, при работе с сессией в Yii, приходится писать код вот такого плана:
-
$nickName = Yii::app()->user->getState('nickName');
-
$accessLevel = Yii::app()->user->getState('accessLevel');
-
…………………………………………………
Аналогично и при установке этих значений.
Было бы здорово иметь возможность передавать методам getState и setState массив параметров:
-
$data = Yii::app()->user->getState(array(
-
'nickName',
-
'accessLevel'
-
));
или
-
Yii::app()->user->setState(array(
-
'nickName' => 'xoma',
-
'accessLevel' => 'superAdmin'
-
));
JavaScript экономим на if или очередная экономия на спичках
Чем меньше по объему внешний JavaScript-файл, тем лучше (он быстрее загружается браузером и возможно (!) быстрее выполняется).
Мало какие сценарии JavaScript обходятся без конструкции if…else.
Типично она выглядит вот так (использую jQuery):
if($(this).is(':checked')){ $('span.noAnonym').hide();}else{ $('span.noAnonym').hide();}
Как видно из примера в блоках if и else всего по одному выражению.
В этом случае, конструкцию if…else можно заменить тернарным оператором ? :.
Перепишем предыдущий пример:
$(this).is(':checked') ? $('span.noAnonym').hide() : $('span.noAnonym').show();
Экономим 10 символов !!!
Yii. Конфликт имени модуля и контроллера.
Есть Yii приложение, у которого в настройках прописан модуль ‘Page’:
'page' => array( 'class' => 'application.modules.page.PageModule', 'layout' => 'application.views.layouts.column2'),
Так же есть простой контроллер ‘PageController’, расположенный в каталоге приложения ‘controllers’.
При обращении по url типа: http://localhost/page/about — возникает ошибка, так как Yii пытается вызвать контроллер ‘about’ из модуля ‘Page’, а его нет.
При обращении по url http://localhost/Page/about (Page вместо page) — Yii вызывает контроллер Page и его экшн ‘about’ что мне и требовалось =).
Увеличиваем производительность труда =)
Всем, наверное, известно, что всякие твиттеры, жаберы, скайпы и прочие мессенджеры/социалки отнимают очень много рабочего времени. Для борьбы с этим, я в последнее время стараюсь не пользоваться всем выше перечисленным без острой необходимости. Твиттер, например, я читаю по пути домой (полтора часа в электричке способствуют этому =) ), хотя все же изредка пишу туда. Но сейчас речь не о том. Для разработки я использую Komodo Edit и он мне очень нравится, так вот, включив в нем полноэкранный режим (View->Full Screen) я заметил, что стал меньше отвлекаться на всякую ерунду, типа просмотра страниц/новостей и т.д. Все пространство занято рабочей областью редактора и ничего постороннего туда не пробивается, это помогает сосредоточиться на работе и не отвлекаться на всякий «шум».
Мораль: ИСПОЛЬЗУЙТЕ ПОЛНОЭКРАННЫЙ РЕЖИМ В ВАШИХ IDE!!!
qw — ‘Quoted Words’ или ‘Quoted by Whitespace’
-
my @data = qw /Mojolicious Catalyst Dancer/;
Perl интерпретирует данные в выражении qw как строки в апострофах, т.е. там нельзя использовать интерполяцию переменных и символы типа ‘\n’
qw удалет пропуски (пробелы, табуляции, символы новой строки), а все остальное преобразует в список.
Для включения в список символа ограничителя — необходимо экранировать его с помощью ‘\’
-
my @data = qw !Google Yahoo \! Rambler!;
