Sublime Text 3 Руководство по освоению PHP для разработчиков

Будучи разработчиками программного обеспечения, мы тратим большую часть времени на изучение кода до тех пор, пока ошибка не почувствует себя неудобно и не обнаружит себя, чтобы мы могли ее исправить; или мы пишем потрясающий код, за который нам через некоторое время будет стыдно. Независимо от дня и продуктивности, мы проводим большую часть времени в наших IDE или текстовых редакторах. Я решил провести его в Sublime Text.

В своей жизни я использовал разные IDE, от NetBeans до Eclipse, Visual Studio и других, и всегда полезно иметь что-то, указывающее на ваши ошибки, прежде чем даже попробовать решение, но для меня IDE слишком медлительный и несколько тормознутый.

Когда дело доходит до кодирования в текстовом редакторе, выбор широк, но его можно сузить до самых популярных: Vim, Notepad++, Atom и Sublime Text.

Некоторое время назад я дал Notepad++ шанс, но он не дошел до меня; с Vim мое самое большое достижение – это умение бросить курить! Атом я еще не пробовал, но мой коллега им очень доволен.

В этой статье я хочу показать вам, почему я выбрал Sublime Text и как я заставил его работать на меня.

TL;DR;

Начнем с быстрой настройки.

Установите Sublime Text
  1. Загрузите Sublime Text с их официальной страницы.
  2. Установить.
  3. Прибыль.

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

Это достаточно хорошее начало, и вы будете чувствовать себя комфортно, используя его как есть, но есть улучшения, которые необходимо внести.

Sublime Text 3 — исключительный выбор для PHP-разработчиков, даже несмотря на то, что он требует установки дополнительных библиотек и файлов. Как только вы закончите с этим, вы можете быстро научиться запускать php-файл в возвышенном тексте. Возможно, вам потребуется установить дополнительные плагины для корректной работы.

Его можно использовать для возвышенных проектов php, и было бы намного проще увидеть, как запускать php-код в возвышенном тексте 3.

Sublime Text использует пакеты для расширения своей функциональности. Когда пакеты выбраны и сконфигурированы с умом, это становится больше похоже на IDE без задержек, но также и без отлова ошибок перед компиляцией.

Контроль пакетов

Чтобы иметь возможность легко устанавливать пакеты, вам понадобится так называемый Контроль пакетов. Чтобы установить его, следуйте инструкциям здесь.

После установки вы сможете вызвать панель, нажав ctrl+shift+p в Linux и Windows и cmd+shift+p в OS X.

Мы будем использовать эту панель для установки всех из других пакетов, включая текстовый редактор php или даже пакет laravel snippets sublime text 3, для продвинутых проектов..

Следующий раздел посвящен ускорению написания кода с помощью таких плагинов, как Emmet.

Emmet

Чтобы установить Emmet, откройте панель, как указано выше, нажав ctrl+shift+p и введите Install Package . Первым элементом в списке является Package Control: Install Package . Нажмите на нее, подождите секунду или около того, и появится новая панель. Введите Emmet  и выберите первый.

Поздравляем! Но что ты только что установил?

Emmet — это набор ярлыков и фрагментов, который позволяет быстро писать код HTML и CSS.

Например:

В документе HTML введите ! и нажмите вкладку. Это сгенерирует весь шаблон HTML5. Или попробуйте ul>li*5>a.nav и нажмите Tab. Этот генерирует список из 5 элементов, каждый из которых содержит ссылку с классом nav .

Вы можете установить расширения emmet, если хотите, чтобы включить больше фрагментов или ярлыков. Для этого повторите процедуру для установки пакета, напишите Emmet в новом приглашении и посмотрите, что там доступно. Если есть что-то, что может вам подойти, продолжайте и устанавливайте это.

PHP Companion (только для разработчиков PHP)

Опять же, начните со знакомой комбинации ctrl+shift+p и Install Package, затем найдите PHP Companion . Большой. Теперь, когда он установлен, перейдите в Preferences -> Key Bindings . Это покажет вам два файла, один слева должен быть заполнен настройками по умолчанию, это Sublime Default Key Bindings . Справа вы увидите привязки клавиш пользователя .

