This updates php-mode with features to make it more friendly to use with PHP 5.4. It is based on the work of:
-
Turadg Aleahmad
-
Aaron S. Hawley
-
Lennart Borgman
And all those mentioned in the ‘Contributors’ section below.
Please email any bugs or feature requests to Ren at lifesnotsimple dot com or submit them as Issues here on the Github page. Also please include the output of php-mode-version in bug reports.
23 December 2011: These days I am doing less and less PHP programming, and thus work on php-mode has slowed down. However I am still accepting bug reports and feature requests, so please do not consider the project dead. I have a list of features I would like to add, but right now I am unsure when I will get around to them. My apologies for the slow updates.
Now php-mode supports syntax highlighting for new keywords which were added as part of PHP 5.4, e.g. those related to traits, such as insteadof. Also supported are the older keywords clone and default.
Every magic constant and predefined constant listed on the official PHP site is included in syntax highlighted.
Traits, interfaces, and namespaces now appear under Imenu listings. Fontification works properly for namespaces as well, so that code like namespace Foo\Bar\Baz no longer looks like a warning. This is also true for namespace aliases, e.g. use <namespace> as <alias>; currently the aliased name is not listed in Imenu, but that will be addressed in the future.
Underscores are treated as ‘symbol constituents’ (in Emacs terminology) so that you can use keys like M-f and M-b to move through the individual parts of a variable name like $foo_bar_baz.
A series of method calls over multiple lines will now be aligned with the -> operator, e.g.:
$object->foo()
->bar()
->baz();
Nested function calls and array() structures now look better by default (or at least in my opinion). Here is an example of the style:
$results = Post::model()->find(
array(
'select' => 'title',
'condition' => 'postID=:postID',
'params' => array(':postID' => 10),
)
);
(Note: The alignment of the => operators is not part of these changes.)
Anonymous functions such as
$greet = function($name) { … };
will now appear on Imenu; in this case the name will be $greet.
By customizing the variable php-executable you can enable Flymake mode in order to see warnings and errors in real-time as you write code.
The key command C-c C-f will search the PHP website for documentation on the word under the cursor. However, if you have a local copy of the PHP documentation then php-mode will try searching that documentation first. All you need to do is customize the variable php-manual-path and give it the path to your copy of the documentation. If php-mode cannot find something locally then it will still fallback on searching the PHP website.
The code for php-mode is covered by the GNU General Public License 3.
In chronological order:
- Juanjo
- Torsten Martinsen
- Vinai Kopp
- Sean Champ
- Doug Marcey
- Kevin Blake
- Rex McMaster
- Mathias Meyer
- Boris Folgmann
- Roland
- Rosenfeld
- Fred Yankowski
- Craig Andrews
- John Keller
- Ryan
- Sammartino
- ppercot
- Valentin Funk
- Stig Bakken
- Gregory Stark
- Chris Morris
- Nils Rennebarth
- Gerrit Riessen
- Eric Mc Sween
- Ville Skytta
- Giacomo Tesio
- Lennart Borgman
- Stefan Monnier
- Aaron S. Hawley
- Ian Eure
- Bill Lovett
- Dias Badekas
- David House
- Tom Willemsen
- Olaf the Viking