NonGNU ELPA - php-mode

php-mode Atom Feed

Description
Major mode for editing PHP code
Latest
php-mode-1.28.0.tar (.sig), 2026-Aug-25, 870 KiB
Maintainer
USAMI Kenta <tadsan@zonu.me>
Website
https://github.com/emacs-php/php-mode
Browse ELPA's repository
CGit or Gitweb
Badge

To install this package from Emacs, use package-install or list-packages.

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.
https://www.gnu.org/software/emacs/manual/html_mono/ccmode.html

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.
http://web-mode.org/

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.
https://github.com/emacs-php/php-mode

Old versions

php-mode-1.26.1.tar.lz2024-Sep-1395.5 KiB
php-mode-1.25.1.tar.lz2024-Mar-3194.4 KiB
php-mode-1.25.0.tar.lz2023-Jul-23 101 KiB
php-mode-1.24.3.tar.lz2023-Mar-19 101 KiB
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

News

Changes for PHP Mode by Version

This file documents notable changes to PHP Mode according to the Keep a Changelog principles.

[1.28.0] - 2026-08-25

Added
  • Add php-phpdbg-disassemble-file and php-parse-file commands ([#804])
  • Select an HTML template major mode for PHP files that contain HTML and add per-project control through php-project-php-file-as-template ([#742])
  • Include php-align.el and php-flymake.el in the package ([#820])
  • Add a php-pipe-op face for PHP 8.5's pipe operator ([#821])
  • Add php-ide-set-feature, php-ide-status, and php-ide-eglot-activate commands ([#826])
  • Add phpantom and php-lsp presets to php-ide-lsp-command-alist ([#830])
  • Add php-cc-mode as a forward-compatible alias for the CC Mode based php-mode ([#828])
Changed
  • Add readonly class modifier to [Imenu] ([#802])
  • Add enum support to php-current-class ([#802])
  • Remove hardcoding of implicit paths in php that are not guaranteed to exist ([#803])
  • Make php-mode-maybe honor major-mode-remap-alist ([#816])
  • Let php-project-get-root-dir use project.el backends after PHP-specific markers ([#823])
  • Make php-ide-features accept a bare feature symbol and make php-ide-turn-on a no-op when no features are configured ([#826])
  • Restrict safe directory-local PHP-IDE values and mark command and function alists as risky ([#826])
  • Warn about multiple active LSP clients and make PHP-IDE server and mode alists customizable ([#827])
Fixed
  • Fix array alignment when an empty line is present ([#801])
  • Fix compatibility with upcoming Emacs 32 ([#809])
  • Fix PHP function completion sorting, module filtering, and directory-local validation ([#825])
  • Fix PHP-IDE feature activation, deactivation, repeated enabling, and Phpactor hover cleanup ([#826], [#827])
  • Return a valid project.el representation from php-project-project-find-function ([#823])
  • Fall back to an HTML mode for Blade templates when web-mode is unavailable ([#817])
  • Use one PHP executable source for project and Flymake integrations ([#818])
  • Fix compilation of php-flymake with current Emacs versions ([#829])
Deprecated
  • php-project-use-projectile-to-detect-root is obsolete; Projectile 3 registers itself on project-find-functions, which php-project-get-root-dir now consults automatically
Removed
  • Drop support for Emacs 27.x ([#811])

[1.27.0] - 2024-12-20

Added
  • Support PHP 8.4 property-hooks ([#797])
Changed
  • Improve php-syntax-propertize-extend-region efficiency ([#789], thanks [@phil-s]!)
  • Update php-phpdoc-type-names to support [PHPStan 2.0.4] ([#795])
Fixed
  • Fix Emacs 30 byte-compile errors ([#792])
  • Use when-let* instead of when-let to enhance Emacs 30 compatibility ([#796]) ... ...