# 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](https://keepachangelog.com/) principles.

## Unreleased

### 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])

[Imenu]: https://www.gnu.org/software/emacs/manual/html_node/emacs/Imenu.html
[#802]: https://github.com/emacs-php/php-mode/pull/802
[#803]: https://github.com/emacs-php/php-mode/pull/803

## [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])

### Removed

 * Drop support for Emacs 26 ([#788])

[@phil-s]: https://github.com/phil-s
[PHPStan 2.0.4]: https://github.com/phpstan/phpstan/releases/tag/2.0.4
[#788]: https://github.com/emacs-php/php-mode/pull/788
[#789]: https://github.com/emacs-php/php-mode/pull/789
[#792]: https://github.com/emacs-php/php-mode/pull/792
[#795]: https://github.com/emacs-php/php-mode/pull/795
[#796]: https://github.com/emacs-php/php-mode/pull/796
[#797]: https://github.com/emacs-php/php-mode/pull/797

## [1.26.1] - 2024-09-13

### Added

 * Add `php-base-mode` which is the base of php related modes ([#772])
   * `php-base-mode` is designed as a common parent mode for `php-mode` ~~and [`php-ts-mode`](https://github.com/emacs-php/php-ts-mode)~~.

### Changed

 * Make `php-mode` inherit from `php-base-mode` instead of `c-mode` ([#772])
 * Modify indentation of [PEAR Coding Standards] ([#774], [#777])
   * No longer overindent it by default, since we don't see any mention in the coding style that it should hang `.`. (refs [#227] and [#229])
   * **If you have any feedback on PEAR style, please let us know in [the discussion #776][#776].**
 * Remove `$` from face names for interoperability with treesit ([#780], [emacs-php/php-ts-mode#68])
   * `php-$this` → `php-this`
   * `php-$this-sigil` → `php-this-sigil`
 * Add `php-function-call-standard` face inherit `font-lock-function-call-face` on Emacs 29.1 and above ([#782], thanks [@bricka]!)
 * Add `-tranditional` suffix to the `php-*-call` faces.
   * `php-function-call` → `php-function-call-traditional`
   * `php-method-call` → `php-method-call-traditional`
   * `php-static-method-call` → `php-static-method-call-traditional`
 * Add variables for the `php-function-call`, `php-method-call`, and `php-static-method-call` faces, defaulting to the `-traditional` face.
 * Changes how php-syntax-propertize-rules are applied for the first time. ([#785] and [#786])
   * This change is expected to make heredoc and attribute coloring more stable and reduce flicker.

### Removed

 * Remove `php-mode-disable-c-mode-hook` custom variable and `php-mode-neutralize-cc-mode-effect` function ([#775])
   * `php-mode` no longer inherits `c-mode`, so this variable won't work.

[#227]: https://github.com/emacs-php/php-mode/pull/227
[#229]: https://github.com/emacs-php/php-mode/pull/229
[#772]: https://github.com/emacs-php/php-mode/pull/772
[#774]: https://github.com/emacs-php/php-mode/issues/774
[#775]: https://github.com/emacs-php/php-mode/pull/775
[#776]: https://github.com/emacs-php/php-mode/discussions/776
[#777]: https://github.com/emacs-php/php-mode/pull/777
[#780]: https://github.com/emacs-php/php-mode/issues/780
[#782]: https://github.com/emacs-php/php-mode/issues/782
[#785]: https://github.com/emacs-php/php-mode/issues/785
[#786]: https://github.com/emacs-php/php-mode/pull/786
[@bricka]: https://github.com/bricka
[emacs-php/php-ts-mode#68]: https://github.com/emacs-php/php-ts-mode/pull/68
[PEAR Coding Standards]: https://pear.php.net/manual/en/standards.php
...
...
