Если Вы используете SVN для управления исходным кодом, определенно получаете VisualSVN. Это включает взаимодействия TortoiseSVN из IDE Visual Studio.
я также повторяю комментарий Resharper. Розничная цена немного крута, но если Вы - студент или иначе с точки зрения образования связанный, это на самом деле довольно дешево.
Вы должны использовать HEREDOC или NOWDOC.
$var = "some text";
$text = <<<EOT
Place your text between the EOT. It's
the delimiter that ends the text
of your multiline string.
$var
EOT;
Разница между Heredoc и Nowdoc заключается в том, что код PHP, встроенный в heredoc, выполняется, а код PHP в Nowdoc будет распечатан как есть.
$var = "foo";
$text = <<<'EOT'
My $var
EOT;
В этом случае $ text будет иметь значение My $ var
.
Примечание: перед закрывающим EOT;
не должно быть пробелов или табуляции. иначе вы получите сообщение об ошибке
Я использую шаблоны для длинный текст:
email-template.txt содержит
hello {name}!
how are you?
В PHP я делаю так:
$email = file_get_contents('email-template.txt');
$email = str_replace('{name},', 'Simon', $email);
Я использую аналогичную систему, что и pix0r, и думаю, что это делает код вполне читаемым. Иногда я даже разделял разрывы строк в двойных кавычках и использовал одинарные кавычки для остальной части строки. Таким образом, они выделяются среди остального текста, а переменные также выделяются лучше, если вы используете конкатенацию, а не вставляете их в строку с двойными кавычками. Поэтому я мог бы сделать что-то вроде этого с вашим исходным примером:
$text = 'Hello ' . $vars->name . ','
. "\r\n\r\n"
. 'The second line starts two lines below.'
. "\r\n\r\n"
. 'I also don\'t want any spaces before the new line,'
. ' so it\'s butted up against the left side of the screen.';
return $text;
Что касается разрывов строк, в электронной почте вы всегда должны использовать \ r \ n. PHP_EOL предназначен для файлов, которые предназначены для использования в той же операционной системе, в которой работает php.
Добавление \ n
и / или \ r
в середине строки и наличие очень длинной строки кода, как во втором примере , кажется неправильным: когда вы читаете код, вы не видите результат, и вам нужно прокручивать.
В подобных ситуациях я всегда использую Heredoc (или Nowdoc, если используете PHP > = 5.3) : легко писать, легко читать, не нужны сверхдлинные строки, ...
Например:
$var = 'World';
$str = <<<MARKER
this is a very
long string that
doesn't require
horizontal scrolling,
and interpolates variables :
Hello, $var!
MARKER;
Только одно: конечный маркер (и ' ;
'после него) должно быть единственное в его строке: без пробела / табуляции до или после!
Конечно, вы могли бы использовать HEREDOC, но с точки зрения читаемости кода он ничем не лучше, чем первый пример, перенос строки на несколько строк.
Если вы действительно хотите, чтобы ваш multi -строчная строка, чтобы хорошо выглядеть и хорошо сочетаться с вашим кодом, я бы рекомендовал объединять строки вместе как таковые:
$text = "Hello, {$vars->name},\r\n\r\n"
. "The second line starts two lines below.\r\n"
. ".. Third line... etc";
Это может быть немного медленнее, чем HEREDOC или многострочная строка, но она будет хорошо сочетаться с отступами вашего кода и облегчить чтение.
Что касается вашего вопроса о переводе строки и возврате каретки:
Я бы рекомендуется использовать предопределенную глобальную константу PHP_EOL , поскольку она решит любые проблемы межплатформенной совместимости.
Этот вопрос был поднят на SO заранее, и вы можете узнать больше информации, прочитав " Когда делать Я использую константу PHP PHP_EOL "