Komodo Editが便利だけど微妙な件2008年07月01日 04時36分39秒

ひっさびさ(でもないか、図面の紹介だけど先月書いてたわ)のZFネタ。といってもツールというか、開発環境のお話なんですが。

文句言ってたころから久しく

昨年の終わりごろに、こんな感じでがっかりしていたオープンソースIDE「Open Komodo」、その記事から程なく「Komodo Edit」に統合され、着実にバージョンアップされていた。

んで、春ごろにMOONGIFTで紹介されたころから、まっとうに使えるようになってきていて(確か4.3ごろだったか)、少し触ってみてはいたのだが、先週リリースされた4.4からdara-j内で俄然使える予感がしてきた。

Zend Framework Support: Zend framework autocompletion and a new Zend MVC project template have been added.
そう、Zend Frameworkがサポートされたためだ。

プロジェクトテンプレート、試してみるべ。

個人的にはオレオレライブラリ込みの雛形をsvnで管理して、新しいアプリケーションを作るときにエクスポートして使っているため、最初はプロジェクトテンプレートにはあまり魅力を感じず、オートコンプリートの恩恵(+viキーバインド)のみの利用で、「やっぱproject.vimのがいいやね」とか思っていたのだが、せっかくプロジェクトテンプレートを用意してくれているので試してみることにした。

何はともあれ、Komodo Editを立ち上げてみる(インストール手順は、普通にさくっと入るのでは割愛)。

スタートアップ
(クリックで拡大)
うん、4.4 動かしてるのに4.4の宣伝ってどうなんだろう

で、[File] - [New] から、[New Project From Template...]を選択する。

メニュー選択
(クリックで拡大)
するってぇと、図のようにプロジェクト選択ダイアログが表れる。あるある、「Zend_MVC_Project」!
プロジェクトテンプレート選択
(クリックで拡大)
で、保存先のディレクトリとプロジェクト名を決めて「Open」クリック。

そうすると、メインウィンドウに制御が戻る前に、図のようなプロジェクト設定ダイアログが表示される。

プロジェクト設定
(クリックで拡大)
「Project Location」はそのまま先ほど選択したパスでよいとして、「Zend Framework Location」は、ZFのライブラリのトップ(Zendフォルダがあって、同じ階層にAcl.phpやら、Auth.phpやらが設置されているところ)を指定する。このパスを起点に探索してオートコンプリートに利用するのかな?

で、無事にメインウィンドウに制御が戻ると、プロジェクトツリーが図のようにずらずらと並んでいる。

ブートストラップ スクリプト
(クリックで拡大)
このテンプレートから起こしてくれたプロジェクトツリー、dara-jが普段採用している、トップのアプリケーションディレクトリを直接Webに公開しているような構成と違い、publicを仮想ディレクトリとして公開する構成になっている。

また、赤みがかったフォルダは実ディレクトリではなく、プロジェクトファイル(.kpfファイル)内に展開される仮想的なディレクトリなので念のため。

プロジェクトツリー

ここからは、プロジェクトツリーの主要なファイルの説明です。

bootstrap.phpとindex.php

先の図で選択している「bootstrap.php」が名前のとおりディスパッチループの起点スクリプト(拡大するとソースが読めます)。これが直接呼び出されるわけじゃなく、構成の意図としては先ほどの説明どおり public/index.php が起動の取っ掛かりなんだけども、index.phpは単にbootstrap.phpをrequireしているだけ(これまた図を拡大してソース嫁)。

index.php
(クリックで拡大)

アクションコントローラとビュースクリプト

で、 application/controllres下にアクションコントローラ、application/views/scripts 下にコントローラに対応するビュースクリプトを配置するのはZFのスタンダードな形態。

IndexControllerは特に説明するようなこともなく、最低限の実装になってます。

(クリックで拡大)
ビュースクリプトは、ちょっとした実装で動作確認できるよう、ちょっとした実装が含まれている模様。$this->formとかあるので、ZF1.5向けのコードかな?
index.phtml
(クリックで拡大)

余談になるが、アクションコントローラのファイル名規約で「camelCase」って大丈夫なんだろうか?Win上でしか確認してないけど、Winはファイルシステムでレターケースは関係ないので動いちゃうだけかもしれないし。ふむ。