Это пример того, как вы можете настроить свои пользовательские команды. Проверьте это для более подробной информации.

 [
    { "клавиши": ["f6"], "команда": "expand_fqcn" },
    { "keys": ["shift+f6"], "command": "expand_fqcn", "args": {"leading_separator": true} },
    { "клавиши": ["f5"], "команда": "find_use" },
    { "клавиши": ["f4"], "команда": "import_namespace" },
    { "клавиши": ["f3"], "команда": "осуществить" },
    { "клавиши": ["shift+f12"], "команда": "goto_definition_scope" },
    { "клавиши": ["f7"], "команда": "insert_php_constructor_property" }
]
 

Вставьте этот код в файл User Specific (файл справа). Сохраните изменения, затем перезапустите редактор Sublime Text.

Что делает PHP Companion, так это использует сочетания клавиш, такие как f5 и f6, чтобы найти пространство имен класса и автоматически встроить его (f5) или импортировать его вверху файла (f6).

Для ООП и разработки с использованием фреймворков, основанных на классах и пространствах имен, PHP Companion значительно повышает производительность.

Красота кода

«Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям .» — Мартин Фаулер, 2008.

Принимая вышеприведенную цитату за то, что она есть, правда во всех и во всем, нам нужно писать хороший, хорошо отформатированный, читаемый и понятный код. В конце концов, единственной реальной мерой качества кода является WTF в минуту.

Тем не менее, давайте перейдем к пакетам, которые сделают это проще.

DocBlockr

Этот плагин прост. После установки вы можете перейти к любому файлу, набрать

/** , а затем быстро нажать Tab.

Это должно создать блок комментариев, как показано ниже.

 /**
 * [описание вашего метода]
 * @param [тип] $parameter [описание]
 * @return [тип] [описание]
 */
 

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

Теперь вы знаете, как запустить php в возвышенном тексте. Вы также должны научиться правильно использовать возвышенный текст php.plugin.

Документация — это номер один для написания хорошего кода, и этот плагин значительно упрощает работу с ней.

Выравнивание

Предположим, у вас есть следующий код:

 $apple = «яблоко»;
$pear = «груша»;
$банан = «банан»;
 

Вы можете выделить их все сразу, нажать ctrl+alt+a и вы получите:

 $apple = "яблоко";
$ груша = "груша";
$банан = "банан";
 

Это особенно полезно, когда у вас есть огромные массивы, содержащие множество одиночных пар => значение , и вы хотите, чтобы их было легко читать/редактировать.

Исправление кода

Принимая во внимание, что Sublime text не является IDE, полезные советы, такие как синтаксические ошибки для пользовательских классов или переменных, недоступны. Тем не менее, у нас все еще могут быть помощники, которые сообщают нам об отсутствии точки с запятой или не закрытых скобках или подобных проблемах, прежде чем мы откроем браузер, чтобы проверить это самостоятельно.

Sublime Linter

Sublime Linter — это базовый пакет, который обеспечивает проверку синтаксических ошибок из коробки для Python, JS, CSS и Ruby.

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

Для языков, которые автоматически не доступны в Sublime Linter, все, что нам нужно сделать, это установить дополнительные пакеты, снова запросив панель. Сделай ctrl+shift+p , введите Install Package и, наконец, Sublime Linter , затем выберите нужный язык, например, PHP .


Надеюсь, эта статья оказалась вам полезной! У вас есть любимые пакеты, которые облегчают вам жизнь программиста? Поделитесь им в комментариях ниже.

Использование Sublime Text в качестве полнофункциональной PHP IDE

Интегрированная среда разработки, или сокращенно IDE, является одним из наиболее важных инструментов разработчика. Большинство из них имеют пламенные мнения о том, какой из них лучше. Из-за этого велись войны. Самая известная из них — вечная война, длящаяся десятилетиями, между пользователями vim и emacs.

В сообществе PHP PhpStorm очень популярен, и не без причины. Люди почти думают, что вы сумасшедший, когда вы используете что-то еще в качестве PHP-разработчика. Я не думаю, что это оправдано.

Я уже давно использую Sublime Text (сокращенно: ST). Это восходит к тому времени, когда я все еще разрабатывал Perl, и с тех пор я придерживался его. Мне очень нравится редактор, и благодаря множеству доступных плагинов он может сравниться по функциональности с PhpStorm. Кроме того, ST намного быстрее и менее требователен к ресурсам, и он полностью независим от языка. У создателей PhpStorm есть разные версии для других языков, например, PyCharm для Python или IntelliJ IDEA для Java. А если серьезно, кто захочет использовать разные IDE для каждого языка?

