NonGNU ELPA - php-mode


Major mode for editing PHP code
php-mode-1.24.3.tar, 2023-Mar-19, 730 KiB
USAMI Kenta <>
Browse ELPA's repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET php-mode RET

Full description

PHP Mode is a major mode for editing PHP script.  It's an extension
of CC mode; thus it inherits all C mode's navigation functionality.
But it colors according to the PHP syntax and indents according to the
PSR-2 coding guidelines.  It also includes a couple handy IDE-type
features such as documentation search and a source and class browser.

Please read the manual for setting items compatible with CC Mode.

This mode is designed for PHP scripts consisting of a single <?php block.
We recommend the introduction of Web Mode for HTML and Blade templates combined with PHP.

Modern PHP Mode can be set on a project basis by .dir-locals.el.
Please read php-project.el for details of directory local variables.

If you are using a package manager, you do not need (require 'php-mode) in
your ~/.emacs.d/init.el.  Read the README for installation instructions.

Old versions

php-mode-1.24.2.tar.lz2022-Nov-1296.0 KiB
php-mode-1.24.1.tar.lz2022-Sep-0868.9 KiB
php-mode-1.24.0.tar.lz2021-Aug-2976.4 KiB


Changes for PHP Mode by Version

All notable changes of the PHP Mode 1.19.1 release series are documented in this file using the Keep a CHANGELOG principles.

[1.24.3] - 2023-03-19

  • Net feature: php-format ([#731])
    • Add php-format-project and php-format-this-buffer-file commands
    • Add php-format-auto-mode minor mode
  • Experimental feature: php-ide ([#709])
    • Add php-ide-phpactor as simple IDE feature without LSP clients
    • Add php-ide-mode minor mode for binding IDE-like features
  • Fix array indentation broken by commenting out ([#726], [#732])
  • No longer highlights 'link in PHPDoc ([#724])
    • Please use goto-address-prog-mode minor mode

[1.24.2] - 2022-11-13

  • New feature: php-complete
    • Add php-complete-complete-function to autocomplete function names ([#708])
  • New feature: php-flymake
    • Add php-flymake as a flymake backend compatible with Emacs 26 and above ([#718])
  • Supports PHPDoc tags and types for static analysis tools ([#710], [#715], [#716], [#717], thanks to [@takeokunn])
  • Add php-mode-replace-flymake-diag-function custom variable and default activated it ([#718])
  • Add php-mode-debug-reinstall command to help users who update Emacs themselves ([#721])
  • Make continued expressions inside lists (arguments and arrays, etc.) have the same indent width as outside the list ([#703])
  • (internal) Improved readability of test failures about indentation ([#707])
  • php-doc-annotation-tag inherits font-lock-doc-markup-face if defined in Emacs 28 ([#711])
  • Make php-mode-version function include a Git tag and revision ([#713])
    • Like "1.23.4-56-xxxxxx" for example.
  • Change php-phpdoc-type-keywords to php-phpdoc-type-names to avoid confusion ([#717])
  • Make php-flymake-php-init append to flymake-allowed-file-name-masks only in legacy Flymake ([#718])
  • Make obsolete php-mode-version-number contstant variable ([#712])
    • (php-mode-version :as-number t) is provided for use cases comparing as versions, but generally SHOULD NOT be dependent on the PHP Mode version.
  • Make obsolete php-mode-disable-c-mode-hook customize variable ([#718])
  • Remove php-mode-disable-c-auto-align-backslashes as it doesn't make sense and is always disabled
  • Removed invalid definitions that caused errors in some expressions ([#704])

... ...