如何配置emacs进行正确的PHP开发?

我目前在emacs中为 PHP开发的设置有各种不足之处.我经常使用混合模式的html和PHP.我想让模式能够识别我所处的上下文和格式格式.我特别感兴趣的是适当的标签.这是我最重要的功能.正确的着色会很好,但是如果它在一段时间内混乱就行了.

我目前在MacOS X的Emacs 24.3中使用多网页模式和认的PHP模式.

最令人沮丧的问题之一是结合heredoc语法:echo<<我当前的系统不认识到这个语法不需要标签.我通常会得到如下警告:

Indentation fails badly with mixed HTML/PHP in the HTML part in
plaín `PHP-mode'.  To get indentation to work you must use an
Emacs library that supports 'multiple major modes' in a buffer.
Parts of the buffer will then be in `PHP-mode' and parts in for
example `html-mode'.  KNown such libraries are:
    mumamo,mmm-mode,multi-mode
You have these available in your `load-path':
    mumamo

我已经尝试过使用mumao / nxhtml,但没有给我想要的结果.在某些方面更糟糕.我真的非常感谢任何人们为获得emacs的工作PHP开发环境设置的提示.

我使用web模式( http://web-mode.org/)混合HTML / PHP文件PHP模式为纯PHP文件.最新版本的PHP-mode还推荐使用混合HTML / PHP文件的Web模式: https://github.com/ejmr/php-mode#avoid-html-template-compatibility.

不同于其他模式,如mmm模式,mumamo或多网络模式,尝试将不同的行为应用于缓冲区的不同部分,Web模式了解可与HTML混合的所有可用语法/模板.你也可以使用web模式来混合HTML文件/模板,如Twig,Django,ERB …实际上我使用web模式来涉及到HTML.

一个PHP模板的抓住:其他模板系统有不同的文件扩展名,所以很容易自动切换模式,但PHP模板通常使用相同的.PHP扩展名;所以我必须通过文件夹进行切换,有时手动调用M-x Web模式.这是我目前的配置:

(defun add-auto-mode (mode &rest patterns)
  (mapc (lambda (pattern)
          (add-to-list 'auto-mode-alist (cons pattern mode)))
        patterns))

(add-auto-mode 'web-mode
               "*html*" "*twig*" "*tmpl*" "\\.erb" "\\.rhtml$" "\\.ejs$" "\\.hbs$"
               "\\.ctp$" "\\.tpl$" "/\\(views\\|html\\|templates\\)/.*\\.PHP$")

BTW,尝试分离您的PHP文件和模板,并保持混合的HTML / PHP文件尽可能简单(重构长PHP块到纯文件中的功能).代码将更容易阅读/遵循.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...