(0:00)
В этом эпизоде мы целиком сосредоточимся на некоторых оптимизациях PHP. Если вы не используете PHP, просто пропустите эту часть. Хорошо. Мы загрузим или установим три разных вещи. Первая — обновленный файл синтаксиса. Следующая — способ автоматического добавления оператора PHPuse
вверху каждого класса. И третья — мы создадим небольшой маппинг для автоматической сортировки операторов PHPuse
. Давайте начнем. Как обычно, это должен быть известный механизм для вас на этом этапе.
(0:30)
Откроем Vim. Отредактируем файл vim/plugins.vim. Прокрутим вниз и добавим. Далее, переключусь в мой файл .vimrc. Сохраню его и запущу установку плагина. Теперь он у нас установлен. Он должен заработать автоматически и мы ничего не должны делать. Теперь добавлен php.vim. Я бы хотел получить способ автоматического добавления PHPuse
сверху любого класса.
(1:00)
Еще раз, — давайте добавим это вниз: :Plugin... Да, просто проделайте то же самое: :PluginsInstall. Теперь мы должны добавить несколько горячих клавиш. Вот тут мы добавим функцию PhpInsertUse и установим автокоманду. Если тип файла PHP, то установим команду: когда мы нажимаем <Leader>... для нас это “запятая”. Возможно, вы поменяете эту клавишу, но, в любом случае, это будет означать...
(1:30)
В этом случае, в режиме вставки, мы вызовем функцию PhpInsertUse. Но потом мы установим другую функцию для нормального режима, которая делает в точности то же самое. Давайте возьмем это, перейдем в полноэкранный режим... И, теперь, в моем файле .vimrc... Может быть мы позже найдем лучшее место для этого, но сейчас просто вставлю это сюда. Далее, мы поменяем <leader>u на <leader>n, для пространства имен. Давайте попробуем в новой вкладке.
(2:00)
Давайте откроем... не знаю... контроллер... Да, у нас тут есть какой-то метод. Скажем, мы хотим использовать класс PHPUser
. Прямо сейчас, по крайне мере, до добавления этого пакета, мы должны сделать так: PHPuse App\User
и тут внизу напишем PHP$user = new User;
. Давайте продолжим и поменяем это. Сейчас я должен иметь возможность написать PHPUser
и, далее, ,n. Вот так. Видите, вот тут, он автоматически импортировал это. Заметьте, я находился в режиме вставки.
(2:30)
И все потому, что мы установили маппинг для этого. Но у нас также есть маппинг для нормального режима. И он будет делать то же самое. Пока курсор находится на слове, нажмем <leader>n, — теперь PHPuse App\User
добавлено наверх. Весьма удобная штука. Это будет работать для чего бы то ни было. Представьте, что нам нужен один из PHPRequest
-классов. Снова — PHP$r = new Request
... и пока курсор на слове PHPRequest
— нажмём ,n. В этом случае это будет несколько разных вещей.
(3:00)
В такой ситуации появится список. Хотите ли вы пункт 1, 2 или 3? В этом случае учитывается и файл compiled.php. Пожалуй, мне нужно исключить его из моего файла tags. Теперь выполнился импорт этого конкретного класса PHPRequest
. Теперь, просто запомните, — это предполагает, что у вас есть файл tags. Мы уже рассматривали, как создать его. Быстро повторим — мы должны выполнить shctags -R --exclude
. Вы можете сделать еще одну вещь. Например, можем исключить папку.
(3:30)
Возможно, вы хотите исключить node_modules, поскольку это очень большая директория. И вам, возможно, часто не потребуются расположенные в ней файлы. Вы можете исключить vendor также. Или исключить какую-то определенную папку внутри vendor. Если мы вернемся в Chrome, то, скорее всего, найдем советы. Да, вот тут. Вы можете вставить что-то вроде этого. Или вы также можете установить traits (типажи). Кстати, возможно, вы захотите сохранить это, как псевдоним в bash, чтобы не запоминать.
(4:00)
Еще кое-что. Мы преуспели в автоматическом добавлении оператора PHPuse
вверху класса. Но мы также хотим иногда расширить имя класса до абсолютного. Это указано прямо здесь. Если вам нужно абсолютное имя класса, возьмем это. Перейдем в файл .vimrc. Вставлю сюда. И в этот раз я поменяю команду на <leader>nf (namespace fully qualified).
(4:30)
Теперь вы увидите различие. Давайте избавимся от этого. Сначала <leader>n, 1 — импортирует PHPuse
наверх. Нажму u для отмены. Но теперь, если я нажму <leader>nf и сделаю выбор, вы увидите, имя превратилось в абсолютное. И знаете что? Вообще-то, тут должно начинаться со слэша . Удивлен, что это не так. Давайте попробуем еще одно PHPUser
, <leader>nf... Да, в большинстве случаев вам, возможно, нужен обратный слэш в начале.
(5:00)
На самом деле, это не важно. Сейчас важно то, что вам не нужно переживать о расширении до абсолютного пути. Вы можете просто написать PHPuse AughorizesRequests
и, далее, ,nf для мгновенного расширения. А если вы попробуете ввести что-то несуществующее, кстати, редактор, конечно, сообщит вам. “Ни один тег не найден для данного класса”. Это существенная помощь. И наконец — это дело вкуса — но мне нравятся мои PHPuse
операторы, расположенные от короткого к длинному.
(5:30)
Здесь они расположены правильно. Другие предпочитают сортировку по алфавиту или что-то подобное. Позвольте добавить еще кое-что сюда. Вставлю это вниз. Может быть, еще что-то. Как насчет еще одного класса PHPRequest
? Вот так. Если вы предпочитаете сортировку по алфавиту, вам не нужно ничего менять, но только выделить их все и ввести sort. Хорошо, теперь A вверху, а I внизу. Многие предпочитают делать так. Ничего плохого в этом нет.
(6:00)
Но, опять же, для меня удобнее сортировка от короткого к длинному. Чтобы обеспечить это, мы можем использовать небольшой маппинг. Скопирую это. Переключусь в файл .vimrc. И, снова, — вставьте пока это сюда. Вам не обязательно в это вдумываться. Все, что нужно знать, — если вы введете <leader>su, будет использовано awk, чтобы выяснить длину каждой строчки и вызвать сортировку. Теперь, выделю это и нажму ,su. Готово.
(6:30)
Порядок изменился от короткого к длинному. Достаточно для этого урока. Мы установили 3 вещи. Первая — php.vim, которая обновляет файл синтаксиса PHP. Потом мы узнали, как автоматически добавлять импорт PHPuse
наверх. И, наконец, мы разобрали, как сортировать фразы с оператором PHPuse
от короткой к длинной.