
Webアプリケーションを使用する場合、どのコントローラー/モジュール/スクリプトがリクエストを処理するかをURLだけで判断するのは難しい場合があります。 これは特に、新しい従業員が開発チームに登場し、アプリケーションアーキテクチャとルーティング構成を調査する必要がある場合に当てはまります。
原則として、開発環境でプラグイン/モジュールがファイル名またはコントローラークラスを表示するアプリケーション(SymfonyのProfilerなど)に接続されている場合、または何らかの種類のデバッガーが使用されている場合、この問題は解決されます。 それでも、ブラウザのページから直接ソースに移動する方がはるかに便利です。 AdMeでこれをどのように実装したかについては、猫の下で読んでください。
すべては、既製のソリューションを見つけるのではなく、ZendFramework 1用の小さなProfilerプラグインを作成することから始まりました(当社のプロジェクトで使用されています)。 開発環境では、このプラグインはページの下部に、コントローラーの名前やアクションなどの有用な情報を含む固定ブロックを追加します。 AJAXスレッドの場合、この情報はHTTPヘッダーに書き込まれます。
このアイデアは私のマネージャー
PavelRadaevによって開発され、同志
onflappが開発した興味深い
LinCastorツールを使用することを提案しました。 このツールを使用すると、独自のURLスキーム(たとえば、znd-file://)を定義し、そのようなリクエストを処理するアプリケーションを指定できます。また、重要なことに、アプリケーションにURLを渡すときにこのスキームのプレフィックスを削除できます。 このツールはMac OS用に作成されていますが、他のOSの場合は、類似物を見つける(または開発する)ことができると思います。
そこで、znd-file URLスキームを定義し、Zend Studioを処理するためのアプリケーションを指定し、プレフィックスの削除を設定しました。
その結果、フォームのURL
znd-file:///Users/linar/Desktop/dev/test.php
に変換されます
file:///Users/linar/Desktop/dev/test.php
Zend Studioに転送され、Zend StudioはこのURLでファイルを完全に開きます。

これで、ローカルバージョンのすべての開発者に対してファイルが正常に開くように、コントローラーファイルへのリンクを登録するためにProfilerプラグインに残ります。 私たちの場合、それは単純であることが判明しました。 すべての開発者にとって、すべてのプロジェクトのローカルバージョンは、プロジェクトドメイン名を持つサブフォルダーの同じ作業フォルダーにありました。 したがって、この作業フォルダーへのシンボリックリンク/ phpdevを作成しただけで、ファイルリンクは次のようになり始めました。
znd-file:///phpdev/project.domain/src/AdMe/Article/Controller/Index.php
そして出来上がり、ブラウザからコントローラファイルへの切り替えが機能します。 Zend StudioがURLを通じて、さらにはシンボリックリンクを通じても開いているという事実にもかかわらず、プロジェクト内でファイルを開くのは嬉しい驚きでした。
また、使用されているすべてのビューへのリンクがプラグインに追加されました。 それがどのように見えるかは上の写真で見ることができます。 非常に便利であることが判明したため、近い将来、JavaScript / jQueryを使用するか、ブラウザプラグインを使用して、ajaxリクエストのヘッダーの処理を記述することが決定されました。
もちろん、ある程度までは、他のIDEや他のスクリプトプログラミング言語にも同様のツールを実装できます(そして、コンパイルした言語を変更する場合は、ソースへのリンクを正しく構成する必要があります)。