VSCode Prettier formatiert PHP nicht

Lesezeit: 4 Minuten

Also habe ich vscode mit Prettier eingerichtet, aber es formatiert keine .php-Dateien. .html-Dateien funktionieren gut mit Prettier. Wenn ich also eine .php mit HTML-Code habe, wird sie anders formatiert, weil ich Beautify als letzte Option verwende.

Wie kann ich dafür sorgen, dass Prettier .php-Dateien automatisch formatiert und den HTML-Code in .php genauso formatiert wie .html-Dateien?

settings.json

{
  "sync.autoDownload": true,
  "sync.autoUpload": true,
  "sync.forceDownload": true,
  "sync.forceUpload": true,
  "workbench.iconTheme": "vscode-icons",
  "sync.gist": "715bf022af486e449cae9313183b9a56",
  "sync.quietSync": true,
  "typescript.updateImportsOnFileMove.enabled": "always",
  "window.zoomLevel": 0,
  "vetur.format.defaultFormatter.js": "vscode-typescript",
  "vetur.format.defaultFormatter.ts": "vscode-typescript",
  "eslint.codeActionsOnSave.mode": "all",
  "workbench.colorTheme": "Atom One Dark",
  "beautify.language": {
    "html": ["php", "blade"]
  },
  // These are all my auto-save configs
  "editor.formatOnSave": true,
  // turn it off for JS and JSX, we will do this via eslint
  "[javascript]": {
    "editor.formatOnSave": false
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false
  },
  // tell the ESLint plugin to run on save
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  },
  // Optional BUT IMPORTANT: If you have the prettier extension enabled for other languages like CSS and HTML, turn it off for JS since we are doing it through Eslint already
  "prettier.disableLanguages": ["javascript", "javascriptreact"],
  "php.validate.executablePath": "C:\\xampp\\php\\php.exe"
}

.eslintrc.json

{
  "extends": ["airbnb", "prettier", "prettier/react"],
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2020,
    // Can I remove these now?
    "ecmaFeatures": {
      "impliedStrict": true,
      "classes": true
    }
  },
  "env": {
    "browser": true,
    "node": true,
    "jquery": true,
    "jest": true
  },
  "rules": {
    "no-debugger": 0,
    "no-alert": 0,
    "no-await-in-loop": 0,
    "no-return-assign": ["error", "except-parens"],
    "no-restricted-syntax": [
      2,
      "ForInStatement",
      "LabeledStatement",
      "WithStatement"
    ],
    "no-unused-vars": [
      1,
      {
        "ignoreSiblings": true,
        "argsIgnorePattern": "res|next|^err"
      }
    ],
    "prefer-const": [
      "error",
      {
        "destructuring": "all"
      }
    ],
    "arrow-body-style": [2, "as-needed"],
    "no-unused-expressions": [
      2,
      {
        "allowTaggedTemplates": true
      }
    ],
    "no-param-reassign": [
      2,
      {
        "props": false
      }
    ],
    "no-console": 0,
    "import/prefer-default-export": 0,
    "import": 0,
    "func-names": 0,
    "space-before-function-paren": 0,
    "comma-dangle": 0,
    "max-len": 0,
    "import/extensions": 0,
    "no-underscore-dangle": 0,
    "consistent-return": 0,
    "react/display-name": 1,
    "react/no-array-index-key": 0,
    "react/react-in-jsx-scope": 0,
    "react/prefer-stateless-function": 0,
    "react/forbid-prop-types": 0,
    "react/no-unescaped-entities": 0,
    "jsx-a11y/accessible-emoji": 0,
    "react/require-default-props": 0,
    "react/jsx-filename-extension": [
      1,
      {
        "extensions": [".js", ".jsx"]
      }
    ],
    "radix": 0,
    "no-shadow": [
      2,
      {
        "hoist": "all",
        "allow": ["resolve", "reject", "done", "next", "err", "error"]
      }
    ],
    "quotes": [
      2,
      "single",
      {
        "avoidEscape": true,
        "allowTemplateLiterals": true
      }
    ],
    "prettier/prettier": [
      "error",
      {
        "trailingComma": "es5",
        "singleQuote": true,
        "printWidth": 80
      }
    ],
    "jsx-a11y/href-no-hash": "off",
    "jsx-a11y/anchor-is-valid": [
      "warn",
      {
        "aspects": ["invalidHref"]
      }
    ],
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn"
  },
  "plugins": ["html", "prettier", "react-hooks"]
}

  • Ich verwende die Methode Prettier: Format Selection für isolierte Teile von gemischtem HTML/PHP mit besserem Erfolg.

    – wp78de

    9. August 2020 um 3:26 Uhr

