Extra features for Emacs `php-mode'.
Emacs Lisp
Pull request Compare This branch is 14 commits ahead, 40 commits behind arnested:develop.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


PHP Extras

A small collection of extra features for Emacs php-mode.

Currently includes:

  • php-extras-insert-previous-variable
  • php-extras-eldoc-documentation-function
  • Auto complete source for PHP functions based on php-extras-eldoc-documentation-function


When variable names get too long or you have to juggle a lot of nested arrays it gets cumbersome to repeat the same variables over and over again while programming.

In example you have the code below and want to debug what value you actually parsed to some_function(). You have point at ^ and now all you have to write is repeat the variable...


Enter php-extras and you just hit C-c C-$ and it will insert the previous variable (including array indexes).

If you prefix the command (i.e. C-u 3 C-c C-$) it will search back 3 variables and with negative prefix arguments it will search forward.


eldoc-mode is a nice minor mode that ships with Emacs. It will display a function tip in the mini buffer showing the function and its arguments for the function at point. That is if you provide a function to look up the function definition.

php-extras provides such a function for looking up all the core PHP functions.

The function php-extras-generate-eldoc will download the PHP manual from php.net and extract the function definitions (slow) and store them in a hash table on disk for you. Your Emacs must be build with libxml2 and Emacs should be able to find the gzip executable somewhere along its exec-path.

If you install php-extras as an ELPA package the hash table is already generated for you.

Auto complete source for PHP functions based

The PHP functions extracted for php-extras-eldoc-documentation-function is also setup as a source for auto-complete.

auto-complete already comes with a dictionary of PHP functions and will auto complete on them using the ac-source-dictionary.

The source we provide with php-extras will hopefully be more up to date.


The easiest way to install php-extras is probably to install it via the ELPA archive at Marmalade.

ELPA (package.el) is part of Emacs 24. For Emacs 23 see Marmalade for installation instructions.

The version number of the ELPA package will have the date appended when the package was build and hence the date the documentation got extracted from php.net.

Manual installation

I really recommend that you install this package via ELPA as described above.

If you insist on installing it manually try to follow this recipe:

  • Place the folder with the files somewhere on your disk.

  • Add this to your .emacs / .emacs.d/init.el:

(add-to-list 'load-path "/somewhere/on/your/disk/php-xtras")
(eval-after-load 'php-mode
  (require 'php-extras))
  • Either restart your Emacs or at evaluate the add-to-list expression.

  • Generate the hash table containing the PHP functions:

    M-x load-library RET php-extras-gen-eldoc RET

    M-x php-extras-generate-eldoc RET

    Notice: Your Emacs must be build with libxml2 and Emacs should be able to find the gzip executable somewhere along its exec-path.

Development of PHP Extras

PHP Extras is developed at GitHub. Feature requests, ideas, bug reports, and pull request are more than welcome!