Статьи

Многострочные строки и текстовые редакторы

В PHP удобно использовать два основных метода использования многострочных строк , где строковая константа разбивается на множество строк. Однако может быть сложно найти текстовый редактор с подсветкой синтаксиса, который будет правильно подсвечивать многострочные строки в PHP.

Когда я недавно переключал текстовые редакторы, поддержка многострочных строк, когда подсветка синтаксиса была в моем списке необходимых функций.

Я нахожу многострочные строки удобными для написания SQL, так как написание нетривиального SQL-запроса в одну строку не делает код очень читабельным

Вот два примера многострочных строк в PHP. Первая — это простая строка в кавычках, разделенная на несколько строк.

$sql = " SELECT product.productid, product.title FROM product WHERE product.type='boardgame' ";

В следующем примере используется синтаксис heredoc , который позволяет указать токен, которым заканчивается строка.

$sql = <<

Текстовый редактор, который я сейчас использую, — это Syn , который поддерживает многострочные строки в кавычках, но не синтаксис heredoc. Если бы у меня был выбор, я бы предпочел использовать строки в кавычках, а не heredoc.

Вот все редакторы, которых я оценил.

Syn может выделять многострочные строки, но я нашел пару ошибок в последней версии на их сайте, датированном февралем 2004 года. Кстати, если вы напишите разработчику, он будет рад предоставить вам более позднюю сборку, где исправлены ошибки Увы, исправления не сделали его официальной сборкой.

Я был очень впечатлен Notepad ++ за его скорость и отзывчивость, а также за дополнительные функции, такие как свертывание кода. Notepad ++ правильно выделяет многострочные строки, но я не смог найти способ отображения панели «папок», подобной той, что была в редакторах, таких как Syn, HTML-Kit, JEdit и Editplus. Если кто-нибудь знает способ, пожалуйста, дайте мне знать.

TextPad делает многострочные строки. Что отвлекло меня от этого редактора, так это то, что я не смог найти панель просмотра папок и не смог указать жирный или курсивный при настройке подсветки синтаксиса. Отсутствие жирной и курсивной поддержки не так важно для меня.

JEdit поддерживает многострочные строки в подсветке синтаксиса. Это очень впечатляющий редактор с большим количеством плагинов, но, к сожалению, я обнаружил, что он загружается очень медленно. Отзывчивость была одним из моих главных критериев и одной из причин, по которой я сейчас выбрал легкий Syn .

UltraEdit выглядит великолепно, но, к сожалению, не имеет подсветки синтаксиса для многострочных строк. Согласно их веб-сайту, это будет поддерживаться в версии 11.

Малиновый редактор хорош, но не поддерживает многострочные строки. Я не знаю, будет ли это добавлено в будущей версии.

HTML-Kit — это фантастический редактор, который до недавнего времени был моим любимым редактором. Хотя он поддерживает синтаксис heredoc, он не поддерживает обычные многострочные строки в кавычках. Согласно их FAQ, поддержка не будет добавлена ​​и недоступна в плагине из-за ограничений архитектуры. Тем не менее, я определенно рекомендую этот редактор, если вас не интересуют многострочные строки.

EditPlus не поддерживает многострочные строки или полужирный / курсив при настройке подсветки синтаксиса. В противном случае, это очень приятно и имеет вид папки, и множество приятных дополнительных функций.

Почему нужно поддерживать многострочные строки? Это просто мое личное предпочтение. Однако существуют альтернативные способы достижения того же эффекта. С одной стороны, существует синтаксис heredoc, который (к моему удивлению) поддерживается большим количеством редакторов, чем обычные многострочные строки, хотя все еще не большинство. Другими альтернативами являются обходные пути, такие как следующие:

$sql = "SELECT" . " product.productid," . " product.title" . "FROM" . " product" . "WHERE" . " product.type='boardgame'";

Однако добавление этих точек и цитат очень расстраивает, даже сейчас! В будущем этот SQL будет сложно поддерживать.

Как вы справляетесь с многострочными строками в вашем коде? Вы пишете SQL в одну строку, разбиваете его на несколько строк или используете многострочные строки?

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