Потребовалось использование Service Locator в PHP фреймворке CodeIgniter 2.1.*
Нашел вот такое простое решение: http://www.sitepoint.com/managing-class-dependencies-2/
Решил еще упростить…
There are 27 posts filed in Programming ( this is page 2 of 3).
Потребовалось использование Service Locator в PHP фреймворке CodeIgniter 2.1.*
Нашел вот такое простое решение: http://www.sitepoint.com/managing-class-dependencies-2/
Решил еще упростить…
Вот тут http://phalcontip.com/discussion/45/get-list-of-all-phalcon-events нашел способ достать список всех событий из ядра фреймворка Phalcon.
В итоге имеем вот такой вот список:
Если вам потребовалось логгировать большое количество действий в вашем bash-скрипте — то вам поможет утилита tee.
Вы можете использовать ее непосредственно при выводе на экран
1 |
echo 123 | tee -a /tmp/file.log |
Или сразу сказать что вы логгируете весь вывод на экран. Для этого вам необходимо в начале скрипта написать
1 |
exec > >(tee -a /tmp/file.log) |
Ответ был найдет на сайте SuperUser.com: http://superuser.com/a/86955
Если у вас иногда перестает работать клавиатура в JetBrains PhpStorm, например, после переключения между окнами (Ctrl+Tab), — то данный баг можно пофиксить таким образом:
В файле
1 |
/path/to/PhpStorm/bin/idea.properties |
правим (или добавляем) строку
1 |
actionSystem.suspendFocusTransferIfApplicationInactive=false |
После этого перезагружаем нашу IDE.
Данное решение я нашел в нескольких местех. Например, вот тут http://blog.phpmaker.ru/163
Иногда необходимо подсчитать сколько раз слово встречается в тексте. Вот функция, которая может за вас посчитать частоту вхождения слова в текст:
1 2 3 4 5 6 7 8 9 10 |
<?php function str_word_freq($text='') { $freqData = array(); foreach( str_word_count( $text, 1 ) as $word ) { array_key_exists( $word, $freqData ) ? $freqData[ $word ]++ : $freqData[ $word ] = 0; } return $freqData; } |
Чтобы вернуть изменения определенных ревизий в текущую локальную копию проекта, можно загрузить эти изменения и «пропатчить» ими текущие файлы.
1 |
$ svn diff file.php -r1234:1233 > r_1234_1233.diff |
Тут мы получаем в файлик все изменения, которые были при коммите 1234-ой ревизии. (Можно ненужные нам изменения убрать из файла r_1234_1233.diff)
Теперь нам необходимо внести эти изменения в текущие файлы локальной копии проекта. Это можно сделать с помощью команды patch.
1 |
$ patch -p0 < r_1234_1233.diff |
В результате мы должны получить что-то вроде
1 2 3 4 |
patching file file.php Hunk #1 succeeded at 978 (offset 30 lines). Hunk #2 succeeded at 1006 (offset 30 lines). Hunk #3 succeeded at 1161 (offset 30 lines). |
Или, если есть конфликты, вы получите сообщение об ошибке и тогда придется внимательно вносить изменения вручную.
Если вам нужно подправить всего один файл из репозитория, то необязательно делать чекаут всего проекта. Можно «зачекаутить» всего один файл.
Сделать это можно так:
1 2 |
$ svn co http://url_to_my_repository.com/ path_to_fake_project/ --depth empty $ svn up path_to_file/my_file.php |
Получается первая команда не загружает файлы проекта, а просто создает необходимую папку для этого «фейкового» проекта, после чего мы апдейтим только необходимый файл.
В IE8 не работает событие onload для элемента типа script. Решить данную проблему можно таким способом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// IE8 hack: onload event for scripts function onloadjs(js,func) { if(document.all){ js.onreadystatechange = function() { if (js.readyState == 'loaded' || js.readyState == 'complete') { js.onreadystatechange = ""; func(); } } } else{ // most browsers js.onload = function() { func(); } } } |
где js — это элемент типа script, а func — функция.
Наверное многие сталкивались с ситуацией, когда надо было для отладки/проверки верстки включить или выключить JavaScript.
Конечно, можно лезть в настройки и включать там, но если надо постоянно переключать данную опцию — этот способ не подойдет.
Нам поможет небольшое дополнение к браузеру Firefox. Называется оно JS Switch. Добавить в свой браузер его можно по ссылке https://addons.mozilla.org/uk/firefox/addon/js-switch
После установки необходимо зайти в его настройку и поставить галочки «Show an option in Tool Menu» и/или «Show a button in Statusbar«. Теперь выключение JavaScript будет намного проще и быстрее.
Многие знаю и используют cheat sheet‘ы в повседневной работе. Они очень помогают найти какую-нибудь функцию, про которую вы немного забыли, или какой-либо метод, который вы редко используете. В SQL они дают возможность визуально понять, какое обьеденение таблиц необходимо использовать в данной ситуации.
Я уже писал по визуальное представление обьеденений с использованием JOIN. Во время написания статьи я нашел отличный cheat sheet, который наглядно показывает результат объединения таблиц различными способами.
Итак, вот он, этот cheat sheet.
С такой подсказкой работа с MySQL станет намного проще и быстрее.
Спонсор поста:
У вас все еще нету сайта? Вы теряете много потенциальных клиентов! Срочно обратитесь в ближайшую веб-студию и закажите себе такие услуги, как: создание сайта, раскрутка сайта в поисковых системах и контекстная реклама!