Что в этой статье
Вкратце расскажу что такое рефакторинг, зачем он нужен, как и когда его нужно делать. Будет интересна людям, которые хотят разобраться в теме.
Вкратце расскажу что такое рефакторинг, зачем он нужен, как и когда его нужно делать. Будет интересна людям, которые хотят разобраться в теме.
В этой статье я расскажу про свой опыт “железного” и софтверного апгрейда MacBook Pro 13″ Unibody Mid 2012 и установкой “с нуля” новой ОС от Apple — Yosemite. Как оказалось, заменить память и “хард” можно самому — это очень просто. Для этого понадобится две отвертки Phillips #00 и T6 Torx, необходимые комплектующие и хорошее настроение.
В последнее время задался вопросом: “А можно ли смотреть на iphone видео с домашнего компьютера?”. Оказывается, это возможно и даже бесплатно. В этой статье я расскажу как это сделать.
Что такое screen?
screen – это консольный оконный менеджер с поддержкой вкладок (или окон). Он имеет замечательную возможность продолжать работу с того места, где остановились в прошлый раз. В этой статье я расскажу как быстро приступить к работе.
Если нужно постоянно “ходить” по ssh и до сих пор не используется пара ключей для авторизации, то эта статья для вас.
Во-первых, использование ключей является удобной практикой, а во-вторых, это еще и безопасный способ подключения. В этой статье я расскажу как создать приватный и публичный ключи. Будем использовать инструменты PuTTY, PuTTYgen и Pageant.
В этой статье я расскажу как можно настроить сортировку каналов на ТВ-тюнере KAON K-E2270CO. Статья длинная с множеством картинок. Надеюсь она поможет сохранить время и нервы некоторым из вас.
В NetBeans очень не нравится тот факт, что для русской винды он показывает русский интерфейс, в котором едут буквы. Это некрасиво как минимум. Статья продолжает быть актуальной для версий NetBeans 7.4 и 8.0.
Задача.
В NetBeans отображается русский интерфейс. Нужно переключить на английский.
Решение.
Открываем конфигурационный файл netbeans.conf для редактирования, который находится по адресу Х:\Program Files\NetBeans 8.0\etc для Windows или по адресу ./netbeans-8.0/etc/netbeans.conf для Linux.
Находим опцию netbeans_default_options и дописываем в конец до символа закрывающих кавычек:
-J-Duser.language=en -J-Duser.region=US
Спасибо источнику:
http://tigor.com.ua/blog/2011/08/10/set-netbeans-user-interface-language/
Английский вариант:
https://blogs.oracle.com/tao/entry/set_netbeans_user_interface_language
Сегодня я даже задумался, как можно с помощью MySQL превратить выборку айдишников из столбца в строку, разделенными запятыми.
В этом мне помогла функция GROUP_CONCAT:
1 2 3 4 5 6 |
SELECT 1, GROUP_CONCAT(id SEPARATOR ', ')
FROM (
SELECT 1, id
FROM my_table_name
) AS t
GROUP BY 1 |
1
2
3
Результат
1, 2, 3
UPD:
Более простой вариант
1 2 3 4 |
SELECT
GROUP_CONCAT (id SEPARATOR ', ')
FROM
mytable |
Дополнительная информация:
Нагайченко Максим пишет в своем блоге про GROUP_CONCAT()
С введением позднего статического связывания в PHP 5.3 появилась возможность красиво протестировать статические методы тестируемого класса.
Допустим у нас есть класс Foo, с двумя методами doSomething() и prefix(). Последний статический и вызывается внутри doSomething().
1 2 3 4 5 6 7 8 9 10 11 12 |
class Foo {
public function doSomething($var)
{
$prefix = static::prefix();
return $prefix . $var;
}
public static function prefix()
{
return 'foo';
}
} |
Хочу обратить внимание на строчку #4. Здесь используется static:: вместо self::
Задача:
Подменить выполнение статического метода prefix() внутри doSomething().
Решение:
Создаем мок на тестируемый класс. Для него генерируется уникальное имя, которое мы извлекаем с помощью getMockClass(). Используем staticExpects() для подмены результата вызова статического метода.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class FooTest extends PHPUnit_Framework_TestCase {
public function testDoSomething()
{
$foo = $this->getMock('Foo', array('prefix'));
$class = $this->getMockClass('Foo', array('prefix'));
$class::staticExpects($this->any())
->method('prefix')
->will($this->returnValue('bar'));
$this->assertEquals('bar9', $foo->doSomething('9'));
}
} |
По сути staticExpects() является аналогом expects() только для статических классов. Единственное (и одно из самых главных) ограничений заключается в том, что мокнуть статический метод можно только внутри тестируемого класса. Это еще один минус в пользу использования статических методов.
Еще одно похожее решение:
Можно еще воспользоваться строителем мока
1 2 3 4 5 6 7 8 9 10 11 12 |
public function testDoSomething3()
{
$foo = $this->getMockBuilder('Foo')
->setMethods(array('prefix'))
->getMock();
$foo::staticExpects($this->any())
->method('prefix')
->will($this->returnValue('bar'));
$this->assertEquals('bar9', $foo->doSomething('9'));
} |
Источник: http://sebastian-bergmann.de/archives/883-Stubbing-and-Mocking-Static-Methods.html
Сегодня можно считать официальной датой старта моего блога на новом адресе. Удалось объеденить посты из блога и ЖЖ за все время существования оных.
Для чего это нужно? Хочу сделать единственную точку входа без головной боли в поддержке разных блогов, ЖЖ и подобных.
Нужно будет провести еще много работы в области марафета сообщений и, возможно, шаблона.
Благодарен платформе Вордпрес за удобный инструмент для блоггинга.