Sublime text php: Настройка Sublime Text для PHP разработки

Содержание

Проверка синтаксиса PHP в Sublime Text Editor PHP бесконечность

Действие, о котором вы говорите, называется «linting», и существует множество плагинов для Sublime, которые содержат файлы PHP. Как упоминалось Len_D, PHP Syntax Checker является одним, но я бы рекомендовал SublimeLinter для Sublime Text 2 . (Существует другая версия SublimeLinter для ST3, но она не поддерживает обратную совместимость и имеет совершенно другую архитектуру, чем версия ST2, которая больше не поддерживается официально).

Чтобы установить, сначала установите Package Control, если вы еще этого не сделали, затем перезапустите Sublime. Откройте командную палитру с помощью Ctrl Shift P и введите pci для вызова P ackage C ontrol: I nstall Package . Нажмите Enter , затем введите sublimelinter , затем нажмите Enter еще раз для установки. По завершении установки перезапустите ST2 еще раз для удачи. Чтобы настроить, сначала откройте

Sublime Text 2 -> Preferences -> Package Settings -> SublimeLinter -> Settings-Default и скопируйте все его содержимое. Затем откройте « Settings-User из того же подменю и вставьте в него содержимое. Теперь вы можете закрыть Settings-Default . Для правильной подсветки синтаксиса (чтобы указать, где находятся комментарии) выберите JavaScript -> JSON из списка опций в правом нижнем углу окна Sublime.

Прокрутите вниз до строки 36 в "sublimelinter_executable_map" sublimelinter_executable_map» и добавьте пустую строку между скобками открытия и закрытия. Найдите полный путь к исполняемому файлу php в вашей системе, открыв терминал и набрав which php . Скопируйте путь и добавьте запись для

"php" на пустую строку, которую вы только что создали. Например, если путь /opt/local/bin/php , полный раздел должен выглядеть следующим образом:

 "sublimelinter_executable_map": { "php": "/opt/local/bin/php" }, 

Прокрутите список остальных параметров "sublimelinter_*" и измените их в соответствии с вашими предпочтениями. Параметры после строки 108, скорее всего, не имеют отношения к вам, поскольку они касаются линтов для JavaScript, CSS, Python и т. Д. Однако не стесняйтесь читать их, если вы хотите использовать SublimeLinter для других языков. Как только вы закончите, сохраните файл, и все должно быть установлено. SublimeLinter отобразит свои сообщения в соответствии с настройками "sublimelinter" (строка 13) и "sublimelinter_delay" (строка 67) (увеличьте значение, чтобы увеличить задержку между остановкой ввода и появлением сообщений linter). Если вам не нужна эта «живая» линка, установите

"sublimelinter" для load-save , save-only или false , в зависимости от ваших предпочтений. Я лично считаю, что живая линта будет довольно раздражающей …

И это все. Полная документация доступна в README . Имейте в виду, что если / когда вы обновляетесь до Sublime Text 3 (кстати, я настоятельно рекомендую), вам нужно будет установить и настроить SublimeLinter3 , что является полной переписыванием плагина в более модульную архитектуру , Таким образом, базовый пакет SublimeLinter должен быть дополнен языковым SublimeLinter-php подобным SublimeLinter-php . Пожалуйста, убедитесь, что вы прочитали полную документацию (да, есть много, но это того стоит), чтобы все работало бесперебойно.

Удачи!

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



Я только что начал использовать HTML/Sublime/PHP.

Я создаю сайт HTML с использованием Sublime Text.

Чтобы сжать части веб-страниц, которые появляются на нескольких страницах (например, меню, верхний и Нижний колонтитулы), я хочу запустить скрипт PHP. Требует ли это, чтобы веб-сайт размещался на сервере? Или я могу запустить скрипт PHP непосредственно на Sublime Text.

Спасибо!

php html server web sublimetext3
Поделиться Источник kkj     18 февраля 2017 в 18:12

2 ответа


  • Как запустить Sublime Text 2 через vagrant

    Я настроил 32-битную версию Ubuntu через Vagrant. Мой план состоял в том, чтобы теперь установить Sublime Text 2 на эту коробку. Я скачал 32-битную версию Linux Sublime Text 2 и поместил ее в корневой каталог. Через синхронизированные папки я затем переместил его в /opt., пытаясь запустить sublime…

  • Как запустить код в Sublime text 2 python

    Я недавно установил sublime text 2, чтобы попробовать его, прежде чем я решу получить sublime text 3, но я не могу правильно запустить какой-либо код из него. Я нажал Ctrl + B и получил такой вывод. [Error 2] The system cannot find the file specified [cmd: [u’python’, u’-u’,…



3

Любая веб-страница, содержащая скрипт php, должна быть сохранена с расширением ‘.php’. Этот тип файла извлекается веб-сервером в представление браузера. Локально вам необходимо установить веб-сервер (например, apache) на вашем устройстве, чтобы вы могли извлекать содержимое сценария локально. Итак, основные вещи, которые следует отметить, это ::

  1. Все страницы, содержащие (HTML escape или php script), должны быть сохранены с расширением .php
  2. .php файлы извлекаются веб-сервером (либо на локальном устройстве, либо через Интернет), поэтому вам необходимо установить службу веб-сервера, если вы хотите работать на локальном
  3. Лучший способ сделать это-установить соответствующий пакет решений для веб-сервера ::
    • XAMPP для кросс-платформенных
    • MAMPP для пользователей Mac
    • WAMPP для Windows
    • LAMPP для Linux

После успешной установки и настройки вышеупомянутого пакета вы должны запустить файлы php в браузере через localhost (который будет служить локальным веб-сервером).

Попробуйте установить пакет решений для веб-сервера, подходящий для вашего устройства. Вы многому научитесь в этом процессе.

P.S. Что касается возвышенного, то это всего лишь редактор. Он просто используется для написания кодов простым и легким способом.

Поделиться VayuDev     18 февраля 2017 в 18:32



0

Ну, вам нужно установить программное обеспечение веб-сервера локально на свой компьютер.

Например :

  • WAMP (Windows Apache MySQL PHP)
  • XAMP (Linux Apache MySQL PHP)
  • MAMP (Mac Apache MySQL PHP)

и вам нужно сохранить файлы в рабочем каталоге сервера.

Затем эти файлы могут быть исполняемыми в веб-браузере.

Что касается Sublime, то это просто программное обеспечение IDE (интегрированная среда разработки), которое распознает код PHP и других языков и облегчает работу разработчика.

Поделиться Naveed Ramzan     18 февраля 2017 в 18:17


Похожие вопросы:


Как запустить python на Sublime Text 2?

Возможный Дубликат : Python 3.1 и Sublime Text 2 ошибка Sublime Text 2 консольный ввод Я только что получил Sublime Text на своем Mac и пытаюсь запустить простой код с Python, но не знаю, как это…


Sublime Text-запуск проектов на apache tomcat без обновления проекта eclipse

Только вчера вечером я установил sublime text 3 и нашел его потрясающим. Но я столкнулся с одной проблемой. До sublime я использовал редактор eclipse для редактирования кода. Я создал динамический…


Как запустить код Python из Sublime Text 2?

Я хочу настроить полный Python IDE в Sublime Text 2. Я хочу знать, как запустить код Python из редактора. Делается ли это с помощью системы сборки? Как мне это сделать ?


Как запустить Sublime Text 2 через vagrant

Я настроил 32-битную версию Ubuntu через Vagrant. Мой план состоял в том, чтобы теперь установить Sublime Text 2 на эту коробку. Я скачал 32-битную версию Linux Sublime Text 2 и поместил ее в…


Как запустить код в Sublime text 2 python

Я недавно установил sublime text 2, чтобы попробовать его, прежде чем я решу получить sublime text 3, но я не могу правильно запустить какой-либо код из него. Я нажал Ctrl + B и получил такой вывод….


Как запустить код PHP в Sublime Text 2

Я очень новичок в Sublime text 2. Я только начал этим пользоваться и ничего об этом не знаю. Я хочу работать над PHP. Я построил систему ‘php’. После выбора системы сборки ‘php’ я создаю новый файл…


PHP модульное тестирование без зависимости от реального подключения к серверу

У меня есть класс, который имеет соединение с работающим сервером (не работает на этом сервере). Я тестирую этот класс и его методы с помощью модульного теста ZF2 PHP. Тест прошел успешно, но когда…


Python 3.4 на Sublime Text 3

Я выполнил эти шаги, чтобы запустить Python 3 на Sublime Text 3. Выберите меню Сервис > сборка > новая система сборки, и я ввел следующее: { cmd: [python3, $file] , selector: source.python ,…


Как запустить код python в Sublime Text 3?

Поэтому я пытаюсь запустить код python из Sublime Text 3, но не знаю, как это сделать. Даже если бы это было только с консоли, это было бы прекрасно. Кто — нибудь знает, как???


[Как запустить код с помощью cmd из sublime text 3 ]

Я новичок в Python, и у меня есть проблема. Когда я кодирую Python с помощью Sublime Text 3 и запускаю его непосредственно на нем, он не находит какую-то библиотеку Python, которую я уже…

PhpStorm vs SublimeText :: Блог веб разработчика

На днях решил перейти с SublimeText2 на что-то более IDE-шное и продвинутое. Уж очень стало не хватать нормального автокомплита и банальных возможностей рефакторинга вроде переименования переменных. Выбор пал на PhpStorm.

Почему именно PhpStorm?

Aptana я уже пробовал. Не понравилась, т.к. довольно глючная (возможно сейчас ситуация изменилась, я пробовал давно). А следующим на слуху был именно шторм.

На самом деле у jetBrains все среды разработки построены на базе одной единственной IDEA. Можно поставить ее и расширить нужными плагинами. Но. Стоит она в два раза больше, а использовать в одной IDE разные языки (например, PHP и Java) я уж точно не буду, это извращение. Поэтому проще поставить уже заточенную под веб PhpStorm. На самом деле есть еще одна веб-IDE: WebStorm. Но она работает исключительно с HTML/CSS/JS. А PhpStorm по сути ее полный клон плюс плагины для PHP.

В чем прелесть перед SublimeText?

Конечно, саблайм — редактор, а PhpStorm — IDE, тут не поспоришь. Поэтому отличия довольно стандартные для IDE, но в данном случае я точно могу сказать, что работает PhpStorm быстро, не стопоря систему.

  • Автокомплит всего и вся. Даже учитывая, что PHP полностью динамичен подсказки по PHPDoc работают быстро и безошибочно.
  • Отличная интеграция с Symfony2.
  • Адекватный анализатор кода. Подскажет где у вас есть неиспользуемые переменные, лишние use классов и пр. Работает довольно шустро.
  • Удобная работа с Git. Визуальные commit, push, pull, diff. И все это мышкой для ленивых.
  • Встроенная консоль, в том числе SSH.
  • Отжирает на 100-200Мб больше SublimeText, что по сути очень мало для IDE.
  • Шустрый интерфейс, даже учитывая, что я только что «слез» с саблайма, а PhpStorm написан на Java.
  • Единственная полноценная IDE в которой мне удобно делать небольшие правки на чужих проектах по FTP. При этом выкачивать весь проект не обязательно.
  • Синхронизация всех настроек между компьютерами: IntelliJ Configuration Server Plugin
  • Множество полезных фич, которых просто не может быть в SublimeText

Недостатки?

  • Время запуска увеличилось с пары секунд до, примерно, секунд двадцати.
  • Нет возможности в пределах одного проекта примаппить несколько FTP серверов в разные папки. (На самом деле есть, но жутко извращенная и неудобная).
  • Нет мультикурсора. (Уже есть в PhpStorm 8 EAP)
  • Нет поддержки 100500 форматов из коробки. Да, в шторме вы сможете нормально редактировать только веб-проекты. Хотя мне это не особо мешает.
  • Нет бесконечного триала. PhpStorm стоит 99$ на одного человека. При этом персональную лицензию можно использовать на работе.
  • Не удобное переключение между проектами. Решается с помощью плагина.

PhpStorm. Как нормально работать с FTP

После SublimeText и плагина SFTP наверняка захочется чего-то подобного. И PhpStorm единственная IDE в которой мне удобно работать с FTP. Не верьте статьям, где расписано в 100500 шагов «Как настроить FTP в PhpStorm», это все бред, на самом деле это очень просто.

Для начала создаем новый пустой проект. Вот прям совсем пустой.

Заходим в настройки проекта: File -> Settings (Ctrl + Alt + S). И выбираем раздел Deployment, нажимаем зеленый плюсик для добавления FTP соединения. Вводим параметры соединения (хост, логин, пароль и т.п.). В Root path нужно прописать корень проекта, так будет удобнее. Так же правее плюса добавления жмем Use as default. Примерно так:

На вкладке Mappings в поле Deployment path on server ‘temp’ ставим просто один слеш (/).

На этом настройка FTP закончена. Нажимаем OK и диалог с настройками закрывается.

Наводим мышкой в левый нижний угол IDE и в появившемся меню выбираем Remote Host. Вот и наш удаленный ФТП.

Теперь все так же как в SublimeText, смотрим файлы, жмем правой кнопкой и скачиваем нужное. Конечно при таком подходе автодополнение, как и 90% функций IDE, работать не будет, но для одноразовой мелкой правки этого хватит.

Выгрузка при сохранении и проверка удаленного файла как в SublimeText

В PhpStorm, да и во всей IDEA, нет понятия сохранения файла. Все сохраняется налету при каждом нажатии и, само собой, никуда не выгружается при каждом нажатии.

Чтобы сделать выгрузку файла на FTP по нажатию Ctrl+S нужно зайти в настройки проекта (Ctrl + Alt + S), в раздел Deployment -> Options. И установить следующие настройки:

  • Upload changed file automatically to the default server: On explicit save action (Ctrl + S).
  • Warn when uploading over newer file: Compare timestamp & size.
  • И поставить галочку Notify about remote changes.

Теперь файлы будут выгружаться на FTP по нажатию Ctrl + S, а так же будет показано предупреждение, если ваша локальная копия не совпадает с удаленной, а вы пытаетесь ее редактировать.

Отдельно стоит рассмотреть удаление файлов. Если вы удалили файл из проекта, то на FTP он останется. Для того чтобы на FTP файл так же удалился нужно открыть любой другой файл и просто нажать Ctrl + S. Звучит странно, но при этом отлично работает, нужно только привыкнуть.

Выгрузка закоммиченных в Git файлов

Довольно полезная фича. При коммите в Git можно автоматически выгрузить все изменения на FTP. Выгружаются новые файлы, перемещения файлов и удаления файлов.

Однако только при коммите. Ни до, ни после, ни потом такой возможности не будет. К сожалению даже при checkout я не нашел способа сделать выгрузку. Хотя для этого есть git-ftp.

php — Запустить PHP-код на Sublime Text без подключения к серверу?

Я только начал использовать HTML / Sublime / PHP.

Я создаю веб-сайт HTML с использованием Sublime Text.

Чтобы сжать части веб-страниц, которые появляются на нескольких страницах (например, меню, верхний и нижний колонтитулы), я хочу запустить скрипт PHP. Требует ли это, чтобы веб-сайт размещался на сервере? Или я могу запустить скрипт PHP прямо на Sublime Text.

Спасибо!

0

kkj 18 Фев 2017 в 21:12

2 ответа

Лучший ответ

Любая веб-страница, содержащая скрипт php, должна быть сохранена с расширением «.php». Этот тип файла выбирается веб-сервером для просмотра в браузере. Локально, вам нужно установить веб-сервер (например, apache) на вашем устройстве, чтобы вы могли получить содержимое сценария локально. Итак, основные вещи, которые следует отметить:

  1. Все страницы, содержащие (HTML escape или php script) должны быть сохранены с расширением .php
  2. Файлы .php выбираются веб-сервером (на локальном устройстве или через Интернет), поэтому вам нужно установить службу веб-сервера, если вы хотите работать на локальном
  3. Лучший способ сделать это — установить соответствующий пакет решений веб-сервера:
    • XAMPP для кроссплатформенности
    • MAMPP для пользователей Mac
    • WAMPP для Windows
    • LAMPP для Linux

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

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

Постскриптум Что касается возвышенного, это просто редактор. Он просто используется для написания кодов простым и легким способом.

3

VayuDev 18 Фев 2017 в 18:32

Что ж, вам нужно установить программное обеспечение веб-сервера локально на ваш компьютер.

Например :

  • WAMP (Windows Apache MySQL PHP)
  • XAMPP (Linux Apache MySQL PHP)
  • MAMP (Mac Apache MySQL PHP)

И вам нужно сохранить файлы в рабочем каталоге сервера.

Затем эти файлы могут быть выполнены в веб-браузере.

Что касается Sublime, это просто программное обеспечение IDE (интегрированная среда разработки), которое распознает код на PHP и других языках и облегчает работу разработчика.

0

Naveed Ramzan 18 Фев 2017 в 18:17

Sublime Text (3) для разработчиков PHP

Многие люди в сообществе PHP в последнее время проверяют PHPStorm, в том числе я и большинство разработчиков, с которыми я работаю. Нам нравится интеллектуальный код, который мы получаем от PHPStorm, но по-прежнему скучаем по скорости, быстрой загрузке и удобству Sublime Text.

Прежде чем я слепо предположу, что PHPStorm — единственный путь, я хотел увидеть: могу ли я вернуть то, что IDE, ориентированная на PHP, предоставляет разработчикам PHP, обратно в Sublime Text и получить лучшее из обоих миров?

Давайте начнем с краткого списка отличий PHPStorm от меня.Обратите внимание: есть миллион других уникальных функций, которые предлагает PHPStorm, но, честно говоря, именно крошечные небольшие удобства, которые я видел, обеспечивают наибольшее повышение эффективности.

Также обратите внимание: мы говорим о Sublime Text 3.

Все, что нужно от PHPStorm

Без большинства этих замечательных функций, ориентированных на PHP, будет трудно рекомендовать использовать что-то другое, кроме PHPStorm, даже если он медленнее, дороже и использует больше памяти. Так. Можем ли мы воспроизвести их в Sublime Text?

  • Авто — использовать (импорт) классов
  • Класс FQCN для заканчивания на линии
  • Простой переход к определению символа
  • Легкий конструктор для инъекций
  • Выделить неиспользованный импорт
  • Желоба Git
  • Анализ кода / проверка PSR-2
  • Завершение кода: PHP
  • Завершение кода: код проекта

Пакетный контроль

Прежде чем мы поговорим о чем-либо еще, вам нужно хотя бы знать, как устанавливать пакеты в Sublime Text.

Если вы еще этого не сделали, установите Package Control сейчас.

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

Превосходный PHP-компаньон

Пакет Sublime Text, наиболее сильно ориентированный на PHP, называется Sublime PHP Companion.

Как и большинство пакетов, он содержит ряд действий, которые вы можете выполнить. ~~ По умолчанию они привязаны к определенным клавишам, но вы всегда можете их переназначить. ~~ Обновление: по умолчанию больше нет сопоставления клавиш.Узнайте больше о том, как настроить сопоставление клавиш PHPCompanion здесь.

  • find_use ( F10 ) — Когда ваш курсор находится над именем класса, эта команда упрощает использование (импорт) этого класса.
  • expand_fqcn ( F9 ) — То же, что и find_use , но вместо расширения класса в блоке импорта он расширяет его встроенный FQCN.
  • import_namespace ( F8 ) — добавляет пространство имен для текущего файла на основе пути к файлу.
  • goto_definition_scope ( shift + F12 ) — То же, что и собственный goto_definition Sublime Text (описанный ниже), но с ограничением области действия с учетом PHP.

Пакет не идеален, и он явно не такой яркий, как PHPStorm, когда дело доходит до обнаружения пространств имен и анализа некоторых странных крайних случаев. Но для повседневной работы это огромный толчок в области знания кода PHP.

AllAutocomplete

Sublime PHP Companion, к сожалению, не обнюхивает ваши классы и не дает вам автозаполнение, но SublimeAllAutocomplete регистрирует имена всех символов (функций, классов и т.) в любых файлах, которые вы открыли на других вкладках, и добавьте их в реестр автозаполнения.

Это не совсем то же самое, что полное автодополнение, зависящее от пользовательского кода, но это очень помогает.

Cmd-щелчок для определения функции

Sublime PHP Companion позволяет легко щелкнуть правой кнопкой мыши по функциям и перейти к их определениям, но этот ярлык возвращает CMD-click-to-определение PHPStorm. К вашему сведению, в Sublime Text CMD (или клавиша ctrl в Windows или что-то еще в других системах) называется «Super».

Сначала создайте пользовательский файл карты мыши. Если у вас его нет, перейдите сюда:

Linux Создайте Default (Linux) .sublime-mousemap в ~ / .config / sublime-text-3 / Packages / User

Mac Создайте Default (OSX) .sublime-mousemap в ~ / Library / Application Support / Sublime Text 3 / Packages / User

Окна Создайте Default (Windows) .sublime-mousemap в % appdata% \ Sublime Text 3 \ Packages \ User

Затем поместите это в файл:

  [
    {
        "button": "button1",
        «count»: 1,
        "модификаторы": ["ctrl"],
        "press_command": "drag_select",
        "команда": "goto_definition"
    }
]
  

Вы только что научили Sublime Text следующему: «когда я удерживаю ctrl и нажимаю первую кнопку, запускаю команду goto_definition .»Готово!» (Первоисточник)

Примечание. Изначально я хотел предложить использовать модификатор super , чтобы он был похож на PHPStorm; однако это переопределило бы поведение Sublime Text «удерживать super и щелкнуть, чтобы получить несколько курсоров», поэтому я этого не сделал.

Анализ кода и PHP_CodeSniffer

Возвышенный PHPCS

Существует пакет под названием Sublime PHPCS, который включает PHP_CodeSniffer, линтер PHP, детектор сообщений PHP и Scheck (?) Для работы с вашим кодом.

Вы можете настраивать всевозможные настройки, но в первую очередь вы собираетесь запускать его каждый раз при сохранении файла (хорошо, но может раздражать) или каждый раз, когда запускаете его из палитры команд (нажмите super-shift -p , а затем вводите, пока не получите «PHP Code Sniffer: Sniff this file») или сочетание клавиш (по умолчанию ctrl-super-shift-s ).

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

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

Плагин PHP_CodeSniffer Sublime Text 2/3

Интересно, что есть относительно незамеченный плагин, делающий то же самое (но только для PHPCS), написанный той же группой, которая написала PHP CodeSniffer, так что, возможно, стоит попробовать; он называется PHP_CodeSniffer Sublime Text 2/3 Plugin (творческий, я знаю.)

Я никогда не использовал этот, так что будьте осторожны.

Майк Фрэнсис Скрипт сборки PHP CS Fixer

Майк Фрэнсис также поделился написанным им пользовательским скриптом сборки, который запускает PHP-CS-Fixer в вашем коде всякий раз, когда вы его запускаете.Это означает, что он фактически будет применять PSR-2 (или любой другой стандарт PHP-CS-Fixer, который вы ему передаете) в вашем коде за вас.

Тейлор Отвелл на самом деле поделился со мной этим же сценарием, но он не написал его так хорошо, как Майк. 🙂 Он, однако, упомянул, что вы, возможно, захотите установить это предпочтение: "show_panel_on_build": false, Это не позволит ему каждый раз выскакивать из командной панели с вашими результатами, что может очень быстро вызвать раздражение.

SublimeLinter

SublimeLinter PHP (и его необходимая зависимость, SublimeLinter) полагаются на встроенный линтер PHP (как и плагин Sublime PHPCS выше).Это более простая версия, что только запускает линтер, и ничего больше.

DocBlockr

Если вы относитесь к типу пользователей PHPStorm, вероятность того, что вы пишете блоки Doc, выше. (Просто говорю’).

DocBlockr упрощает создание новых блоков документов, но, что более важно, если вы создаете блок документов непосредственно над определенной функцией, он извлечет информацию о параметрах этой функции и предварительно заполнит ее в блоке документов. Бум.

Помощники Git

возвышенный текст Git

Вы из тех, кто ненавидит переходить с IDE на терминал / клиент Git? Sublime Text Git предоставляет доступ ко многим командам Git прямо из палитры команд Sublime Text.

GitGutter

GitGutter показывает вам различную информацию о статусе каждой строки — была ли она изменена, вставлена ​​или удалена?

Это не так мощно, как желоба Git от PHPStorm, но это шаг в правильном направлении.

Подсветка синтаксиса

PHPUnit, сборка

Есть отличный плагин, который упрощает запуск PHPUnit из палитры команд или с помощью сочетания клавиш: SimplePHPUnit

Как следует из названия, вы устанавливаете пакет, и все готово.

КодIntel

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

Почему я все время говорю «должен» и «должен»? Потому что мне еще предстоит встретить разработчика PHP, который мог бы заставить CodeIntel работать стабильно и предсказуемо. У тебя? Ударь меня.

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

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

  • ApplySyntax расширяет способность Sublime Text определять, какой синтаксис применить к вашему текущему файлу
  • DashDoc позволяет пользователям Mac с помощью приложения Dash искать любое слово в Dash
  • Отображение имени функции добавляет в строку состояния информацию о текущем файле, классе и имени функции / метода
  • phpfmt выглядит как альтернатива PHP CS Fixer
  • CodeComplice — это код Intel, но новее — может, это решение ?!
  • Клиент Xdebug
  • EditorConfig — это стандарт для совместного использования определенных шаблонов конфигурации редактора для каждого проекта.Этот плагин позволяет вам импортировать и использовать их в Sublime Text. (подробнее о формате EditorConfig)
  • SublimePrettyJSON отлично подходит для быстрого форматирования JSON
  • CaseConversion упрощает преобразование между snake_case и camelCase и PascalCase, а также разделяет и объединяет слова и все остальное.

CodeBug для Xdebug

Вы скучаете по интеграции Xdebug в PHPStorm? Ознакомьтесь с Codebug, автономным клиентом xdebug.

Несколько общих советов по возвышенному тексту

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

Поиск файлов с помощью «Goto Anything» (cmd-p)

Если вы нажмете super-P , вы получите невероятно мощную палитру Goto Anything , которая позволяет вам легко находить файлы, но вы можете пойти немного дальше: если вы найдете свой файл (например, набрав Handler. php ), вы также можете инициировать его открытие по определенной строке ( Handler.php: 35 ) или по определенному символу ( Handler.php@report ).

Поиск команд с помощью палитры команд (cmd-shift-p)

В то время как палитра Goto Anything позволяет вам искать файлы в вашем проекте, палитра команд позволяет вам искать команды.

Это означает, что любую команду, которую Sublime Text позволяет выполнять (запускать сборки, переименовывать файлы и т. Д.), А также команды из сторонних пакетов (обнюхивать этот файл и т. Д.), Можно запускать исключительно с клавиатуры, даже если вы не знаете (или не имеете) сочетание клавиш.

Поиск символов с помощью «Перейти к символам» (cmd-r)

Если вы нажмете super-R , вы получите палитру Goto Symbol , которая будет перемещаться к любому символу в вашем текущем файле.

Символы — это такие вещи, как классы, методы или функции.

Несколько курсоров

Многие редакторы добавили несколько курсоров, но Sublime Text по-прежнему делает это лучше всего.

Если вы никогда не пробовали, узнайте об этом где-нибудь, но вот краткое введение:

Откройте файл. Удерживая «super» (cmd на Mac), щелкните несколько мест вокруг файла. Теперь начните печатать. БУМ.

Еще один отличный трюк: поместите курсор на обычное слово (например, имя переменной).Теперь несколько раз нажмите Super-D . Теперь у вас выбрано несколько экземпляров этой переменной, и вы можете управлять ими сразу.

Или выберите пять строк и нажмите Super-shift-l . Проверь это.

Есть еще лот, вы можете сделать с этим еще, если проявите творческий подход.

Нечеткое совпадение

Знаете ли вы, что когда вы используете любую из командных палитр в Sublime Text, вам не нужно заканчивать ни одного слова?

В большинстве редакторов (например, PHPStorm), если вы хотите найти файл с именем resources / views / sessions / edit.blade.php , вы можете ввести resources / views / sessions / edit.blade.php или sessions / edit.blade.php , но в Sublime Text все, что вам понадобится, это что-то вроде resvieconedblp . Просто введите достаточно, чтобы порядок букв, который вы вводите, мог существовать только в строке, которую вы ищете, и все будет хорошо. Пропустить здесь букву, пропустить косую черту — нет проблем.

Разное

Есть еще много информации о том, как работает Sublime Text, а также множество инструментов и курсов, доступных вам.Это не исчерпывающий ресурс обо всем, что замечательно в Sublime; эти руководства уже написаны.

Если вы хотите узнать больше о Sublime Text, я бы рассмотрел два отличных ресурса.

  • Sublime Text Power User — это книга и серия видеороликов моего друга Уэса Боса, которые научат вас всему, что вам нужно, чтобы использовать Sublime Text как босс. Это самый простой способ для тех, кто плохо знаком с Sublime Text, быстро начать работу. Кроме того, я обратился к Уэсу, и он дал мне купон на GEEK , чтобы получить скидку 10 долларов США (отказ от ответственности: это тоже помогает мне.)
  • ShortcutFoo — отличный ресурс для изучения сочетаний клавиш для любой среды. У них есть программы для всего: от Vim до Sublime Text, от Photoshop до Excel.

Вердикт

Давайте взглянем на наш список и посмотрим, что мы сделали:

  • ~~ Встроенное завершение класса FQCN ~~ (Sublime PHP Companion)
  • ~~ Простой переход к определению символа ~~ (Sublime PHP Companion)
  • ~~ Перейдите к определению символа ~~ (Sublime PHP Companion)
  • Простая инъекция конструктора (макрос?)
  • ~~ Выделите неиспользуемый импорт ~~ (SublimeLinter)
  • ~~ Желоба Git ~~ (GitGutter)
  • ~~ Анализ кода / проверка PSR-2 ~~ (SublimePHPCS и т. Д.)
  • Завершение кода: PHP
  • Завершение кода: код проекта

На самом деле неплохо. Поговорим о том, чего не хватает:

  • Внедрение конструкции (например, упрощение внедрения свойства в конструктор как свойства, установка его в конструкторе и определение свойства класса) — это то, что, как мне кажется, можно решить с помощью умного макроса, но я этого не видел умного макроса пока нет.
  • CodeIntel предлагает автозавершение кода PHP , так что это просто вопрос, чтобы это заработало.Но я не думаю (поправьте меня, если я ошибаюсь) что-либо в мире Sublime Text утверждает, что нюхает определения вашего кода , а затем предоставляет автозаполнение и предложение параметров. Так что это точно большой недостаток. Однако обратите внимание: AllAutocomplete определенно немного облегчает эту боль.

Каков мой вердикт? Как всегда, это зависит от обстоятельств. Я думаю, что это будет зависеть от проекта, от разработчика, от того, смогу ли я найти решение некоторых из вышеперечисленных проблем.Но я определенно полагаюсь на Sublime Text намного больше, чем шесть месяцев назад — это чертовски быстро.

Постскриптум

Есть ли какие-нибудь советы по Sublime Text для PHP-разработчиков, которые я пропустил? Дайте мне знать в Твиттере.

Есть ли какие-либо функции PHPStorm, которые я здесь не рассмотрел, которые, по вашему мнению, являются жизненно важными для каждого инструментария разработчика? Сообщи мне и об этом.

Также: я не мог бы написать это без Адама Уотана, Тейлора Отвелла, Джеффри Уэй и многих, многих других друзей в Твиттере.

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

Это статья, продолжающая идеальную настройку для разработки PHP в Sublime Text 2. Я решил написать эту обновленную версию, потому что с некоторого времени появился Sublime Text 3. Возможно, он все еще официально бета-версия, но работает довольно стабильно, и я использую ее уже несколько месяцев.

Этот список почти такой же, как и в предыдущей статье — большинство плагинов, которые я использовал с ST2, были обновлены для работы с ST3, и я перестал использовать некоторые из них, поэтому их нет.Я немного ленив, поэтому некоторые описания скопированы из предыдущей статьи;)

Во всяком случае, вот список:

  1. Управление пакетами (https://sublime.wbond.net)

    Благодаря этому небольшому программному обеспечению все остальные плагины легко устанавливаются.

  2. SublimeCodeIntel (https://github.com/SublimeCodeIntel/SublimeCodeIntel)

    Это пакет, который я использую все время. Его работа заключается в предоставлении подсказок, связанных с функцией, объектом, переменной и т. Д.имена. Он также указывает, какие методы и параметры доступны в объектах / классах. Он основан на Komodo CodeIntel и иногда вообще не работает. Но в большинстве случаев это круто 🙂

  3. SublimeLinter (https://sublime.wbond.net/packages/SublimeLinter)

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

    (обновление) Начиная с версии 3, SublimeLInter стал модульным.Это означает, что вы должны сначала установить основной пакет, а затем плагин / модуль для каждого языка, для которого вам нужна поддержка. У каждого плагина есть свой набор требований, поэтому обязательно внимательно их прочтите. Для разработки на PHP + JavaScript я использую:

  4. SideBarEnhancements (https://sublime.wbond.net/packages/SideBarEnhancements)

    Предоставляет новые отличные возможности при щелчке правой кнопкой мыши по элементам боковой панели (файлам / папкам). Очень удобно.

  5. Водосточный желоб VCS (https: // sublime.wbond.net/packages/VCS%20Gutter)

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

  6. SFTP , платный (http://wbond.net/sublime_packages/sftp)

    Отличный пакет, позволяющий очень удобно использовать SFTP, FTP и FTPS. Он поддерживает просмотр удаленных папок, редактирование и синхронизацию между локальными и удаленными файлами.Также регулярная загрузка, загрузка, сохранение или открытие файла.

  7. Tortoise (только в Windows) (http://wbond.net/sublime_packages/tortoise)

    Я использую его как дополнительный пакет к SideBarGit, если работаю в среде Windows. В нем не так много функций, но те, что он предоставляет, очень полезны и интуитивно понятны. Если вам нравится Tortoise Git, но вы работаете в Linux, вы можете попробовать RabbitVCS. Он не интегрирован с ST2, но предоставляет удобный графический интерфейс Git при щелчке правой кнопкой мыши.

  8. sublime-github (https://github.com/bgreenlee/sublime-github)

    Каждый разработчик должен использовать какие-то фрагменты кода. Я использую Gist, предоставленный GitHub, и этот пакет позволяет мне использовать их мгновенно (сохранять / вставлять).

  9. Тег (https://github.com/SublimeText/Tag)

    Это отличный плагин, но теперь ST3 поддерживает сопоставление тегов, поэтому он мне больше не нужен.

  10. PhpDoc (https: // sublime.wbond.net/packages/PhpDoc)

    Отличный плагин, помогающий писать блоки документации для PHPDocumentor.

  11. Phpcs (http://soulbroken.co.uk/code/sublimephpcs)

    Этот пакет добавляет поддержку PHP CodeSniffer в ST2. Он проверяет, написан ли ваш код в соответствии с одним из стандартов. Просто выберите один: Zend, PEAR … и другие 🙂 Посетите веб-сайт PHP CodeSniffer для деталей конфигурации.

  12. TrailingSpaces (https: // github.com / SublimeText / TrailingSpaces)

    Маленький ужас каждого кода — пустые места в конце строк, в конце файла. Особенно неприятно, если вы работаете над кодом с другими разработчиками, которые могут использовать разные редакторы / IDE, которые могут интерпретировать их (пустые пространства) по-разному.

  13. BracketHighlighter (https://github.com/facelessuser/BracketHighlighter)

    Та же ситуация, что и с плагином Tag . В моем повседневном кодировании возможности ST3 по подсветке скобок ST3 достаточно хороши.Тем не менее, это по-прежнему отличный плагин.

  14. Отображение имени возвышенной функции (https://github.com/akrabat/SublimeFunctionNameDisplay)

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

  15. Терминал (http://wbond.net/sublime_packages/terminal)

    Используя Git или, возможно, некоторые пакеты PEAR, вам может понадобиться время от времени переключаться на консоль и творить чудеса.Может быть, использовать Zend Tool или что-нибудь «запечь»;) Именно для этого и предназначен этот плагин.

  16. Клиент Xdebug (https://sublime.wbond.net/packages/Xdebug%20Client)

    В последнее время мой любимый клиент Xdebug для ST3. Отлично работает и позволяет использовать все возможности отладки Xdebug.

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

  1. LineEndings (https://sublime.wbond.net/packages/LineEndings)

    Приятно иметь плагин, если вы работаете с другими разработчиками, использующими машины Windows и Unix / Linux.Он заботится о различных (невидимых) символах окончания строки в этих системах.

  2. Sass (https://sublime.wbond.net/packages/Sass)

    Это очень удобно при работе с файлами Sass. Подсветка синтаксиса и так далее.

  3. PlainTasks (https://github.com/aziz/PlainTasks) добавлено благодаря комментарию Вириона

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

  4. Sublimerge (http://www.sublimerge.com/)

    Добавлено благодаря инструменту Вириона comment_Diff на стероидах. Идеально подходит для всех, кому приходится много работать со слиянием, особенно полезно, когда дело касается больших файлов.

  5. DashDoc (https://sublime.wbond.net/packages/DashDoc) (только Mac)

    Это только для пользователей Mac и только для тех, у кого установлен Dash, но я очень рекомендую его. Dash предоставляет доступ к документам практически всех основных библиотек, фреймворков и т. Д.и многое другое! С помощью этого плагина вы можете получить к нему доступ прямо из окна кода Subliem Text с помощью сочетания клавиш. Это действительно ускоряет кодирование.

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

Если вы знаете какой-либо плагин, который стоит упомянуть, дайте мне знать — я буду рад добавить его в свой список. Какие-либо предложения? 🙂

Новости

— Sublime HQ

Когда мы реализовали часть Sublime Merge для git, мы решили использовать mmap для чтения объектных файлов git.Это оказалось значительно труднее, чем мы думали вначале. Использование mmap в настольных приложениях имеет серьезные недостатки, и вот почему:

Вы можете просмотреть пример проекта здесь.

Допустим, вы читали какой-то двоичный формат, данные, которые вам нужны в каком-то приложении. Вы выбираете самый простой подход и используете простой read , чтобы получить полное содержимое файла. Вы выпускаете программное обеспечение, и кто-то приходит и говорит: «Мне нужно проанализировать этот файл размером 3 ГБ, но у меня есть только 2 ГБ памяти.Не могли бы вы сделать так, чтобы вы не использовали так много памяти? ». Конечно, вы хотите им помочь, поэтому вы немного поищете и пришли к выводу, что отображение памяти — идеальное решение этой проблемы.

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

.

И с этим вы устранили проблему использования памяти. Вы исправили ошибку, люди довольны, и все в порядке, пока вы не получите еще один запрос в службу поддержки. Ваша программа вылетает из-за SIGBUS.

Предупреждение 1: SIGBUS

SIGBUS (ошибка шины) — это сигнал, который возникает, когда вы пытаетесь получить доступ к памяти, которая не была физически отображена. Это отличается от SIGSEGV (ошибка сегментации) тем, что ошибка сегментации возникает, когда адрес недействителен, а ошибка шины означает, что адрес действителен, но нам не удалось прочитать / записать.

Как оказалось, билет приходит от кого-то, кто пользуется сетевым диском. Их сеть отключилась, пока ваш файл с отображением памяти был открыт, и, поскольку файл больше не существовал, ОС не могла загрузить его в оперативную память и вместо этого выдавала вам SIGBUS.

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

К счастью, в системах POSIX у нас есть обработчики сигналов, и SIGBUS — это сигнал, который мы можем обработать.Все, что вам нужно сделать, это зарегистрировать обработчик сигнала для SIGBUS при запуске программы и вернуться к нашему коду для обработки сбоев там.

К сожалению, в нашем коде есть несколько крайних случаев, которые мы должны учитывать:

Обработчики сигналов являются глобальными, но сами сигналы относятся к потокам. Поэтому вам нужно убедиться, что вы не вмешиваетесь в какие-либо другие потоки, сделав весь наш поток данных локальным. Давайте также добавим немного надежности, убедившись, что мы вызвали setjmp перед longjmp .

Использование setjmp и longjmp из обработчика сигналов на самом деле небезопасно. Похоже, это вызывает неопределенное поведение, особенно в MacOS. Вместо этого мы должны использовать sigsetjmp и siglongjmp . Поскольку мы выходим из обработчика сигналов, нам нужно, чтобы этот обработчик сигналов не блокировал любые будущие сигналы, поэтому мы также должны передать SA_NODEFER в sigaction .

Это становится довольно сложным, особенно если у вас есть несколько мест, где может произойти SIGBUS.Давайте разберем вещи на функции, чтобы сделать логику немного чище.

Итак, теперь вам просто нужно не забывать всегда вызывать install_signal_handlers для каждого приложения и заключать все обращения к файлу с помощью safe_mmap_try . Раздражает, но управляемо. Итак, теперь вы рассмотрели системы POSIX, но как насчет Windows?

Предупреждение 2: Windows

В Windows нет mmap , но есть MapViewOfFile . Оба они реализуют файлы с отображением памяти, но есть одно важное отличие: Windows сохраняет блокировку файла, не позволяя его удалить.Даже с флагом Windows FILE_SHARE_DELETE удаление не работает. Это проблема, когда мы ожидаем, что другое приложение удалит файлы из-под нас, например, сборщик мусора git.

Один из способов обойти это с помощью Windows API — полностью отключить кеш системных файлов, что делает все до абсурда медленным. Sublime Merge обрабатывает это, освобождая отображаемый в память файл в режиме ожидания. Это не очень хорошее решение, но оно работает.

Windows также не имеет сигнала SIGBUS, но вместо этого вы можете тривиально использовать структурированную обработку исключений в safe_mmap_try :

Теперь все в порядке, ваше приложение работает в Windows.Но затем вы решаете, что вам нужны отчеты о сбоях, чтобы упростить выявление проблем в будущем. Итак, вы добавляете Google Breakpad, но без вашего ведома вы снова сломали Linux и MacOS…

Предупреждение 3: третьи стороны

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

Breakpad регистрирует обработчики сигналов во время инициализации в Linux, включая один для SIGBUS.Эти обработчики сигналов перекрывают друг друга, поэтому порядок установки важен. В таких ситуациях нет хорошего решения: вы не можете просто установить и сбросить обработчик сигнала в safe_mmap_try , так как это нарушит работу многопоточных приложений. В Sublime HQ наше решение заключалось в том, чтобы превратить необработанный SIGBUS в нашем обработчике сигналов в SIGSEGV. Не особо элегантно, но это разумный компромисс.

В MacOS все немного сложнее. XNU, ядро ​​MacOS, основано на Mach, одном из первых микроядер.Вместо сигналов в Mach есть асинхронный механизм обработки исключений на основе сообщений. По соображениям совместимости сигналы также поддерживаются, причем исключения Mach имеют приоритет. Если библиотека, такая как Breakpad, регистрирует сообщения об исключениях Mach и обрабатывает их, это предотвратит запуск сигналов. Это, конечно, противоречит нашей обработке сигналов. Единственный обходной путь, который мы нашли до сих пор, включает исправление Breakpad, чтобы не обрабатывать SIGBUS.

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

Caveat 4: 32-битная поддержка

Отображение памяти может не использовать физическую память, но требует виртуального адресного пространства. На 32-битных платформах ваше адресное пространство составляет ~ 4 ГБ. Таким образом, хотя ваше приложение может не использовать 4 ГБ памяти, ему не хватит адресного пространства, если вы попытаетесь сопоставить память слишком большого файла. Результат тот же, что и при нехватке памяти.

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

В Sublime Merge и Sublime Text 3.2 мы пошли по пути «без поддержки 32-битной версии». Sublime Merge не имеет доступной 32-битной сборки, а Sublime Text отключает интеграцию git в 32-битных версиях.

Альтернатива

Я упоминал ранее, что вы можете переписать свой код, чтобы не использовать отображение памяти. Вместо того, чтобы передавать долгоживущий указатель в файл с отображением памяти по всей кодовой базе, вы можете использовать такие функции, как pread , для копирования в память только тех частей файла, которые вам требуются.Первоначально это менее элегантно, чем использование mmap , но позволяет избежать всех проблем, которые могут возникнуть в противном случае.

Благодаря некоторым быстрым тестам того, как Sublime Merge читает объектные файлы git, pread был примерно на ⅔ быстрее, чем mmap в Linux. Оглядываясь назад, трудно оправдать использование mmap вместо pread , но теперь зверь приручен, и нет особых причин для каких-либо изменений.

Если вы считаете, что мы что-то упустили или сделали ошибку, оставьте нам сообщение на форуме.Мы надеемся, что это поможет некоторым из вас в ваших будущих начинаниях. Если вы еще этого не сделали, ознакомьтесь с нашим git-клиентом Sublime Merge.

Essential Sublime Text 3 Plugins для PHP-разработчиков

Sublime Text 3

Sublime Text должен быть одним из самых популярных текстовых редакторов для кодирования. Хотя Sublime Text 3 все еще находится в стадии бета-тестирования, он относительно стабилен и очень удобен. Я лично использую его уже более 2-х лет как на работе, так и дома. Он сложный, легкий и простой в использовании.Он также работает на всех основных платформах: Windows, OSX и Linux.

Sublime Text — это не совсем IDE (интегрированная среда разработки), но с установкой нескольких пакетов / плагинов вы действительно можете сделать его идеальным редактором для разработки PHP на.

Есть несколько отличных пакетов для Sublime Text, которые помогут разработчикам PHP улучшить качество кода и рабочий процесс. Это то, что я считаю основными пакетами для разработки PHP в Sublime Text 3.

Прежде всего, это управление пакетами.Почему это не предустановлено, я не знаю. Я подозреваю, что большинство пользователей Sublime Text уже установили это, но если не установят его сейчас; это сделает установку всех других пакетов, перечисленных здесь (и многих других), чрезвычайно простой. Это что-то вроде эквивалента apt-get или homebrew , если вы с ними знакомы. Вместо того, чтобы загружать пакеты вручную или git clone в папку Packages , вы можете просто установить (и удалить) пакеты с помощью палитры команд.

Как только вы начнете использовать Package Control, вы удивитесь, как вы выжили без него!

Каждый разработчик делает случайную опечатку; забыв закрыть скобки, пропустить точку с запятой, и т. д. . Чтобы избежать этих ошибок, мы можем использовать линтер. SublimeLinter предоставляет основу для линтинга. Сами линтеры распространяются отдельно в виде дополнительных пакетов; для PHP вам понадобится SublimeLinter-php, который предоставляет интерфейс к php -l для проверки синтаксиса.

Другие полезные линтеры для разработчиков включают SublimeLinter-jshint для JavaScript, SublimeLinter-json для JSON и SublimeLinter-csslint для CSS.

Хорошо написанный код должен использовать последовательный стандарт кодирования, , т.е. тип отступа , соглашения об именах, использование пробелов, размещение скобок, и т. Д. . Какой бы стандарт вы ни использовали, phpcs поможет вам соответствовать им.

В отличие от других пакетов, для этого требуется несколько внешних библиотек и некоторая конфигурация, чтобы заставить его работать; вам понадобится PHP CodeSniffer, PHP CodeSniffer Fixer и PHP Mess Detector.Установите эти библиотеки и задайте пути их выполнения в настройках phpcs в Sublime, и все будет в порядке.

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

Вы можете определить стандарт кодирования, на основе которого вы хотите разработать пакет, в настройках пакета. Доступны популярные стандарты, такие как PSR-2 и Zend, а также множество настраиваемых стандартов, таких как CakePHP, которые можно установить и настроить.

EditorConfig предоставляет способ поддерживать некоторую согласованность стилей кодирования между различными редакторами и IDE. Это особенно ценно при сотрудничестве с другими, некоторые из которых могут не использовать Sublime Text для кодирования. Стили для проекта определены в файле .editorconfig , который затем может быть прочитан текстовым редактором / IDE и принудительно применен. Это полезно, среди прочего, для определения стилей табуляции и окончаний строк. У большинства редакторов есть плагины для поддержки EditorConfig, включая Atom, Coda, PhpStorm и, конечно же, Sublime Text.

Вы можете узнать больше о EditorConfig и о том, что вы можете определить, в файле .editorconfig на официальном сайте. Подробную информацию о пакете Sublime Text EditorConfig можно найти на GitHub.

Хороший код должен быть хорошо документирован. PHPDoc — в значительной степени повсеместно признанное средство сделать это в PHP; хотя многие разработчики находят документирование своего кода утомительным. DocBlockr упрощает процесс добавления комментариев PHPDoc (и JSDoc) за счет автозаполнения / ** нажатием Enter или tab , устраняя часть боли.

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

Если вы работаете с Git, Mercurial или SVN, то VCS Gutter — удобный пакет для добавления визуальных подсказок относительно того, что изменилось в файле с момента последней фиксации. Он покажет небольшой значок в желобе, чтобы указать, что было добавлено, изменено или удалено.

Одна небольшая проблема, которую я обнаружил в этом пакете, заключается в том, что если вы хотите просмотреть большой файл журнала в Sublime, это может значительно замедлить реакцию редактора.В этих случаях я обычно временно отключаю VCS Gutter с помощью Package Control.

Это мои семь основных пакетов для разработки PHP в Sublime Text 3. Что вы используете? Не стесняйтесь вносить свои предложения в комментариях ниже.

12 плагинов, которые делают Sublime Text 2 лучшим редактором кода PHP

Sublime Text 2 — фантастический редактор кода, но изначально он довольно ограничен в функциональности PHP IDE. Для Sublime Text 2 доступно множество плагинов, которые делают его в большей степени IDE и, на мой взгляд, лучшим редактором, доступным для разработки PHP.Вот 12 моих лучших плагинов, которые расширяют набор функций Sublime Text 2 и делают его моим лучшим выбором для PHP IDE.

1: Управление пакетами

Package Control — замечательный плагин, разработанный Уиллом Бондом, который позволяет вам легко искать, устанавливать, управлять, удалять и обновлять другие пакеты. В Package Control добавлено красивое меню для удобного управления вашими пакетами. Это, безусловно, самый важный плагин, поскольку он позволяет легко добавлять и управлять другими плагинами.

2: возвышенный код Intel

Sublime Code Intel добавляет функциональность IDE в Sublime Text и добавляет автозаполнение для доступных модулей, символов, функций и методов, как и должно быть в настоящей IDE.Он также добавляет возможность перехода к определению функции или метода, если оно определено вне текущего файла. Он также добавляет отрывок о текущем методе в строке состояния ST2.

3: Sublime Linter

Sublime Linter — чрезвычайно удобный плагин, который быстро и автоматически обнаруживает синтаксические ошибки в вашем коде. Помимо встроенного PHP-линтера, плагин также имеет линтеры для C / C ++, CoffeeScript, CSS, Git Commit Messages, Haml, HTML, Java, JavaScript, Lua, Objective-J, Perl, Puppet, Python, Ruby и XML.

4: WordHighlight

Word Highlight — отличный плагин для Sublime Text 2, который выделяет все вхождения в текущей строке. Просто дважды щелкните строку, и Word Highlight сделает все остальное. Выделенные слова увидеть намного быстрее, чем операцию поиска. Плагин также добавляет точку к желобу для облегчения идентификации при прокрутке или для скрытых в поле зрения экземпляров строки. Цветовая гамма полностью настраивается.

5: DocBlockr

DocBlockr — это плагин ST2, который автоматически заполняет ваши блоки документов. Все, что вам нужно сделать, это запустить блок документов с помощью / ** и нажать Enter, чтобы завершить его.DocBlockr также включает фрагменты для добавления документации в блок документов, ускоряющие и стандартизирующие блоки документов.

6: Великолепное выравнивание

Will Bond снова приходит на помощь с простым, но очень полезным плагином, который автоматизирует выравнивание специальных символов в выделении. Это очень полезно для выравнивания символов «=» в присвоении переменных или символов «=>» в определениях массивов. Это избавляет от лишних затрат времени на написание чистого кода и делает вашу работу более продуктивной.


7: Улучшения боковой панели

Стандартная боковая панель ST2 довольно ограничена и не работает как проводник Windows или Mac Finder с меню параметров для выполнения задач. Улучшения боковой панели добавляют операции, которые можно выполнять с элементами проводника файлов боковой панели, такие как удаление, копирование, переименование и многие стандартные операции, которые мы ожидаем от проводника файлов.

8: FileDiffs

Хотите узнать, какая строка кода изменилась между двумя версиями одного и того же файла? FileDiffs — это простой, но мощный инструмент, который позволяет вам видеть только различия между двумя файлами.Сравните открытые файлы, пути к файлам или даже буфер обмена.


9: Git

Раздражены командами командной строки для управления версиями или просто отвратительно переключаться в командную строку исключительно для проверки последних обновлений репозитория? Плагин Git добавляет команды Git прямо в Sublime Text, поэтому вам не нужно использовать командную строку для выполнения операций контроля версий.

10: Возвышенный SVN

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

11: возвышенный SFTP
Плагин

Sublime SFTP позволяет быстро загружать, скачивать или синхронизировать файлы с помощью FTP или SFTP. Это позволяет быстро синхронизировать удаленные файлы для тех, кто использует FTP-сервер. Это также имеет небольшую стоимость, но опять же очень полезно, если вы часто используете FTP и хотите сэкономить время и энергию при переключении между FTP-клиентом и ST2.

12: Soda Theme

Пакет Soda Theme добавляет в Sublime Text улучшения темных и светлых тем. Это добавляет больше, чем просто цвета текста и цвет фона, он также обновляет стили вкладок, стили боковой панели и имеет поддержку Retina для обновления полного внешнего вида Sublime Text 2.

My Sublime Text Setup для PHP

Настройки конфиденциальности

Решите, какие файлы cookie вы хотите разрешить.Вы можете изменить эти настройки в любое время. Однако это может привести к тому, что некоторые функции станут недоступны. Для получения информации об удалении файлов cookie воспользуйтесь функцией справки вашего браузера. Узнайте больше о файлах cookie, которые мы используем.

С помощью ползунка вы можете включать или отключать различные типы файлов cookie:

Этот сайт будет
  • Обязательно: запомните настройку разрешений для файлов cookie
  • Обязательно: разрешите сеансовые файлы cookie
  • Обязательно: собирайте информацию, которую вы вводите в информационный бюллетень контактных форм и другие формы на всех страницах
  • Обязательно: отслеживайте, что вы вводите в корзину
  • Essential: подтвердите, что вы вошли в свою учетную запись пользователя
  • Essential: запомните языковую версию, которую вы выбрали
Этот сайт не будет
  • Запомните свои данные для входа
  • Функциональность: запомните настройки социальных сетей
  • Функциональность: запомните выбранный регион и страну
  • Аналитика: Отслеживайте посещенные вами страницы и выполненное взаимодействие
  • Аналитика: Отслеживайте свое местоположение и регион в зависимости от вашего IP-номер
  • Аналитика: отслеживайте время, проведенное на каждой странице
  • Аналитика: Повышайте качество данных статистических функций
  • Реклама: адаптируйте информацию и рекламу к вашим интересам на основе e.грамм. контент, который вы посещали раньше. (В настоящее время мы не используем файлы cookie для таргетинга или таргетинга)
  • Реклама: сбор личной информации, такой как имя и местонахождение
Этот сайт будет
  • Обязательно: запомните настройку разрешений для файлов cookie
  • Обязательно: разрешите сеансовые файлы cookie
  • Обязательно: собирайте информацию, которую вы вводите в информационный бюллетень контактных форм и другие формы на всех страницах
  • Обязательно: отслеживайте, что вы вводите в корзину
  • Essential: подтвердить, что вы вошли в свою учетную запись пользователя
  • Essential: запомнить выбранную языковую версию
  • Функциональность: запомнить настройки социальных сетей
  • Функциональность: запомнить выбранный регион и страну
Этот сайт не будет
  • Аналитика: отслеживайте посещенные страницы и выполненное взаимодействие
  • Аналитика: отслеживайте свое местоположение и регион на основе вашего IP-номера
  • Аналитика: отслеживайте время, проведенное на каждой странице
  • Аналитика: Повышайте качество данных статистических функций
  • Реклама: адаптируйте информацию и рекламу к вашим интересам на основе e.грамм. контент, который вы посещали раньше. (В настоящее время мы не используем файлы cookie для таргетинга или таргетинга)
  • Реклама: сбор личной информации, такой как имя и местонахождение
Этот сайт будет
  • Обязательно: запомните настройку разрешений для файлов cookie
  • Обязательно: разрешите сеансовые файлы cookie
  • Обязательно: собирайте информацию, которую вы вводите в информационный бюллетень контактных форм и другие формы на всех страницах
  • Обязательно: отслеживайте, что вы вводите в корзину
  • Essential: подтвердите, что вы вошли в свою учетную запись пользователя
  • Essential: запомните языковую версию, которую вы выбрали
  • Функциональность: запомните настройки социальных сетей
  • Функциональность: запомните выбранный регион и страну
  • Analytics: отслеживайте посещенные вами страницы и взаимодействия принято
  • Аналитика: Следите за своим местоположением и регионом на основе вашего IP-номера
  • Аналитика: Отслеживайте время, проведенное на каждой странице
  • Аналитика: Повышайте качество данных статистических функций
Этот сайт не будет
  • Реклама: адаптируйте информацию и рекламу к вашим интересам на основе e.грамм. контент, который вы посещали раньше. (В настоящее время мы не используем файлы cookie для таргетинга или таргетинга)
  • Реклама: сбор личной информации, такой как имя и местонахождение
Этот сайт будет
  • Функциональность: запоминание настроек социальных сетей
  • Функциональность: запоминание выбранного региона и страны
  • Аналитика: отслеживание посещенных страниц и выполненного взаимодействия
  • Аналитика: отслеживание вашего местоположения и региона на основе вашего IP-номера
  • Аналитика: Следите за временем, проведенным на каждой странице.
  • Аналитика: Повышение качества данных статистических функций.
  • Реклама. Подбирайте информацию и рекламу в соответствии с вашими интересами на основе e.грамм. контент, который вы посещали раньше. (В настоящее время мы не используем файлы cookie для таргетинга или таргетинга)
  • Реклама: сбор личной информации, такой как имя и местонахождение
Этот сайт не будет
  • Запомните данные для входа

PHP Статический анализ в Sublime Text

Стандарты кодирования

существуют уже давно, и в последнее время они начинают получать более широкое распространение в PHP.Во время изучения Python мне очень понравилось, как Sublime Text 2 кричал на меня за использование слишком большого количества пустых строк, использование вкладок вместо пробелов и даже такие вещи, как объявление неиспользуемых локальных переменных, импорт модулей, которые никогда не использовались, и т. Д. Это было довольно круто, и Вскоре я начал писать красивый код Python, не заботясь о том, как все должно быть сделано.

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

Шаг 1. Сопоставьте версии PHP с вашей средой разработки

Если вы разрабатываете локально с использованием Vagrant или какой-либо другой виртуальной машины (а вы действительно должны это делать), у вас, скорее всего, будет локальная версия PHP, отличная от той, что есть в коробке.

Для меня на OSX php -v отображал PHP 5.3.15, а vagrant — на 5.4.6. Используя homebrew и репозиторий homebrew-php, это было относительно просто.

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

Шаг 2: Инструменты статического анализа Моара

Мы будем использовать несколько инструментов: PHP Mess Detector, PHP CodeSniffer и PHP Coding Standards Fixer.

В зависимости от того, как у вас установлен PEAR, вам может потребоваться добавить к этим командам префикс sudo .

  $ груша канал-открытие груша.phpmd.org
$ pear channel-discover pear.pdepend.org
$ груша установить --alldeps phpmd / PHP_PMD
$ груша установить PHP_CodeSniffer  

Обновление 13/12/2013: Причина, по которой я изначально предположил, что PEAR заключалась в том, что доморощенный делал довольно странную херню, когда я пытался установить эти пакеты. Он пытался установить .phar, но PHP не мог создать phar, поэтому мне пришлось переключить phar.readonly на Off в php.ini. Возможно, это стоит сделать — просто чтобы избежать PEAR — поэтому, как только вы внесете изменения, запустите это:

  $ кран для пивоварения josegonzalez / homebrew-php
$ brew установить phpmd
$ brew установить сниффер кода php
$ brew установить php-cs-fixer  

Шаг 3. Установите плагин Sublime PHP CS

Это плагин, который объединяет все воедино.

Вам нужно перейти в «Настройки»> «Настройки пакета»> «PHP CodeSniffer»> «Настройки — по умолчанию». Установите эти значения:

 
"phpcs_show_quick_panel": ложь,  

Выбор значения false позволит избежать неприятного всплывающего окна со списком всех ошибок на вашем лице. Иногда вы хотите проигнорировать несколько ошибок, это не позволит вам.

 

"phpcs_executable_path": "/ usr / bin / phpcs",  

Установите полный путь к phpcs. Для этого вы можете использовать или phpcs .

  "phpcs_additional_args": {
    "--standard": "psr2",
    "-n": ""
},  

Потому что вы знаете, что любите пробелы вместо вкладок.

 
"php_cs_fixer_executable_path": "/ usr / local / bin / php-cs-fixer",  

Найдите наладчика.

 
"phpcs_linter_run": true,  

Вот линтинг, о котором мы говорили.

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

 

"phpmd_executable_path": "/ usr / bin / phpmd",  

Сообщите Sublime, где находится phpmd.

Поэкспериментируйте с другими настройками, если хотите, но сделайте это в «Настройки — Пользователь», чтобы у вас все еще оставалось значение по умолчанию, чтобы вернуться к нему. Этот параметр по умолчанию является наименее инвазивным и наиболее полезным из имеющихся у меня до сих пор, но его, безусловно, можно изменить.

Другие IDE

Если вы хотите сделать это с чем-то другим, кроме Sublime Text, есть много других вариантов.

Только одна IDE, которую я заметил, поддерживает CodeSniffer «из коробки»:

Некоторым требуются расширения, но есть несколько простых руководств:

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

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *