【发布时间】:2016-02-18 02:19:06
【问题描述】:
我正在尝试将自定义应用程序添加到我的 phabricator。目前,我只以最简单的方式扩展了PhabricatorApplication class,并将我的文件放到了phabricator/src/extensions 目录(as explained here)中。
这是我的简单应用程序代码:
<?php
final class MyApp extends PhabricatorApplication {
public function getName() {
return pht('MyApp');
}
public function getBaseURI() {
return '/MyApp/';
}
}
?>
我可以固定我的新应用程序并单击它,但问题是我找不到如何将其链接到另一个网页(例如 myPhabricator.com/MyApp/MyCustomAppPage强>)
我知道 Phabricator 目前使用 Javalin JS framework,它没有在任何地方记录,对于新手来说很难使用。我怎样才能简单地将我的 phabricator 中新添加的“MyApp”按钮链接到一个简单的 HTML 页面,该页面将位于我的扩展目录中。
我看到PhabricatorApplication class的getRoutes()方法,但不明白它是怎么工作的。
感谢您的帮助
[编辑 1]
我按照你在第一个答案中告诉我的做了:我查看了倒计时应用程序(以及所有 UIExample 应用程序)并开始制作我自己的应用程序。我开始了解事情是如何运作的,尽管我确实有一个我不明白的问题。
我创建了一个侧边导航栏,其中包含我创建的父类的所有不同子类,它扩展了 AphrontView。 问题是当我单击导航栏中的项目时,我的控制器似乎无法正常工作。 据我了解,应该向它发送一个请求,其中包含某个 URIMap 变量,这将使我知道在导航栏中单击了哪个项目。
但我的似乎总是空的:在我的控制器的 handleRequestMethod 中,第一行是$map = $request->getURIMap(),但 $map 总是空的。在我的导航栏中,我无法知道用户点击了哪个项目。
首先,我想知道我做事是否正确。 如果是这样,应该在什么时候定义请求中的 URIMap?
非常感谢您的帮助,希望您有时间再次回答我的问题。
【问题讨论】:
标签: javascript php phabricator