Ну я лично пишу подобные функции, только оформляю их в качестве статических и запихиваю их в соответствующую модель, т.е. тот же код можно было оформить так
<?php
class User extends CActiveRecord
{
// ...
public static function getDate($id)
{
$user = self::model()->findByPk($id, array('select' => 'date'));
return $user === null ? null : $user->date;
}
// ...
}
и в будущем использовать данную функцию так User::getDate($id)
да, она будет продолжаться от текущего мастера. и в истории мастера будет два слива этой ветки. как по мне — так это правильно.
а по поводу указанной последовательности выше — я между 4 и 5 делаю
4. забрал с сервера все новое (git pull)
# переставил историю ветки поверх нового состояния мастера
git checkout blabla
git rebase master
git checkout master
5. смерджил изменения (git merge blabla)