Anonymous
Как использовать ESLint 9.11 с PHP?
Сообщение
Anonymous » 11 окт 2025, 14:51
Раньше я использовал настройку .eslintrc.json с ESLint, используя плагины eslint-plugin-html и eslint-plugin-php-markup для работы с кодом PHP. Вот моя предыдущая настройка:
Код: Выделить всё
{
"env": {
"browser": true,
"es2021": true
},
"extends": "eslint:recommended",
"overrides": [
],
"parserOptions": {
"ecmaVersion": "latest"
},
"rules": {
"no-redeclare": "warn",
"no-unused-vars": "warn",
"no-redeclare": "warn",
"no-extra-semi": "off",
"no-empty": "off",
"no-inner-declarations": "off",
"no-useless-escape": "off"
},
"plugins": [ "html", "php-markup" ],
"settings": {
"php": {
"php-extensions": [ ".php" ],
"markup-replacement": { "php": "", "=": "0" },
"keep-eol": false,
"remove-whitespace": false,
"remove-empty-line": false,
"remove-php-lint": false
}
}
}
Теперь, когда я обновился до ESLint 9.11, этот параметр был автоматически перенесен в eslint.config.mjs, вот мои новые настройки:
Код: Выделить всё
import html from "eslint-plugin-html";
import phpMarkup from "eslint-plugin-php-markup";
import globals from "globals";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended,
allConfig: js.configs.all
});
export default [...compat.extends("eslint:recommended"), {
plugins: {
html,
"php-markup": phpMarkup,
},
files: ["**/*.{php,js,html,htm}"],
languageOptions: {
globals: {
...globals.browser,
},
ecmaVersion: "latest",
sourceType: "script",
},
settings: {
"php-markup": {
"php-extensions": [".php"],
"markup-replacement": {
php: "",
"=": "0",
},
"keep-eol": false,
"remove-whitespace": false,
"remove-empty-line": false,
"remove-php-lint": false,
},
},
rules: {
"no-redeclare": "warn",
"no-unused-vars": "warn",
"no-extra-semi": "off",
"no-empty": "off",
"no-inner-declarations": "off",
"no-useless-escape": "off",
},
}];
Однако я больше не могу анализировать свои PHP-файлы. При существующих настройках ESLint просто выдает действительные встроенные в JS конструкции PHP в виде синтаксических ошибок.
Как заставить PHP работать с ESLint 9.11?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... 1-with-php
1760183487
Anonymous
Раньше я использовал настройку .eslintrc.json с ESLint, используя плагины eslint-plugin-html и eslint-plugin-php-markup для работы с кодом PHP. Вот моя предыдущая настройка: [code]{ "env": { "browser": true, "es2021": true }, "extends": "eslint:recommended", "overrides": [ ], "parserOptions": { "ecmaVersion": "latest" }, "rules": { "no-redeclare": "warn", "no-unused-vars": "warn", "no-redeclare": "warn", "no-extra-semi": "off", "no-empty": "off", "no-inner-declarations": "off", "no-useless-escape": "off" }, "plugins": [ "html", "php-markup" ], "settings": { "php": { "php-extensions": [ ".php" ], "markup-replacement": { "php": "", "=": "0" }, "keep-eol": false, "remove-whitespace": false, "remove-empty-line": false, "remove-php-lint": false } } } [/code] Теперь, когда я обновился до ESLint 9.11, этот параметр был автоматически перенесен в eslint.config.mjs, вот мои новые настройки: [code]import html from "eslint-plugin-html"; import phpMarkup from "eslint-plugin-php-markup"; import globals from "globals"; import path from "node:path"; import { fileURLToPath } from "node:url"; import js from "@eslint/js"; import { FlatCompat } from "@eslint/eslintrc"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, recommendedConfig: js.configs.recommended, allConfig: js.configs.all }); export default [...compat.extends("eslint:recommended"), { plugins: { html, "php-markup": phpMarkup, }, files: ["**/*.{php,js,html,htm}"], languageOptions: { globals: { ...globals.browser, }, ecmaVersion: "latest", sourceType: "script", }, settings: { "php-markup": { "php-extensions": [".php"], "markup-replacement": { php: "", "=": "0", }, "keep-eol": false, "remove-whitespace": false, "remove-empty-line": false, "remove-php-lint": false, }, }, rules: { "no-redeclare": "warn", "no-unused-vars": "warn", "no-extra-semi": "off", "no-empty": "off", "no-inner-declarations": "off", "no-useless-escape": "off", }, }]; [/code] Однако я больше не могу анализировать свои PHP-файлы. При существующих настройках ESLint просто выдает действительные встроенные в JS конструкции PHP в виде синтаксических ошибок. Как заставить PHP работать с ESLint 9.11? Подробнее здесь: [url]https://stackoverflow.com/questions/79013833/how-to-use-eslint-9-11-with-php[/url]