PHPまわり


開発用のサーバでPHPまわりの設定をしました。


まず
LAMPスタックを導入してもPHPCLI環境や開発環境は入っていないので、インストールします。

$ apt-get install php5-cli php5-dev
そして/usr/lib/php5以下にPEAR,ZendFramework,Smarty,SimpleTestを設置します。
PEARの導入については以前の記事で書いたので特に書きません。
その他はどれもwgetで取得して展開するのみです。

$ cd /usr/lib/php5
// ZendFramework
$ sudo wget []http://framework.zend.com/releases/ZendFramework-1.7.8/ZendFramework-1.7.8-minimal.tar.gz[]
$ sudo tar zxvf ZendFramework-1.7.8-minimal.tar.gz
$ sudo mv ZendFramework-1.7.8-minimal/library/Zend ./
$ sudo rm -rf ZendFramework-1.7.8-minimal ZendFramework-1.7.8-minimal.tar.gz

// Smarty
$ sudo wget []http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.tar.gz[]
$ sudo tar zxvf Smarty-2.6.19.tar.gz
$ sudo mv Smarty-2.6.19/libs/ ./Smarty
$ sudo rm -rf Smarty-2.6.19 Smarty-2.6.19.tar.gz

// SimpleTest
$ sudo wget []http://nchc.dl.sourceforge.net/sourceforge/simpletest/simpletest_1.0.1.tar.gz[]
$ sudo tar zxvf simpletest_1.0.1.tar.gz
$ sudo rm -f simpletest_1.0.1.tar.gz

PHPのinclude_pathには/usr/lib/php5と/usr/lib/php5/PEAR/PEARを指定しておきます。

$ vim /etc/php5/apache2/php.ini(と /etc/php5/cli/php.ini)
// 487行目付近
include_path = ".:/usr/lib/php5:/usr/lib/php5/PEAR/PEAR"$
次にZendOptimizereAcceleratorをインストールします。


次にせっかくPHPの関数名が長いということもありvimに関数の補完を行うよう設定します。

// 関数辞書の生成
$ mkdir ~/.vim/dict
$ php -r '$f=get_defined_functions();echo join("\n",$f["internal"]);' \ | sudo sort > ~/.vim/dict/php_functions.dic

// vimへの登録
$ vim ~/.vimrc
// if has("autocmd")構文があればその前に記述する
autocmd FileType php :set dictionary+=~/.vim/dict/php_functions.dict
set complete+=k

これでPHPの関数がctrl + Pで補完されるようなりました。


※追記
VIMでオムニ補完という入力補完が行われるそうです。
どうやら/usr/share/vim/vimXX/autoload(XXはバージョン)以下にあるファイルを元に補完されるようです。
開発サーバの環境ではPHPRuby、HTML、CSSJavaScriptとかです。
C言語Pythonは文法のみ補完されて、関数が補完されないと思っていたら、
そのautoload/以下のファイルでC言語Python用のものを見ても関数定義が書かれていませんでした。
ここら辺はプラグインとかで拡張できるんだと思います。今度また調べます。