【问题标题】:Add custom Phabricator Application添加自定义 Phabricator 应用程序
【发布时间】: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-&gt;getURIMap(),但 $map 总是空的。在我的导航栏中,我无法知道用户点击了哪个项目。

首先,我想知道我做事是否正确。 如果是这样,应该在什么时候定义请求中的 URIMap?

非常感谢您的帮助,希望您有时间再次回答我的问题。

【问题讨论】:

    标签: javascript php phabricator


    【解决方案1】:

    路由说明哪些 URL 去往哪些控制器。所以 '/myapp/' 应该传递给一些 MyAppHomeController.php 文件。我们的代码组织得很好。您可以使用像 Countdown 这样的简单应用程序来指导如何构建 Phabricator 应用程序。

    public function getRoutes() {
      return array(
        '/myapp/' => array(
          '' => 'MyAppHomeController',
      ));
    }
    

    【讨论】:

    • 感谢您的回复,很抱歉回复晚了,但我一直在努力。我编辑了我的问题,以获取更多详细信息..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多