添加自定义噬菌体应用程序
Add custom Phabricator Application
我正在尝试将自定义应用程序添加到我的phabricator。目前,我只以最简单的方式扩展了PhabricatorApplication类,并将我的文件放在phabricator/src/extensions目录中(如此处所述)。
这是我的简单应用程序代码:
<?php
final class MyApp extends PhabricatorApplication {
public function getName() {
return pht('MyApp');
}
public function getBaseURI() {
return '/MyApp/';
}
}
?>
我可以固定我的新应用程序,然后单击它,但问题是我找不到如何将其链接到另一个网页(例如 myPhabricator.com/MyApp/MyCustomAppPage)
我知道Phabricator目前使用Javalin JS框架,它没有在任何地方记录,对于新手来说很难使用。例如,我如何简单地将我的phabricator中新添加的"MyApp"按钮链接到一个简单的HTML页面,该页面将位于我的扩展目录中。
我看到了PhabricatorApplication类的getRoutes()方法,但不明白它是如何工作的。
谢谢你的帮助
[编辑1]
我按照您在第一个答案中告诉我的那样做了:我查看了倒计时应用程序(以及所有 UIExample 应用程序)并开始制作自己的应用程序。我开始掌握事情是如何运作的,尽管我确实有一个我不明白的问题。
我创建了一个侧面导航栏,其中包含我创建的父类的所有不同子类,它扩展了AphrontView。问题是当我单击导航栏中的项目时,我的控制器似乎无法正常工作。据我了解,应该向它发送一个请求,其中包含某个 URIMap 变量,这将使我知道在导航栏中单击了哪个项目。
但是我的似乎总是空的:在我的控制器的handleRequestMethod中,第一行是$map = $request->getURIMap()
,但$map总是空的。我无法知道用户在我的导航栏中单击了哪个项目。
首先,我想知道我做事的方式是否正确。如果是这样,应该在什么时候定义来自请求的 URIMap?
非常感谢您的帮助,希望您有时间再次回答我的问题。
路由表示哪些 URL 转到哪些控制器。所以'/myapp/'应该传递给某个MyAppHomeController.php文件。我们的代码组织得相当好。您可以使用像Countdown这样的简单应用程序作为如何构建Phabricator应用程序的指南。
public function getRoutes() {
return array(
'/myapp/' => array(
'' => 'MyAppHomeController',
));
}
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- 在Web应用程序中使用Highcharts javascript
- angularjs+rails应用程序中未显示模板
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 在phonegap应用程序内部重定向不起作用
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- Node.js正在更改应用程序以使用集群模块
- 在openshift node js应用程序中获取请求
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 添加自定义噬菌体应用程序