вторник, 31 января 2012 г.

Git: подключаем новый удаленный репозиторий

Сегодня будем учиться подключать удаленный репозиторий к уже существующему. Для чего это нужно? Есть много вариантов. Например, мне это понадобилось для выполнения git cherry-pick из бранча одного репо в бранч другого. Итак, предположим, что вы сделали git clone и у вас есть 'origin' remote репозиторий. Если все так, то команда git remote покажет на экран следующую информацию:
$ git remote
origin

Сошлось? Прекрасно. Далее добавляем новый репозиторий с именем new_repo:
$ git remote add new_repo http://git.site.com/project/new_repo

Проверяем, что он добавился:
$ git remote
origin
new_repo

Получаем изменения из новой ветки:
$ git fetch new_repo

Удаленный репозиторий подключен. Список бранчей можно просмотреть с помощью команды:
$ git branch -r

Читать далее

понедельник, 30 января 2012 г.

PhpStorm: работа с разными CVS (SVN + Git) в одном проекте

На прошлой неделе возникла необходимость работы с SVN и Git на одном проекте. По-умолчанию, PhpStorm работает только с одной CVS. Например, если вы сделали git clone, а потом внутри проекта создали папку tests и сделали туда svn checkout, то IDE будет видеть только Git. То есть, выполнить какие-либо действия (up, commit, etc.) в папке с тестами будет невозможно. Но это можно легко исправить.

1. Открываем настройки:

2. Заходим в Project Settings -> Version Control. Если у вас проект на Git, то картинка будет примерно следующей:

3. Нажимаем Add и добавляем папочку tests:

После этого в списке меню Project Settings -> Version Control появится наша новая запись:

4. Сохраняем настройки. Теперь можно выполнять SVN-команды над папкой tests прямо из IDE.
Читать далее

суббота, 28 января 2012 г.

PhpStorm: изменяем количество выделяемой оперативной памяти в Mac OS X

После установки PhpStorm установил верхнюю планку выделяемой оперативной памяти в 795 Mb. Как я уже писал для меня каждый мегабайт на вес золота. Если у вас есть желания исправить такую наглость программы, я помогу.

Для начала нужно открыть файл "/Applications/PhpStorm *.*.app/Contents/Info.plist". Сделать это можно через Finder или Терминал.

В конце файла будет подобный тест:

  

      ....

      VMOptions.i386
      -Xms128m -Xmx512m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=64m

      VMOptions.x86_64
      -Xms128m -Xmx800m -XX:MaxPermSize=250m -XX:ReservedCodeCacheSize=64m -XX:+UseCompressedOops

      ...

    
  

В зависимости от вашей платформы нужно изменить "-Xmx512m" или "-Xmx800m". Изменяем, число, сохраняем, перезапускаем программу. Все ;)
Читать далее

пятница, 27 января 2012 г.

PhpStorm: включаем обрамление выделенного текста в кавычки или скобки

Моя основная IDE на работе и дома это PhpStorm. Причем, в обоих местах она лицензионная ;)

Эта система очень большая, почти каждый день я узнаю что-то новое о ней. Потому решил писать об этом в блоге.

Начнем с обрамления выделенного текста в кавычки или скобки. Сначала это нужно включить.

1. Открываем настройки:

2. Заходим в IDE Settings -> Editor -> Smart Keys и ставим галочку напротив Surround selection on typing quote or brace:

3. Сохраняем настройки и радуемся жизни. Теперь вы можете выделить текст и нажать символ кавычки/скобки, после чего текст будет обрамлен введенным символом.
Читать далее

четверг, 26 января 2012 г.

Как установить PHPUnit для MAMP

На работе я привык работать в CentOS/FreeBSD VM, на которой установлен Apache, nginx, PHP, MySQL и прочие необходимые инструменты для веб-разработки. Это удобно тем, что эта система максимально приближена к реальной обстановке проекта,чем минимизируются основные проблемы, связанные с настройкой различных сервисов.
Ну и VM всегда можно забекапить ;) По-этому, всегда можно безопасно экспериментировать.

Дома у меня MacBook с 2.5 Гб ОЗУ. С виртуалкой все очень тормозит. По-этому до того момента, пока я не разживусь еще одной планкой ОЗУ, приходится юзать MAMP. Вчера появилась задача настройки и запуска PHPUnit для MAMP. Приступим.

Для установки PHPUnit с помощью MAMP PEAR нам потребуется терминал с правами root-пользователя.

Сначала обноляем PEAR с помощью двух команд:
/Applications/MAMP/bin/php5/bin/pear channel-update pear.php.net
/Applications/MAMP/bin/php5/bin/pear upgrade pear

Теперь пришло время зарегистрировать соответствующий канал и установить PHPUnit:
/Applications/MAMP/bin/php5/bin/pear channel-discover pear.phpunit.de
/Applications/MAMP/bin/php5/bin/pear install phpunit/PHPUnit

PHPUnit теперь установлен, но чтобы запускаеть его с помощью терминала, нам нужно перенести его в $PATH:
mv /Applications/MAMP/bin/php5/bin/phpunit /usr/local/bin/phpunit

Для теста наберите:
phpunit --version

Вы увидите что-то вроде:
PHPUnit 3.6.9 by Sebastian Bergmann

Это все. Если есть вопросы, задавайте их в комментариях.
Читать далее

четверг, 19 января 2012 г.

Проверка наличия класса

Если вам нужно проверить наличие определенного класса, вы можете использовать функцию class_exists(). Ее важная особенность состоит в том, что class_exists() даже при отсутствии проверяемого класса автоматически вызывает автолоадер. Чтобы запретить такое поведение, необходимо передавать false в качестве второго параметра фунции class_exists().

Следующий код демонстрирует такое поведение:
    require_once('Zend/Loader.php');
 
    Zend_Loader::registerAutoload();
 
    if (!class_exists('MyTestClass')) {
       // class doesn't exist, but now the auto-loader will try and load it
    }
 
    if (!class_exists('MyOtherTestClass', false)) {
        // class doesn't exist, and the auto-loader will not be used
    }

Читать далее