Core Prettier unterstützt kein PHP1, und damit auch nicht das Plugin für VSCode/VSCodium. Zum Glück scheinen die Designer von Prettier daran gedacht zu haben und ein Plugin-System implementiert zu haben2.

Laut hübscher-vscode repo, alles, was Sie tun müssen, um ein Plugin zu verwenden, ist, es zu Ihrem hinzuzufügen und schöner zu machen package.json3

Für die PHP-Unterstützung müsste Ihre package.json also Folgendes enthalten:

{
  "devDependencies": {
    "@prettier/plugin-php": "0.14.3",
    "prettier": "2.0.5"
  }
}

  • Dies funktioniert wahrscheinlich, wenn Sie nur haben .php Dateien ohne html. Das habe ich leider mitbekommen .php Dateien mit HTML können nicht mit hübscher formatiert werden.

    – Dewey

    4. August 2020 um 13:57 Uhr

  • Wenn ich den von Ihnen gefundenen Fehler richtig gelesen habe, wird PHP formatiert, aber nicht HTML. Angenommen, die Lösung, die Sie bevorzugen würden, besteht darin, Ihr PHP von Ihrem HTML zu trennen.

    – Fredrik

    4. August 2020 um 16:08 Uhr

Führen Sie dies im VSC-Terminal aus, wenn Sie bereits hübschere installiert haben

npm install --global prettier @prettier/plugin-php

Ich habe es geschafft, PHP-Dateien mit HTML darin zu formatieren

  • Es funktioniert nicht

    – Merkur

    21. Januar 2022 um 19:27 Uhr

Leider gibt es keine Unterstützung für .php-Dateien mit HTML:
https://github.com/prettier/plugin-php/issues/845

Benutzeravatar von Alexis MASSON
Alexis MASSON

Ich hatte das gleiche Problem und habe es gelöst, indem ich alle meine Erweiterungen deaktiviert habe: Das passiert diese Erweiterung

Aura-Komponenten für Visual Studio Code

ließ meine PHP-Code-Farben verschwinden. Diese Erweiterung ist jedoch Teil des “offiziellen” Salesforce Extension Pack…

INSTALLIEREN SIE DIESE ERWEITERUNG NICHT DIREKT. Installieren Sie stattdessen das vollständige Salesforce Extension Pack.

Wenn es helfen könnte, überprüfen Sie Ihre Erweiterungen !!

Zakys Benutzeravatar
Zaky

Es ist Arbeit !

Schöner für HTML-, CSS- und JavaScript-Dateien

ändern Sie Ihre settings.json

  "editor.defaultFormatter": "esbenp.prettier-vscode",
  // add this code 
  "[php]": {
      "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
  }

Die Einstellungen verwenden Intelephense als Formatierer für PHP-Dateien und Prettier als Formatierer für alle anderen Dateien.

Jetzt verwende ich Umschalt + Alt + F, um die Dateien wie alle anderen zu formatieren.

Wenn Sie nicht wissen, wie Sie setting.json öffnen können, sehen Sie: Ich drücke normalerweise nur [ctrl] + [,] , um zu den Einstellungen zu gelangen, und klicken Sie dann auf das Symbol „Einstellungen öffnen (JSON)“, das in der oberen rechten Ecke unter der Titelleiste angezeigt wird. Hier ist eine weitere Option … VS-Code: Wie öffne ich die Datei settings.json? Wie kann ich die Datei „settings.json“ von Visual Studio Code öffnen?

1440580cookie-checkVSCode Prettier formatiert PHP nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy