Автор оригинала: David Wong.
Предисловие
PhpStorm-это инструмент разработки, многие PHPer должны что-то делать, и даже многие люди используют его в качестве производственного инструмента, но многие люди не используют его по максимуму. В этой статье кратко излагаются некоторые элегантные советы по разработке.
среда разработки
инструмент разработки
Прежде чем читать эту статью, я думаю, вам следовало установить PhpStorm. Если у вас его нет, вы можете попробовать скачать и установить его на официальном сайте. Что касается лицензии, то это выходит за рамки данной статьи. Вы можете использовать следующие способы получения бесплатной лицензии.
- Лицензирование образования
- Активный разработчик GitHub
- Microsoft MVP
Хотя существует множество специальных способов активации, но все же выступайте за использование подлинного программного обеспечения. Пожалуйста, попробуйте использовать оригинальный английский интерфейс, не устанавливайте китайские патчи.
PHP
Здесь, я надеюсь, вам лучше будет установить последнюю версию PHP (7.3.x) для разработки и развертывания проекта.
Введите тему
Глядя на это, я надеюсь, что вы готовы к вышесказанному, поэтому мы начнем решать некоторые проблемы в разработке.
Материал-Тема-Пользовательский интерфейс
Это мой интерфейс разработки по умолчанию, использующий встроенные темы. Соляризованный свет По умолчанию встроенная тема инструментов разработки изменится только Область кода Цвета темы, такие как индекс элементов, не изменятся (конечно, их можно изменить вручную). Более того, распознавание изображений по умолчанию не очень высокое. Здесь вы можете установить пользовательский интерфейс темы материалов темы
Обратите внимание, что слева индекс в проекте изменяет значок проекта, чтобы при наличии файлов разных типов в одном каталоге мы могли быстро идентифицировать их по значку. Кроме того, существуют общие модели, утилиты, журналы, общедоступные, поставщики, конфигурации, статические, промежуточное программное обеспечение, контроллер будет иметь специальные значки для улучшения идентификации, намного лучше, чем по умолчанию.
.игнорировать
Когда мы создаем новый проект, нам не нужно отправлять что-либо в библиотеку управления версиями, например, каталог поставщиков composer, node_modules node.js и так далее. Эти каталоги обычно не нужно отправлять в Библиотеку управления версиями Dow. Будет появляться все больше и больше видов интерфейсной разработки. В настоящее время мы можем использовать этот инструмент для быстрого создания.
Как вы можете видеть, мы можем создавать файлы игнорирования эффективно, быстро и точно, выбирая шаблоны проектов. Более того, когда нам нужно вручную игнорировать каталог, нам не нужно вручную редактировать его. файл gitignore. Нам просто нужно щелкнуть правой кнопкой мыши по каталогу и выбрать соответствующую операцию.
Другие плагины
.зав. поддержка файлов
Этот плагин используется для поддержки подсказок в методе env
PHP-композитор. поддержка json
Несколько советов для композитора. JSON
В соответствии с различными рамками
- Ларавель
- Подумайте о плагине PHP5
- …
Поскольку я использовал только плагины, связанные с этими двумя фреймворками, остальные не перечислены. Поскольку установка плагина Laravel довольно утомительна, хотя и утомительна, но действительно мощна, что касается установки, вы можете обратиться к этой статье.
Для разработчиков Laravel
У помощника Laravel IDE также есть одна особенность, о которой упоминается в нескольких статьях, а именно аннотации моделей. Известно, что Laravel поддерживает ORM, но когда мы получаем атрибут модели непосредственно из объекта, среда IDE может запрашивать у вас неопределенные атрибуты, но это не влияет на использование, но процесс разработки выглядит хуже, как показано ниже. Было исключение, но в нашей базе данных было это поле, не для объекта, но поскольку мы унаследовали корневую модель и использовали метод _get (), оно было показано под идентификатором. пятно Чтобы привлечь наше внимание, хотя такой код не влияет на время выполнения нашей программы, разработка не кажется такой уж дружественной. Когда мы используем аннотации модели, мы автоматически генерируем следующую информацию об аннотациях для каждого из наших объектов модели.
Как вы думаете, это удивительно и поможет нам получить аннотации столбцов в MySQL? Посмотрите на это еще раз, атрибут ID уже не так ослепителен, но есть ли какой-то особый эффект? Дуанг! Конечно, попробуйте выбрать идентификатор и нажать Ctrl + Q
Как быстро переместиться в определенное место? Или каково определение представления?
Если вы просто перейдете к определению, нажмите Ctrl + (ii) Щелкните левой кнопкой мыши возможно Ctrl + B Его можно перенести.
Но иногда нам не нужно переходить к определению, просто нажмите Ctrl + Сдвиг + I Затем мы можем получить следующее окно, которое поможет нам быстро увидеть определение.
Благодаря описанному выше простому использованию мы можем обнаружить, что эти два ярлыка могут запрашивать документ атрибута метода или объекта с помощью этого ярлыка, и когда мы проверяем, что буква является встроенным методом или объектом PHP, мы также можем перейти непосредственно в библиотеку документов PHP, чтобы просмотреть соответствующий документ.
Подсказки по типу
Многие люди, возможно, не заметили, что тип подсказывает эту вещь. Например:
Это встроенный класс коллекции Laravel, который обрабатывает наборы данных, когда мы создаем экземпляр нового Коллекция Назначение объекта $коллекция Средство разработки автоматически сообщит нам тип этой переменной, и когда мы вызовем ее снова, мы увидим, что средство разработки автоматически предложит нам указать эти типы.
Возможно, это одна из причин, по которой многие люди предпочитают разрабатывать с помощью IDE, но вы можете не найти это удивительным. Но вы также обнаружите, что в некоторых случаях эта функция не работает, например, анонимная функция передачи значений, потому что контекст здесь теряется, средства разработки не знают, что это за данные, и не могут предоставить вам больше услуг, таких как это.
Если значение приведенного выше массива является набором, почему его нельзя запросить? Чаще всего такие вещи, как where и объединение ThinkPHP и Laravel, требуют анонимного метода для передачи объекта, как показано ниже.
public function article(){
// Note that if $query here does not declare the type, we will not be prompted by where_method.
return $this->hasMany(Article::class)->where(function($query){
$query->where('open',1);
})
}В отличие от этих строго типизированных языков, PHP может помещать в массив только один и тот же тип значения, и он не может знать, какого типа значение массива извне. Для строго типизированных языков, таких как Java, при объявлении редактор может определить тип внутреннего значения массива, в то время как PHP не может сделать вывод, а затем не может предоставить подсказки типа.
На этом этапе нам просто нужно показать, какой тип переменной у меня есть, и компилятор может предоставить хорошую подсказку о типе.
Да, это всего лишь простой комментарий.
/** @var Collection $collection */
Этот комментарий немного отличается от обычного многострочного комментария. /* * Есть два. ** В начале это означает php док Блок.
@var data_type $name
@вар Представляет, что это переменная. Пробел следует за типом переменной, а затем пробел следует за именем переменной.
Эта грамматика также может добавлять типы к атрибутам членов класса.
Таким образом, ИДЕЯ может быть хорошей подсказкой, содействующей разработке, для нас, чтобы подсказать методы, методы для достижения “статической проверки” при передаче параметров.
И это не просто развлечение. остаться PHPDoc Есть более интересные правила.
- @ Param объявляет ограничения и инструкции для параметров метода
- @ return добавляет ограничения типа и инструкции для возврата
- @ Броски используются в методе, чтобы сообщить IDEA, что в этом методе есть исключения, которые могут объявлять более одного.
- ….
Если вам интересно, вы также можете обратиться к справочнику PHPDoc – phpDocumentor, чтобы получить более релевантные ярлыки.
Более того, PHPDoc стал рекомендуемым стандартом в PSR, fig-стандарты/предложены в master.phpDocumentor/fig-стандарты.
Однако, учитывая это, я должен сказать, что в PHP 7 ограничения типов были выполнены очень хорошо. В предстоящем PHP 7.4 ограничения типов также поддерживаются для атрибутов членов класса. В будущей разработке нам, возможно, не потребуется аннотировать, чтобы ограничить и сообщить инструменту разработки, какой тип этого параметра, и, напротив, код будет более стандартизированным и вычитаемым. Меньше жуков.
Сочетания клавиш
В повседневной разработке нет недостатка в использовании сочетаний клавиш, сочетания клавиш могут повысить эффективность нашей разработки, но также очень здорово, в дополнение к вышеуказанным сочетаниям клавиш, которые мы использовали, ниже приведены некоторые часто используемые.
CTRL+YУдалите текущую строку, и при первом нажатии на нее вам будет предложено установить предустановку этой кнопки наотменитьвсе ещеудалить строкуВот в чем дело. Вот выборудалить строкуALT+JВыберите одно и то же слово. Каждый, кто использовал Sublime Text, должен знать, что когда вы нажимаете в Sublime TextCtrl+DОни помогут вам выбрать одни и те же слова, чтобы помочь вам изменять их синхронно.(ii) Левый ключ+Сдвиг+AltПрямоугольное выделение.Alt+ВставитьБыстрый метод вставки. Когда эта комбинация клавиш нажата в классе, появляется окно, которое мы можем выбрать. Здесь мы можем быстро и точно переопределить/реализовать методы родительского класса и быстро сгенерировать методы получения, установки и конструктора для членов класса.Alt+ВводЭто почти универсальная комбинация клавиш, которую можно использовать в любое время и в любом месте. Это может помочь нам быстро исправить некоторые проблемы в коде, исправить некоторые орфографические ошибки и т.д. При использовании этого метода в позиции параметров метода построения он может быстро преобразовать параметры в переменные-члены класса.Сдвиг+F6Реструктуризация. Когда нам нужно изменить имя переменной/имя метода/имя класса/имя файла в контексте, используется эта комбинация клавиш. Нажмите эту комбинацию клавиш, IDE автоматически выполнит поиск места, где он указан, и поможет вам синхронно изменить его. Это универсальная клавиша быстрого доступа для переименования. Конечно, есть некоторые проблемы с изменением имен классов. Иногда, конечно, они могут сотрудничать.Alt+JСделай это.Ctrl+Сдвиг+ВводБыстрое завершениеCtrl+WЭтот ярлык закрывает вкладку для многих инструментов, но его здесь нет. Логотип расширяется по контексту слова или диапазона. Когда нам нужно удалить или выбрать что-то, нам не нужно осторожно перемещать мышь.Ctrl+Сдвиг+ССкопируйте физический путь к редактируемому файлу, что очень полезно, когда нам нужно открыть его с помощью других редакторов.Ctrl+Сдвиг+ALT+CЭтот короткий путь немного больше, чем приведенный выше. Это будет более полезно со следующим ярлыком. Когда нам нужно поделиться или найти код в командной разработке, ваш коллега может сообщить вам, какая строка кода находится в строке XX, а затем вам нужно найти ее на левой панели навигации. Это кажется очень неуклюжим, этот ярлык может копировать текущий файл относительно корневого пути проекта, а также номера строки, чтобы облегчить быстрое позиционирование.Дважды щелкните ShiftЭтот короткий путь очень универсален. В этом окне поиска мы можем выполнить поиск.класс、файл、МетодВы даже можете ввести полное пространство имен, чтобы быстро найти методы класса. И файл быстрого расположения пути, скопированный с помощью вышеупомянутой клавиши быстрого доступа. Ярлык выше копируется следующим образом
поставщик/композитор/загрузчик классов.php:47
Такой контент мы Дважды щелкаем Shift Вставляем, чтобы быстро найти файлы и строки.
Ctrl+Сдвиг+F、Ctrl+Сдвиг+RГлобальный поиск и замена.Ctrl+Alt+MИзвлеките код как метод. Много раз мы чувствуем, что часть метода довольно громоздка, и нам нужно предложить метод для ее извлечения отдельно. Однако, если мы извлекем его вручную, эффективность будет не слишком высокой. Эта клавиша быстрого доступа может помочь нам быстро извлечь его.Alt+~Публикация книг контролирует быструю работу.- …. Дополнительные ярлыки не будут вводиться один за другим. Если вам интересно, вы можете ознакомиться с официальным введением. Много раз наше широко используемое программное обеспечение будет занимать некоторые ярлыки, такие как QQ, которые будут занимать форматированный код. (
Ctrl+Alt+LИспользование музыкального программного обеспеченияCtrl+Alt+↑/↓/←/→。
Грамматика суффиксов
Грамматика суффиксов-интересное приложение, многие люди не знают, например, когда я пишу js, если я хочу напечатать выражение, мне часто нужно вручную вводить консоль. бревно, не так ли? Даже если есть подсказки кода, это отнимает много времени, и грамматика суффиксов просто должна следовать выражению. .войти А затем нажмите Вкладка Просто подождите, пока произойдет волшебство. Точно так же существуют
- If генерирует оператор IF
- Not null генерирует инструкцию
- Var хранит выражения в переменных
- 。 。。
Вы можете найти больше здесь.
Разве этого недостаточно после прочтения? Не волнуйтесь, вы также можете настроить, например, здесь мы настраиваем пробовать
Среди них $EXPR$ Это оригинальное выражение. А теперь давайте попробуем.
Конец
Эту статью почти невозможно отправить, потому что нет удобного инструмента для уценки, чтобы автоматически загружать карту под Windows. Когда статья закончена, обнаруживается, что в моем районе находится более 20 фотографий. Позже, в отчаянии, я написал скрипт для автоматического анализа изображений в Markdown и загрузки изображений в sm. Г-жа. А потом я узнал, что так оно и было. gif Но оказалось, что это png Он рушится. Последнее использование ShareX Gif был получен до публикации статьи.
Хотя в статье не совсем указано, как научить вас писать код, и даже некоторые из них являются грязными, но также надеемся, что часть содержания статьи поможет вам. Когда мы умело используем наши инструменты разработки, мы можем получить вдвое больший результат с половиной усилий в процессе разработки.
Справочный материал
- Справочный материал
- Плагин для установки Laravel Laravel-ide-помощник-Цзянхуа-Блог Сад
Оригинал: “https://developpaper.com/how-to-use-php-storm-for-elegant-project-development/”