![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
![]() |
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
Убираем дубликаты URL в Yii
2013-11-17 14:51:31 (читать в оригинале)Не первый раз спрашивают как убрать дубликаты URL в приложении на Yii при использовании красивых URL и showScriptName = false
. Yii при включении данной опции генерирует все URL как надо, но позволяет обращаться к страницам и так и так:
http://example.com/blog/tag/Yii
http://example.com/index.php/blog/tag/Yii
На самом деле никакой проблемы в этом нет потому как ни одной ссылки на второй тип URL не будет и он, соответственно, не проиндексируется. Но так как вопросы поступают и SEO-шники настаивают, вот ответ в виде gist.
Сохраняем в виде protected/components/DuplicateFilter.php
, прописываем в метод filters
контроллеров и забываем о проблеме.
Android: быстрый удобный эмулятор
2013-10-31 18:48:09 (читать в оригинале)Использовать встроенный эмулятор из Android SDK — та ещё радость из за его скорости. Дело усугубляется, если у вас процессор не Intel. Можно, конечно, прилично поковырявшись в BIOS и системе, добиться сходной с Intel производительности, но работать будет всё-равно неприятно.
По этой причине вместо эмуляторов я обзавёлся реальными устройствами и долго пользовался ими пока не стал браться за задачки с довольно сложными интерфейсами. Железяк стало не хватать. У коллег при тестах иногда вылезали глюки на устройствах с другими пропорциями экрана и плотностью пикселей.
Поискав получше, я нашёл нормальный эмулятор. Зовётся Genymotion и является обёрткой над VirtualBox и набором образов. Работает действительно быстро. Быстрее реального устройства.
Пробуем
Android: поймать back в EditText
2013-10-30 03:19:28 (читать в оригинале)Задачка — отловить нажатие хардварьной кнопки back и OK (или Done) на экранной клавиатуре при фокусе на EditText
. Вроде должно решаться просто...
В Activity ищем наш EditText, вешаем события:
TextView input = (TextView)findViewById(R.id.input); if (input != null) { input.setOnEditorActionListener(this); input.setOnKeyListener(this); }
Далее реализовываем обработчики:
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) { if (actionId == EditorInfo.IME_ACTION_DONE){ // делаем свои дела return true; } return false; } public boolean onKey(View view, int keyCode, KeyEvent keyEvent) { if (keyCode == KeyEvent.KEYCODE_BACK) { // делаем свои дела return true; } return false; }
Проверяем. onEditorAction
отработал отлично. А вот onKey
не сработал. Оказывается, по какой-то неведомой причине, событие именно для EditText надо протолкнуть вручную изрядно извратившись. То есть сначала делаем своего наследника EditText с фиксом:
public class EditTextEx extends EditText { public EditTextEx(Context context, AttributeSet attrs) { super(context, attrs); } public EditTextEx(Context context) { super(context); } public EditTextEx(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { dispatchKeyEvent(event); return false; } return super.onKeyPreIme(keyCode, event); } }
И после заменяем в наших layout-ах
<EditText android:id="@+id/input" />
на
<com.acme.EditTextEx android:id="@+id/input" />
Вообще разработка под Android начинает чем-то напоминать мне JavaScript под IE... куча псевдо-совместимых версий ОС и девайсов и, как результат, хак на хаке и хаком погоняет...
Yii2 будет на PHP 5.4
2013-10-20 00:52:11 (читать в оригинале)Ещё недавно я рассказывал про то, что Yii2 будет использовать PHP 5.3, и вот планы круто поменялись. После публичного обсуждения, а затем и внутрикомандного, было решено, что релиз состоится с минимальным требованием PHP 5.4.
Сначала мы составили список популярных хостингов. После этого стало понятно, что 72% хостингов, которые поддерживают минимальную на тот момент версию 5.3.7, поддерживают и 5.4. А те, что принципиально застряли на 5.2 или 5.3, чаще всего не имеют и 5.3.7. С операционками выходит примерно так же.
Далее пошли в ход плюсы.
Короткий синтаксис массивов и <?=
в шаблонах. Да, для фреймворка оно не нужно и это долгое время было аргументом против 5.4. Но мы изначально упустили из вида, что авторам расширений придётся использовать 5.4, что негативно скажется на сообществе.
В 5.3 более не исправляется, начиная с этого Июля. В Июле 2014 PHP 5.3 перестанет получать также и исправления по части безопасности, так что использовать его будет довольно рисково. К тому времени Yii2, как раз, должен начать набирать обороты и если сейчас переход на 5.4 кажется немного рисковым, то через пол года это точно будет верным шагом. Да и с точки зрения маркетинга шаг верный.
Ну и трейты, конечно. Хотя на их счёт ещё есть большие сомнения...
Yii2: перевод сообщений
2013-10-17 02:40:01 (читать в оригинале)Доделали полностью перевод сообщений. В Yii2 он намного лучше, чем в 1.1. Удалось выкинуть мегабайты данных CLDR и использовать вместо всего этого расширение intl. Синтаксис и возможности поразительные. Например, можно вот так:
echo \Yii::t('app', '{n,number} is spelled as {n, spellout}', array( 'n' => 42, ));
При переводе эта строка честно выдаст нам 42 проговаривается как сорок два
.
echo \Yii::t('app', '{name} is {gender} and {gender, select, female{she} male{he} other{it}} loves Yii!', array( 'name' => 'Snoopy', 'gender' => 'dog', ));
Выдаст без перевода Snoopy is dog and it loves Yii!
.
Множественные формы также никуда не делись:
echo \Yii::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array( 'n' => 0, ));
Строка перевода будет вот такая:
Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!
Не обошлось, правда, без исследования исходника расширения и исправления найденных багов средствами PHP, но результат радует.
- Черновик документации на тему
![BlogRider сегодня BlogRider сегодня](/themes/1/i/menu/th/blogrider_today.png)
![Самый-самый блог Самый-самый блог](/themes/1/i/menu/tt/tough.png)
![Изменения рейтинга Изменения рейтинга](/themes/1/i/menu/th/rating_changes.png)
![]() | ||
+382 |
399 |
Follow_through |
+328 |
331 |
שימותו הקנאים |
+320 |
334 |
Tomas50 |
+317 |
357 |
krodico |
+307 |
359 |
Ланин Сергей |
![]() | ||
-4 |
42 |
Similis_Deo |
-5 |
2 |
Dark Music in Your Heart | Dark Music in Your Heart |
-6 |
9 |
BrightBand |
-15 |
135 |
Музпросвет в мыслях |
-16 |
167 |
Trance Music - Транс музыка |
![Главные темы Главные темы](/themes/1/i/menu/th/main_themes.png)
Загрузка...
![Загрузка... Загрузка...](/themes/1/i/loader/loader.gif)
взяты из открытых общедоступных источников и являются собственностью их авторов.