ST имеет очень минималистичный интерфейс, без наворотов. Мне это нравится: никакого обилия окон и панелей, а просто голый костяк редактора, с не более чем боковой панелью для папок и файлов, и консолью для уведомлений и диагностики, которая исчезает при нажатии на ESC . И если этот интерфейс все еще слишком переполнен для вас, есть режим без отвлечения внимания.

ST почти полностью можно использовать только с клавиатурой. Все команды быстро доступны с помощью аккуратных палитра команд , нажав ctrl-shift-p . Просто введите часть (или несколько случайных букв) имени команды, и вы быстро найдете то, что ищете,

То же самое касается палитры файлов, доступной через ctrl-p . Вы сможете быстро найти любой файл в вашем проекте. Другие редакторы скопировали эту функциональность, но (насколько мне известно) ST был первым.

То, без чего я больше не хотел бы жить: мультикурсор. Это также то, что было скопировано другими. Например, вы можете выбрать фрагмент текста, который встречается в вашем файле несколько раз, и нажать 9.0045 ctrl-d для выбора следующих вхождений с дополнительным курсором. Таким образом, вы можете выполнять редактирование в нескольких местах одновременно.

Мне нравится командная строка. Вот почему мне нравится, что есть инструмент командной строки, subl . С его помощью вы сможете быстро открыть файл или целую папку. Также возможно запустить любую команду редактора прямо из командной строки.

Стандартная установка ST довольно проста. Это дает вам только редактор. Тем не менее, это отличный редактор, который поддерживает подсветку синтаксиса и другие функции, такие как список символов и (ограниченные) функции автоматического предложения, что отличает его от других редакторов. Но ST действительно будет блистать плагинами.

Все плагины можно найти в Package Control. Их можно установить непосредственно из ST с помощью плагина с тем же именем, используя палитру команд.

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

LSP¶

Начнем с плагина, который превращает ST в полноценную IDE: LSP, сокращение от Language Server Protocol. Первоначально разработан Microsoft для VS Code. В настоящее время это открытый стандарт, поддерживаемый многими редакторами/IDE, такими как VS Code, но также и Atom, всеми продуктами Jetbrains, а также ST.

LSP обеспечивает интеллектуальный анализ кода, предоставляя контекстно-зависимые предложения по коду, расширенный анализ кода, «определение перехода», «поиск ссылок» и интеллектуальные инструменты рефакторинга, такие как переименование классов, функций и переменных в рамках всего проекта. Существуют реализации LSP почти для каждого языка. LSP — это действительно бомба и абсолютный must have для любого разработчика. Это делает вашу жизнь намного проще.

  • https://github.com/sublimelsp/LSP
  • https://lsp.sublimetext.io/
LSP-intelefense¶

Это реализация LSP для PHP. Есть и другие реализации, но это лучшая. Поверьте, я пробовал их все. Это та же реализация, что и в VS Code. У Intelephense есть полнофункциональная бесплатная версия, а также платная версия за единовременную плату всего в 15 долларов США. Это даст вам лицензионный ключ, открывающий некоторые очень полезные функции Premium . Определенно стоит своих денег.

  • https://intelefense.com/
  • https://github.com/sublimelsp/LSP-интелефенсе
LSP-json¶

Json может показаться форматом, не требующим чего-то вроде LSP. Но не забывайте, что json может быть основан на схеме, которая поддерживается LSP-json. Очень полезно, если вы редактируете что-то вроде JSON-файлов OpenAPI.

Но самое главное: все конфигурации ST полностью основаны на json, и LSP-json действительно может в этом помочь. Он предоставляет вам полезную обратную связь и умные предложения для всех настроек при редактировании файлов json. На мой взгляд, этот плагин должен быть частью ST по умолчанию, так как без него настройки сложно редактировать.

  • https://github.com/sublimelsp/LSP-json
Другие реализации LSP¶

Поддерживаются многие другие языки. Например: LSP-typescript, LSP-css или, если вы используете Tailwind: LSP-tailwindcss. Полный список см. в разделе Управление пакетами.

В некоторых реализациях LSP еще нет подключаемого модуля ST, например Perl::LanguageServer. Вы можете использовать их и в ST, но вам нужно будет настроить их вручную в настройках LSP.

Специальные плагины PHP¶

DocPHPManualer¶

Никогда больше не открывайте браузер, чтобы перейти на сайт документации PHP. Просто получите доступ ко всей документации прямо из ST!

  • https://github. com/garveen/docphp
Laravel Blade Highlighter¶

Подсветка синтаксиса для блейд-файлов Laravel.

  • https://github.com/Medalink/laravel-лезвие
Laravel Docs¶

Не более чем несколько удобных ярлыков для документации Laravel, но я часто ими пользуюсь.

  • https://github.com/austenc/sublime-laravel-docs
phpcs¶

Это оболочка для нескольких инструментов анализа кода: PHP codeniffer (phpcs), PHP linter по умолчанию (использующий

php -l ) и детектор путаницы PHP (phpmd). Кроме того, вы можете использовать этот плагин для форматирования файлов PHP с помощью php-cs-fixer или phpcbf. Это можно сделать вручную или автоматически при каждом сохранении файла.

  • https://benmatselby.dev/sublime-phpcs/
phpactor¶

Phpactor (произносится как: factor ) — мощный инструмент для анализа и рефакторинга кода для PHP. Существует реализация LSP и реализация RPC, которые можно использовать в ST. Мне меньше нравится реализация LSP, чем Intelephense, но реализация RPC — очень полезное дополнение к вашему набору инструментов. Phpactor предлагает такие функции, как:

  • автоматическое обнаружение и исправление пространства имен и имени класса

  • автоматический импорт классов

  • масштабное переименование классов проекта

  • генерация/завершение функции конструктора на основе свойств класса

  • генерация заглушек на основе контрактов/интерфейсов

  • https://github.com/tkotosz/sublime-phpactor-plugin

SublimeTextXdebug¶

Как следует из названия, это клиент для xdebug, среды отладки PHP.

  • https://github.com/martomo/SublimeTextXdebug

Другие плагины¶

BracketHighlighter¶

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

  • https://facelessuser.github.io/BracketHighlighter/
EditorConfig¶

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

.editorconfig , см. https://editorconfig.org/.

  • https://github.com/sindresorhus/editorconfig-возвышенный
SublimeLinter¶

Это linting framework, другими словами: проверка синтаксиса вашего кода. Менее мощный, чем LSP, но, тем не менее, полезный. Плагин — это просто фреймворк, вам нужно будет установить линтеры для всех языков, которые вы используете. Например, SublimeLinter-csslint. Полный список см. в разделе Управление пакетами.

  • http://www.sublimelinter.com/en/stable/
Base Encoder¶

Плагин для преобразования текста из/в base64, base32 и base16.

  • https://github.com/euphwes/базовый кодировщик
URLEncode¶

Подобно предыдущему плагину, этот плагин будет кодировать/декодировать URL для выбранного текста.

  • https://github.com/btoews/URLEncode

Rainbow CSV¶

Если вы работаете с CSV-файлами, но не хотите каждый раз запускать приложение для работы с электронными таблицами, то Rainbow CSV может вам подойти. Он заботится о разных цветах для каждого столбца и показывает всплывающее окно с именем столбца при наведении мыши. Доступны даже SQL-подобные функции запросов.

  • https://github.com/mechatroner/sublime_rainbow_csv
SyncSettings¶

Настройка установки ST так, как вам нравится, может занять некоторое время. Вы не хотите повторять этот процесс каждый раз, когда выполняете переустановку или установку на другом компьютере. SyncSettings позаботится об этом. Он сохранит все ваши настройки конфигурации в личном Github. При новой установке вам нужен только URL-адрес этой сущности, и все настройки будут синхронизированы автоматически.

  • https://www.mfuentesg.dev/SyncSettings/

Альтернативный подключаемый модуль — PackageSync. Это позволит вам загрузить свои настройки в виде zip-файла, который можно синхронизировать с помощью чего-то вроде Dropbox или Nextcloud.

lessTabs¶

В больших проектах может оказаться много открытых файлов. Этот плагин снизит его до управляемого числа. При нажатии ctrl-alt-c (настраивается) самые старые, немодифицированные вкладки будут закрыты. Вкладки с несохраненными изменениями останутся нетронутыми. Количество вкладок, которые остаются открытыми, можно настроить. Рядом с этим вы сможете закрыть все файлы из другой папки, чем текущая.

  • https://github.com/webArtisan/lessTabs
Terminus¶

Terminus позволяет открыть терминал на вкладке/панели ST или в консоли. Аккуратно, поэтому вам не нужно переключаться на другое терминальное приложение и оставаться в своей среде IDE.

  • https://packagecontrol.