EmEditorのPHP構文ファイル(PHP 5.3)

投稿者: shuichi, タグ: ,,, 投稿日時: 2009/03/28 15:19

以前作成したEmEditorのPHP構文ファイルをアップデートした。とりあえずPHP 5.3で追加されるキーワードにも対応してみたつもりだが、足りないかもしれない。

ちなみにこのサーバーのPHPで自動生成しているので、関数名などはサーバーのPHPにロードされている拡張に依存するので注意。

FirefoxのPHPマニュアル検索プラグイン

投稿者: shuichi, タグ: ,,,, 投稿日時: 2006/07/22 13:45

PHPマニュアル検索プラグインからインストールできます。

PHPマニュアル検索

ここからはつまらない説明なので読まなくてもよいです。

Firefox 2では検索プラグインのフォーマットが変更となり、MozSearchというフォーマットが採用されました。MozSearchはAmazonの検索エンジンA9のOpenSearchを簡略化したものです。MozSearchでは検索キーワードの候補をリスト表示するサジェスト機能もサポートされています。MozSearch検索プラグインについてはCreating MozSearch pluginsを参照してください。

上で示した記事をざっと読んでみると簡単に作れそうだったので、PHPマニュアル検索プラグインを作成してみました。PHPマニュアル検索プラグインは探せばいくらでもあると思いますが、今回私が作成したものではいくつかの検索キーワードが追加されており(PHP本家の検索フォームではうまく検索できないキーワードをサポート)、サジェスト機能もサポートしています。またOpenSearch Autodiscoveryに対応しているのでインストールも簡単です。インストールするにはPHPマニュアル検索プラグインを開いてFirefoxの検索バーのドロップダウンリストを表示して「”PHP Manual Search”を追加」をクリックしてください。

検索キーワードに対応するマニュアルページへのリダイレクトとサジェスト機能はこのサーバのPHPとSQLiteを利用しています。PHPのキーワードのデータベースはPHP 5.1.6で自動生成しました。PHPにロードされていたモジュールの有無によってキーワードに対応するマニュアルが存在しない、またはマニュアルは存在するがそれに対応するキーワードがデータベースに登録されていない場合があります。

サジェスト機能はFirefoxからのリクエストに対してキーワードの候補リストをJSONという形式で返すことで実現できます。JSONの処理にはJsphonを使わせてもらいました。以下のURL先を開くと”get”というキーワードに対するキーワードの候補リストがJSON形式で表示されると思います。

http://sks.s101.xrea.com/mozsearch/php/json/?q=get

Firefox 1.5以前のような検索プラグインを作成するのは簡単ですが、サジェスト機能をサポートするとなるとけっこう面倒です。

追記(2006/08/13): キーワードのデータベースに関係のないキーワード(私が定義していたクラスや関数…)が混入していましたので削除しました。

EmEditor用のPHP構文ファイル生成スクリプト(PHP5対応)

投稿者: shuichi, タグ: ,,, 投稿日時: 2005/08/26 20:01

EmEditorのPHP構文ファイル(PHP 5.3)が最新版です。

EmEditor用のPHP構文ファイルを生成するスクリプトをPHPで作ってみました(php.esy generator)。

このスクリプトを実行すると、そのスクリプトが動いているPHP環境から定義されている関数や定数を取得して構文ファイルを生成します。つまり、そのPHPの環境にあった構文ファイルが生成されます。ただし、演算子やロードされていない拡張の関数、クラスのメソッドなどいくらか生成しないキーワードもあります。そのあたりは適当にいじってみてください。

PHPでは変数名は大文字小文字を区別し関数名は区別しないことになっていますが、構文ファイル内では全て大文字小文字を区別する設定にしています。また、正規表現を使うと重くなるので使っていません(そのため間違った色分けがされることがあります)。おまけとしてこのサーバのPHP5で生成した構文ファイルをアーカイブスに置いておきます(php.esy)。

phpCodeBeautifier – PHPのソースコードを整形してくれるソフト

投稿者: shuichi, タグ: ,,,, 投稿日時: 2005/08/18 22:52

phpCodeBeautifierとはPHPのソースコードを整形してくれるソフトです。人それぞれコーディングスタイルは微妙に異なっているので、このソースコードは見づらいなぁと思ったらコレで整形してみるといいかもしれません。コマンド版とGUI版があります。

SimpleXMLで特定の名前空間に属する子要素を取得する

投稿者: shuichi, タグ: ,,, 投稿日時: 2005/08/03 22:04

日本PHPユーザー会のメーリングリストの過去ログを読んでいるとSimpleXMLで特定の名前空間に属する要素を取得する方法について書かれていました。これによるとsimplexml_elementのchildrenメソッドに名前空間URIを引数として渡すと、そのsimplexml_element下の特定の名前空間に属する子要素を取得できるようです。PHPの日本語版マニュアルでは

simplexml_element->children ( void )

と書いてありますが、英語版マニュアルにはちゃんと

simplexml_element->children ( [string nsprefix] )

と書いてありました。また、その下のUser Contributed Notesにもこのことについて書かれていますね。日本語版マニュアルばかり見ていたせいで、こんな方法があるとは気づきませんでした(これからは英語版マニュアルを優先的に見ることにしようかな…)。ちなみにPHP 5.0.4で試してみたところちゃんと動作しました。目的の要素にアクセスするのがちょっと面倒なような気もしますが、PHP 5.0.xの時点でちゃんと動作するのはこの方法しかないような気がするので、しばらくはこの方法を使ってみます。

ちなみに、PHP 5.1では

simplexml_element->registerXPathNamespace( $prefix, $namespaceURI )

というメソッドが追加される予定で、これによりXPathを用いることでよりスマートに目的の要素にアクセスできるようになると思います。早くPHP 5.1の正式版リリースされませんかね。