После многих лет я решил использовать первую букву слов в пароле. Невозможно расколоться, универсальный для длины, и ограничения как "Вы должны иметь цифру", и трудно совершать ошибки.
Это работает путем создания фразы. сумасшедшая забавная яркая тема полезна! "Посторонние объекты Переполнения стека посажены, не применяя ракеты или колеса". Возьмите первую букву, Ваш пароль является "soalwurow"
, можно ввести это быстро и точно , так как Вы не помните побуквенный, Вы просто говорите предложение в голове.
я также как наличие слов чередуюсь от левой и правой стороны клавиатуры, это дает Вам незначительно более быструю скорость печати и более приятный ритм. Заметьте в моем примере, Ваши руки чередуют left-right-left-right.
Поздний ответ, извините.
Нет, вы ничего не упускаете. PHP CLI (PHP для командной строки) отличается от PHP в качестве модуля Apache / CGI.
Что вы могли бы сделать, это изменить setUp ()
ваших файлов, чтобы установить для $ _ SERVER ['DOCUMENT_ROOT']
то, что вам нужно (с $ _ SERVER
по-прежнему доступен как суперглобальный даже в контексте интерфейса командной строки), например :
public function setUp() {
$_SERVER['DOCUMENT_ROOT'] = dirname(__FILE__) . "/../application";
}
Будьте осторожны, вы, вероятно, захотите поместить это в свой tearDown ()
:
public function tearDown() {
unset($_SERVER['DOCUMENT_ROOT']);
}
PHPUnit создает резервную копию вашего глобального состояния , если вы вообще используете глобальные (также суперглобальные) данные, которые могут значительно замедлить ваши тесты, поэтому лучше избегать их после завершения теста.
Лучшим способом было бы отделить ваш код от использования $ _ SERVER
или любого другого глобального массива. Например, сделайте
class MyClass
{
protected $_docroot;
public function __construct($docroot)
{
$this->_docroot = $docroot;
}
public function getDocRoot()
{
return $this->_docroot;
}
}
вместо
class MyClass
{
public function getDocRoot()
{
return $_SERVER['DOCUMENT_ROOT'];
}
}
. Это позволяет вам сделать
// in your actual code
$instance = new MyClass($_SERVER['DOCUMENT_ROOT']);
$docroot = $instance->getDocRoot();
// in your test
$instance = new MyClass($variable_holding_the_correct_path);
$docroot = $instance->getDocRoot();
. Имейте в виду, что это всего лишь простой пример развязки. В вашем случае это может быть намного сложнее, но обычно оно того стоит, особенно если вы запускаете модульные тесты.