php-mode

Last modified: "2003/08/31 15:27:44"

Intro

php-modeは, HATTORI Masashi さんがつくられた, PHP スクリプトを書くためのメジャーモードです。 私は,こんな感じでつかってます。 最新版は、NetInstaller からインストールしましょう。


Table of contents


Install

ファイルの展開

とりあえず付属の readme.txt は、読んでおきましょう。

  1. 服部さんのページから php-mode.lzh を頂く。
  2. ファイルを展開し、そのような場所に置く。
  3. php-mode.l, php-misc.l をバイトコンパイルする。

初期化ファイルの設定

.xyzzy か siteinit.l にこうする。その他、php-mode で使いたい拡張子があれば適当に追加しておく。

(require "php-mode")
(require "php-misc")

(pushnew '("\\.php$" . php-mode) *auto-mode-alist* :test 'equal)
(pushnew '("\\.inc$" . php-mode) *auto-mode-alist* :test 'equal)

関数リファレンスの検索は、http://www.php.net/manual/ja/ だと何故だかうまく検索できなかったので、こうしている。

(setq *php-doc-base-path* "http://www.php.net/manual/ja/html/")

ローカルから検索したい場合は、PHP のサイト から頂いて、こんなことをしておけばいいらしい。パスは適当に。

(setq *php-doc-base-path* "C:/path/to/html/manual/")

HTML Help 用のパスも必要に応じ設定しておく。

(setq *php-html-help-path*
      (merge-pathnames "etc/php_manual_ja.chm" (si:system-root)))

知っていると便利な辺り

キーバインド

キー関数コメント
TABc-indent-lineインデント
RETc-newline-and-indent改行してインデント
ESC C-qindent-sexp式をインデント
ESC TABeditor::php-completionキーワードから補完
F1php-doc-function関数マニュアルを開く
S-F1php-show-html-helpHTML Help を開く
C-c sphp-unit-create-skeltonPHPUnit のスケルトンを生成


キーワードファイルの作成

0.0.1.4 から、keyword.php が付属するようになりました。 この PHP スクリプトを実行することにより、 自分の環境におけるキーワードファイルを生成することができます。 この方法により、PHP のバージョンおよび追加モジュールの有無により発生する 関数名の違いを吸収することができます。 生成されたキーワードファイルは、etc ディレクトリに置きます。


いろいろ

PHP Manual を browser.dll で開く

0.0.1.4 からは、browserex.l をロードしている場合にはそちらで表示するようになりました。

こんな感じでいいみたい。 (要 browserex.l

(in-package "editor")
(defun php-doc-function-open (func)
  (let ((path (concat *php-doc-base-path*
                      (php-doc-function-file func))))
    (bx::navigate path :position bx::XPIS_BOTTOM :size 200)))
(in-package "user")

HTML Help を使う

この機能は、2003/03/17 版の php-misc.l で追加されました。 日本PHPユーザー会 から 頂いた php_manual_ja.chm は、xyzzy/etc/ フォルダに置いておきます。

日本PHPユーザー会 から HTML Help を頂いて使ってみる。

(defun php-show-html-help ()
  (interactive)
  (let ((*html-help-path* "C:/usr/local/man/php_manual_ja.chm"))
    (show-html-help)))
(define-key ed::*php-mode-map* #\C-F1 'php-show-html-help)

まとめてコメントにする&コメントでなくする

C-; で、カーソル行のコメントをトグル、または、セレクションをコメントにする。 これを使っている。

(define-key ed::*php-mode-map* #\C-\;
            #'(lambda () (interactive)
                (encomment-selection-or-comment-toggle-line "//")))

C-M-; で、セレクションをコメントでなくする。 これを使っている。

(define-key ed::*php-mode-map* #\M-\C-\;
            #'(lambda () (interactive)
                (outcomment-selection "//")))

更新履歴

[2003/06/01]
・「キーワードファイルの作成」を追加した。
・browserex を使う辺りを追記した。


(^_^)