※:4.4.1で修正されたので、最新版ではちゃんとCamelCaseになります。(08.08.04)

その他のディレクトリ

他のディレクトリ(modelsとかviews/filtersとか)はプレースホルダとしてディレクトリがあるだけで、気の利いたスクリプトを設置したりしてくれるわけじゃないけど、自分でビュースクリプトヘルパーとか設置する際に迷わずにすむので、まあありがたい。

また、これはよいなと思ったのは、libraryディレクトリ。先のbootstrap.php内でここをインクルードパスに加えているので、アプリケーション固有のライブラリはどんどんここに設置していける。

慣れていれば自分で同じようなことをするのでなんてことない話なんだけども、こういう工夫は余計なことに頭使わずに済むので特にZF触り始めにはありがたいかも(ただ、個人的に「Zend_Loader::registerAutoload()」はどうかと思うが)。

組み込みマクロとスニペット

さて、長い前振りになってしまったが、今回の記事はこの組み込みマクロとスニペットが便利なことを主張するのが目的だったわけだが。ごめん、それ言いすぎ。

先ほど触れた、赤っぽい「Project」フォルダには、3つのプロジェクトテンプレート組み込みマクロと、4つのスニペットが格納されている。これら、特に「New Controller」「New View」マクロは、動作としてはなんてことないがあるとないとでは作業効率が大違いになると思われる。

New Controller マクロ

New Controller マクロ
(クリックで拡大)
名前から推測つくように、このマクロを使って新しいアクションコントローラをプロジェクトに追加できる。

使い方は至極簡単で、Project/New Controller のアイコンをダブルクリックすると下図のようなコントローラ名入力ダイアログが表示される。

コントローラ名入力ダイアログ
ここではエラーコントローラを追加してみているが、名前を入力し「OK」するとこんな感じでちゃんと application/controllers にerrorController.phpが追加される。
ErrorController
(クリックで拡大)
またも余談になるが、ファイル名が「errorController.php」と camelCase になっているのは別にダイアログで「error」と頭小文字で入力したからではない。また別記事で取り上げるかも知れないが、New Controller マクロの実装で、入力した名前をtoLowerCase() しているため、必ずこうなってしまうのだ。重ね重ね、ファイル名規約的に大丈夫なんだろうか
※:4.4.1で修正されたので、最新版ではちゃんとCamelCaseになります。(08.08.04)

New View マクロ

こちらも名前どおり、新しいビュースクリプトをプロジェクトに追加するマクロ。

New View マクロ
(クリックで拡大)
起動すると、こんな感じで、コントローラ名とアクション名を入力するダイアログが表示されるので、必要なものを入力してOKすれば views/scripts/[コントローラ]/[アクション].phtml が追加される。
ビュースクリプト追加ダイアログ
余談ばっかりで恐縮だがこのダイアログ、コントローラ名がコンボっぽいのだが別にプロジェクト内のコントローラを列挙してくれるわけではない。まぁ既定のダイアログコンポーネントを使っているからこういうインターフェイスなんだろうけど、「おお、コントローラも列挙してくれるんか」って期待しちゃうのが普通だと思うのだが。

で、無事追加されましたと。

error.phtml
(クリックで拡大)

その他(つか、スニペット)

「Project」下にある「Abbreviations」以下にはZF向けのコードスニペットが4つぶら下がっている。

コードスニペット
(クリックで拡大)
まあ、これらもまた名前で想像つくだろうけど、bootstrap/index.phpやアクションコントローラ、ビュースクリプトのコードテンプレートが定義されていて、ダブルクリックすると現在のカーソル位置にコードを展開してくれる。

ただ、BootstrapStub/IndexStubは当然として、ZendController/ZendViewスニペットも単独ではまず起動することはないと思われる。というのも、これらのスニペットはテンプレート変数をマクロ内で置換して使うように設定されており、単独起動しても変数が展開されるわけではないからだ。

で、どのあたりが「微妙」よ?

ここまで長々と、マクロが便利だ何だと書いてきたわけだが、このエントリのタイトルは「Komodo Editが便利だけど微妙な件」。当然微妙に思っている部分があるわけだ。

アクションコントローラのファイル名が微妙

もうすでに書いたけど、IndexControllerクラスを定義するファイル名が「indexController.php」といった具合に、ファイル名規約的に微妙な出力をしてくれる。まぁ探した限りではこれでまずいって記述を見つけたわけではないんだけども、落ち着かん。

※:4.4.1で修正されたので、最新版ではちゃんとCamelCaseになります。(08.08.04)

「ZendView」スニペットが微妙

いや、当然こういうスニペットはありがたいんだけど、「ZendView」スニペットに定義されているDOCTYPE宣言、なぜか2文字目にバックスラッシュが残っていて、これじゃぜんぜん「XHTML 1.0 Strict」じゃないんじゃないかと。 直せばいいだけの話なんだけど、微妙。

ディレクトリ構成が微妙

うーんと、これは個人の好みやスキルの問題もあるんだけど、dara-jが普段使っている環境はポート8080設定の単独EXE起動のApacheだもんで、こういうディレクトリ構成で「public」のみを仮想ディレクトリとして公開した場合、うまいことrewriteできずに「Bad Request」になってしまうんだよね。リライトの定義がうまければ回避できるんだろうけどさ。

また、普通は自分でルータ書いたりしないので、ハナっから.htaccessがついてこないってのもなんとなく微妙。ビュースクリプト側で全部GETパラメータ指定しろと?それともZF1.5の世界ではmod_rewriteなしが標準の実行環境なのか?

まぁ、なんだかんだいっても便利よね

と、くだらないことでちくちくと文句を言ってみたが、やっぱりマクロでコントローラ/ビュースクリプトを追加できるのは大変便利(もちろんオートコンプリートもね)。

デフォルトで提供されるプロジェクトテンプレートが肌に合わないだけで、このマクロは充分利用できるので、今度はそのあたりを記事にしてみようかしら。ちゃんと書くかしら。

Open Komodoが混乱してるげな件2007年12月01日 05時09分14秒

またもZF入門滞ってるのにこんな記事。

まぁたいした話ではないのだが、ちょっと前のエントリで取り上げたOpen Komodoがなんとなく混乱してるっぽい。

前のエントリでOpen Komodoがうまく動かなかったので、同系列(っていっていいのかな)の「Komodo Edit」をちょっとだけ試してみた。こちらはOpen Komodoと違い、なんとか起動できた。こちらの情報にもある通り、2バイトコードを含む名前のフォントが使えないのと、その影響でWin2K環境では日本語が「豆腐」になるのでちみっと困るが。

んで、本題。前回のリリースから10日ほどたつので更新されていないか見に行ってみたら、バナー下の「Downloads」のリンク先がhttp://downloads.openkomodo.com/komodoedit/nightly/latest-trunk/になってやがる。このディレクトリに設置されているファイルも「Komodo-Edit-4.3.0-alpha1-464.msi」やらになってるので、別にファイルは間違ってないけど、なんかおかしくね?

と思っていたら、

Note: Default builds out of the OpenKomodo source tree are now "Komodo Edit" -- because that is what the OpenKomodo builds basically were. Builds called "OpenKomodo" are now deprecated. Subsequent builds and releases of Komodo Edit will be from the open source OpenKomodo tree. Nightlies are available here. See this post to openkomodo-dev for details.
なんてのがあって、どうやらKomodo Editに含まれる「非オープンソース」の部分をはじき出して、Komodo Edit自体をオープンソースにするように計画を変更したらしい(自信なし。だれかこの内容を翻訳して教えてください><)。

This also allows us to reduce from three separate builds of Komodo to only two. ってことは「Open Komodo」の名前なくなるのかなぁ。最初のリリースからわずか10日でこんな自体になるとは。どんな混乱ぷりだよ。

Open Komodoがどうにも使えない件2007年11月22日 22時52分43秒

こんなニュース見つけたんすけど

昨日のマイコミジャーナルでこんなニュースを見かけた。

米ActiveStateは米国時間の20日、オープンソースの統合開発環境「Open Komodo 1.0 Alpha 1」をリリースした。対象プラットフォームはWindowsとLinux、Mac OS Xの3種、ライセンスにはMozilla Public Licenseが適用される。
記事によると、元々は開発元のActiveStateの製品「Komodo IDE」の機能縮小版「Komodo Edit」という無償のエディタ/IDEがあり、それを今回オープンソース化したらしい。

個人的にはマルチプラットフォームはかなりどうでもいいのだが、

スクリプト言語の編集に強みを持ち、PerlやJavaScript、PythonやRubyなど多数の言語をサポートする。
とか(まぁ、イマドキのIDEなら当然だけど)、
Mozilla Frameworkベースで開発され、XPIプラグインによる拡張性を備えるほか、
ってのは魅力じゃない。なので早速試してみることに。

ダウンロード → インストール

マイコミに示されてるリンク先の公式ページへ行き、バナー下のメニューから「Downloads」でダウンロードページへ。

Linux/MacOS X-PPC/MacOS X-x86とならんでWindows向けのmsiがあるのでダウンロード。サイズは26Mちょっとと、少し大きい。

んで、インストールそのものは大して迷うモンじゃないのでそのまま進める。インストール完了ページで「早速起動するか?」とあるので起動してみる。

蟻地獄の開始

んが、早速エラー。なんか、「The plug-in performed an illegal operation.」とか言ってきやがる。無視して進めると起動が進み、メインウィンドウの上に「Code Intelligence」やらいうダイアログがかぶさってなんかやろうとしている。多分自動補間向けの辞書作成だろうな。

これが待てど暮らせど終わらない。つか、windowがリフレッシュされない。CPUもディスクIOもほとんど消費していないのでデッドロックくさい。おいおい。

仕方ないのでプロセスを強制終了して、もう一度起動、またも「The plug-in performed...」と出るが、とりあえず無視

今度は辞書作成がうまくいって、スタートページが表示された。よし。

スタートページ中に「Open Sample Project」のリンクがあるのでクリックしてみると、ウィンドウ左側にプロジェクトツリーが表示され、.plやら.jsやら.phpやら.pyやらがぶら下がっている。

ためしに「html_sample.html」をダブルクリックしてみると、例のエラーがまた出た上、「Komodo was unable to open the file」なんてエラーメッセージが表示され、ファイルが開けない。他のファイルも試してみるがやはり開けない。ワケがわからん

その後、アンインストール→再インストールや、「Python入ってないとダメかしらん」と思ってインストールしてみたりといろいろ試したが一向に状況が変わらない。なんだよ、ソレ。いくらAlphaでもファイル開けないってのはないんじゃない!?

プラグイン判明

起動時に必ずでるエラーをよくよく見直してみると、プラグインがどうにゃらってメッセージなので、なんのプラグインかはわからんけどプラグインディレクトリを探してみることに。

インストールディレクトリ以下の lib\mozillaに「pluginis」があるので中を覗いてみると、「npnul32.dll」と「npscimoz.dll」の2つがあった。

まず「npnul32.dll」を別ディレクトリに移動して起動 → 状況変わらず。

次に「npscimoz.dll」を同様に移動 → エラーでない。ってことで、このプラグインが原因らしい。

しかし解決ならず

ただ、ファイル名がちと気になって調べてみたら、これどうやらScintilla(高機能なオープンソースのテキストエディタコンポーネント。Notepad++なんかにも使われてる)をくるんだヤツらしく、要するにこのIDEのエディタ機能のコアってわけ。

このプラグインはずすと、それこそソース編集なんざできないんじゃない?と思いつつファイル開いてみると、やっぱりファイル開けないし

とりあえず

なんにせよ、あまりにも情報が少なすぎる。日本語のWindowsで動作した実績あるのかはなはだしく疑問(マイコミのスクリーンショットはMacOS Xだし)。まぁ、当面バージョンアップ待ちかな。つか、フリーならKomodo Editでもいいような気が

オマケ情報

プラグインどうにゃらエラーは、[Edit] - [Preferences]の「Fonts and Colors」を選択した瞬間にもがっつり表示される。フォントがらみくさいな。こんな情報もあるし。