Prettier ist ein eigensinniger Codeformatierer. Es erzwingt einen konsistenten Stil, indem es Ihren Code analysiert und ihn mit eigenen Regeln erneut ausgibt, die die maximale Zeilenlänge berücksichtigen und den Code bei Bedarf umbricht.
Dieses Plugin fügt Prettier Unterstützung für die PHP-Sprache hinzu.
Notiz
Dieses Plugin verwendet PSR/PER als Orientierungshilfe bei Formatierungsentscheidungen, zielt jedoch nicht darauf ab, vollständig PSR/PER-kompatibel zu sein. Die Idee besteht darin, einigermaßen nah an der Funktionsweise von Prettier für JS zu bleiben.
Wir gehen davon aus, dass das Plugin stabil ist, wenn reine PHP-Dateien formatiert werden. Die Formatierung von Dateien, die gemischtes PHP und HTML enthalten, gilt immer noch als instabil – Einzelheiten finden Sie unter Offene Probleme mit dem Tag „inline“.
Wenn Sie das Plugin produktiv nutzen möchten, empfehlen wir, den Umfang auf reine PHP-Dateien zu beschränken.
<?php
array_map ( function ( $ arg1 , $ arg2 ) use ( $ var1 , $ var2 ) {
return $ arg1 + $ arg2 /( $ var + $ var2 );
}, array ( " complex " => " code " , " with " =>
function () { return " inconsistent " ;}
, " formatting " => " is " , " hard " => " to " , " maintain " => true ));
<?php
array_map (
function ( $ arg1 , $ arg2 ) use ( $ var1 , $ var2 ) {
return $ arg1 + $ arg2 / ( $ var + $ var2 );
},
[
" complex " => " code " ,
" with " => function () {
return " inconsistent " ;
},
" formatting " => " is " ,
" hard " => " to " ,
" maintain " => true ,
]
);
Sie können das Plugin auf unserem Spielplatz ausprobieren!
Garn:
yarn add --dev prettier @prettier/plugin-php
# or globally (pending https://github.com/prettier/prettier/issues/15141)
yarn global add prettier @prettier/plugin-php
npm:
npm install --save-dev prettier @prettier/plugin-php
# or globally (pending https://github.com/prettier/prettier/issues/15141)
npm install --global prettier @prettier/plugin-php
Erstellen oder ändern Sie Ihre Prettier-Konfigurationsdatei, um das Plugin zu aktivieren:
{
"plugins" : [ " @prettier/plugin-php " ]
}
Wenn Sie prettier als lokale Abhängigkeit installiert haben, können Sie prettier als Skript in Ihre package.json
einfügen.
{
"scripts" : {
"prettier" : " prettier "
}
}
und führen Sie es dann über aus
yarn run prettier path/to/file.php --write
# or
npm run prettier -- path/to/file.php --write
Wenn Sie global installiert haben, führen Sie es aus
prettier path/to/file.php --write
Dieses Paket stellt eine standalone.js
bereit, die zusammen mit Prettiers eigener standalone.js
verwendet werden kann, damit das PHP-Plugin in Browsern ohne Kompilierungsschritt funktioniert.
Holen Sie sich zunächst beide eigenständigen Skripte von einem npm-CDN wie unpkg:
< script src =" https://unpkg.com/prettier/standalone.js " > </ script >
< script src =" https://unpkg.com/@prettier/plugin-php/standalone.js " > </ script >
Dann verwenden Sie Prettier mit PHP, einfach so:
await prettier . format ( YOUR_CODE , {
plugins : prettierPlugins ,
parser : "php" ,
} ) ;
Sehen Sie diesen Code in dieser Basisdemo in Aktion.
Bundler wie Webpack, Rollup oder Browserify erkennen automatisch, wie sie mit dem PHP-Plugin umgehen. Denken Sie daran, dass Sie auch bei Verwendung eines Bundlers weiterhin die eigenständigen Builds verwenden müssen:
import prettier from "prettier/standalone" ;
import * as prettierPluginPhp from "@prettier/plugin-php/standalone" ;
await prettier . format ( YOUR_CODE , {
plugins : [ prettierPluginPhp ] ,
parser : "php" ,
} ) ;
Prettier für PHP unterstützt die folgenden Optionen. Wir empfehlen allen Benutzern, die Option phpVersion
festzulegen.
Name | Standard | Beschreibung |
---|---|---|
phpVersion | "7.0" | Ermöglicht die Angabe der von Ihnen verwendeten PHP-Version. Wenn Sie PHP 7.1 oder höher verwenden, werden durch die Einstellung dieser Option moderne Sprachfunktionen in der gedruckten Ausgabe verwendet. Wenn Sie eine niedrigere PHP-Version als 7.0 verwenden, müssen Sie diese Option festlegen, da Prettier sonst inkompatiblen Code generiert. |
printWidth | 80 | Dasselbe wie in Prettier (siehe Prettier-Dokumente) |
tabWidth | 4 | Dasselbe wie in Prettier (siehe Prettier-Dokumente). Der Standardwert ist 4 basierend auf dem PSR-2 Codierungsstandard. |
useTabs | false | Dasselbe wie in Prettier (siehe Prettier-Dokumente) |
singleQuote | false | Wenn auf "true" gesetzt, werden Zeichenfolgen, die doppelte Anführungszeichen verwenden, sich aber nicht auf die von ihnen hinzugefügten Funktionen verlassen, neu formatiert. Beispiel: "foo" -> 'foo' , "foo $bar" -> "foo $bar" . |
trailingCommaPHP | true | Wenn auf true gesetzt, werden nach Möglichkeit nachgestellte Kommas hinzugefügt.Wenn auf false gesetzt, werden keine nachgestellten Kommas gedruckt. |
braceStyle | "per-cs" | Wenn "per-cs" eingestellt ist, verschiebt Prettier die offene geschweifte Klammer für Codeblöcke (Klassen, Funktionen und Methoden) in eine neue Zeile.Bei der Einstellung "1tbs" verschiebt Prettier die offene Klammer für Codeblöcke (Klassen, Funktionen und Methoden) in dieselbe Zeile. |
requirePragma | false | Dasselbe wie in Prettier (siehe Prettier-Dokumente) |
insertPragma | false | Dasselbe wie in Prettier (siehe Prettier-Dokumente) |
Ein Kommentar // prettier-ignore
schließt den nächsten Knoten im abstrakten Syntaxbaum von der Formatierung aus.
Zum Beispiel:
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
);
wird umgewandelt in
matrix ( 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 );
// prettier-ignore
matrix (
1 , 0 , 0 ,
0 , 1 , 0 ,
0 , 0 , 1
)
Das offizielle Prettier-Plugin für Atom unterstützt Plugins.
Das offizielle Prettier-Plugin für vscode unterstützt Plugins seit Version 1.10.0. Um es zu aktivieren, installieren Sie die Erweiterung und stellen Sie sicher, dass das Plugin lokal (in Ihrem Projektordner) installiert ist.
Visual Studio Code erkennt die von diesem Plugin bereitgestellten Dokumentselektoren möglicherweise nicht. Daher können Sie PHP zu Ihren Dokumentselektoren hinzufügen, indem Sie die folgende Zeile zu .vscode/settings.json
hinzufügen:
"prettier.documentSelectors" : [
" **/*.{js,jsx,ts,tsx,vue,html,css,scss,less,json,md,mdx,graphql,yaml,yml,php} "
]
Möglicherweise müssen Sie PHP auch als Parser in Ihrer Prettier-Konfigurationsdatei deklarieren:
{
"parser" : " php " ,
"plugins" : [ " @prettier/plugin-php " ]
}
Weitere Informationen zu möglichen VS-Code-Lösungen finden Sie in (dieser Ausgabe)[#1730].
yarn add -D prettier @prettier/plugin-php
myproject/node_modules/prettier
{**/*,*}.{js,ts,jsx,tsx,php,json,scss,vue,md}
Hinweis: Durch einfaches Drücken von „Speichern“ wird Ihre aktuelle Datei nicht neu formatiert, es sei denn, die Datei wurde in irgendeiner Weise geändert. Alternativ können Sie die Prettier-Tastenkombination Strg+Alt+Umschalt+P verwenden
Sublime Text-Unterstützung ist über Package Control und das JsPrettier-Plugin verfügbar.
Das offizielle Prettier-Plugin für vim verfügt seit 1.0 über integrierte Unterstützung für Plugin-PHP.
Das Linting-Plugin ALE bietet integrierte Unterstützung für Prettier und seine Plugins. Fügen Sie einfach „prettier“ zu Ihrer Liste der Fixierer hinzu. Zum Beispiel:
let g: ale_fixers = {
' javascript ' : [ ' prettier'],
' json ' : [ ' prettier'],
' php ' : [ ' prettier'],
}
Alternativ wird durch das Hinzufügen des Folgenden zu .vimrc
ein benutzerdefinierter Befehl definiert :PrettierPhp
, der das Plugin unter Beibehaltung der Cursorposition ausführt und es beim Speichern ausführt.
" Prettier for PHP
function PrettierPhpCursor ()
let save_pos = getpos ( " . " )
% ! prettier -- stdin - - parser =php
call setpos ( ' . ' , save_pos)
endfunction
" define custom command
command PrettierPhp call PrettierPhpCursor ()
" format on save
autocmd BufwritePre *.php PrettierPhp
Hilfe zur Integration finden Sie unter docs/recipes/php-cs-fixer
. Code finden Sie auch unter https://gist.github.com/Billz95/9d5fad3af728b88540fa831b73261733
Wenn Sie daran interessiert sind, zur Entwicklung von Prettier für PHP beizutragen, können Sie dem CONTRIBUTING-Leitfaden von Prettier folgen, da alles auch für dieses Repository gilt.
Um es mit einer PHP-Datei zu testen:
yarn
laufen lassen.test.php
.yarn prettier test.php
aus, um die Ausgabe zu überprüfen. Christian Zosel | Evilebot Tnawi |