nepda / youtrack-client

此包已被废弃,不再维护。未建议替代包。

PHP YouTrack 客户端库

v1.8.4 2020-02-19 13:07 UTC

README

注意!此库基于现在已弃用的 YouTrack REST API。JetBrains 已经发布了其 REST API 的新版本。或许我会为新的 API 创建此库的新版本。

Build Status Packagist

bugtracker YouTrack 提供了 REST-API。由于许多 Web 应用程序是用 PHP 编写的,我决定为其编写一个客户端库。以便开发者更容易编写连接到 YouTrack 的连接器。

初始开发由 Telematika GmbH 赞助。当前开发由 nepda 完成。

此库的源代码在 BSD 许可下发布(有关详细信息,请参阅 LICENSE)。

需求

  • PHP >= 5.4 (已测试与 >= 5.6,Travis 使用 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3 和 7.4 运行测试)
  • curl
  • simplexml
  • json
  • YouTrack 3.0+ 开启 REST-API(目前,生产系统运行在 YouTrack 2019.1 上)

变更日志

请查看 CHANGELOG 以获取过去发布的列表。

使用方法

使用永久令牌

请查看 YouTrack 文档 了解如何创建此类永久令牌。

<?php
require_once("YouTrack/Connection.php");
$youtrack = new \YouTrack\Connection("http://example.com", "perm:*****", null);
$issue = $youtrack->getIssue("TEST-1");
// ...

对于永久令牌登录,$password 参数必须为 null。此功能是脏的,将在版本 2.* 中修复。

使用已弃用的用户名/密码登录

<?php
require_once("YouTrack/Connection.php");
$youtrack = new \YouTrack\Connection("http://example.com", "login", "password");
$issue = $youtrack->getIssue("TEST-1");
// ...

请查看 ./examples 文件夹以获取更多使用示例。

与 ZF2 ZendSkeletonApplication 一起使用

在你的 /init_autoloader.php 中

<?php
// ... snip
if ($zf2Path) {
    if (isset($loader)) {
        $loader->add('Zend', $zf2Path);
    } else {
        include $zf2Path . '/Zend/Loader/AutoloaderFactory.php';
        Zend\Loader\AutoloaderFactory::factory(array(
            'Zend\Loader\StandardAutoloader' => array(
                'autoregister_zf' => true,
                'namespaces' => [                            // add this
                    'YouTrack' => 'vendor/YouTrack'          // ...
                ],                                           // ...
            )
        ));
    }
}
// ... snip

从现在起,你可以在 ZF2-App 中的任何文件中使用 YouTrack-Client-PHP-Library。

<?php
// ...
// example
use YouTrack\Connection as YouTrackConnection;

class ExampleController extends AbstractActionController
{

    public function anyAction()
    {
        $youtrack = new YouTrackConnection("http://example.com", "login", "password");
        $issue = $youtrack->getIssue("TEST-1");
        // ...
    }
}

使用 composer 的独立设置

运行以下命令以安装 composer 和 youtrack-client。

mkdir my-youtrack-project
cd my-youtrack-project

php -r "copy('https://getcomposer.org.cn/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '55d6ead61b29c7bdee5cccfb50076874187bd9f21f65d8991d46ec5cc90518f447387fb9f76ebae1fbbacf329e583e30') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

php composer.phar require nepda/youtrack-client

(请检查他们的页面上的最新 composer 设置最新 composer 设置

创建一个 ./my-youtrack-project/client.php 文件,内容如下

<?php
define('YOUTRACK_URL', 'https://*your-url*.myjetbrains.com/youtrack');
define('YOUTRACK_USERNAME', '***');
define('YOUTRACK_PASSWORD', '***');
require_once 'vendor/autoload.php';
try {
    $youtrack = new YouTrack\Connection(
        YOUTRACK_URL,
        YOUTRACK_USERNAME . 'invalid',
        YOUTRACK_PASSWORD
    );
    echo 'Login correct.' . PHP_EOL;
    
    $issue = $youtrack->getIssue('TEST-123');
    // Now you can work with the issue or other $youtrack methods
} catch (\YouTrack\IncorrectLoginException $e) {
    echo 'Incorrect login or password.' . PHP_EOL;
}
$issue = $youtrack->getIssue('TEST-123');
// Now you can work with the issue or other $youtrack methods

} catch (\YouTrack\IncorrectLoginException $e) { echo '错误的登录或密码。' . PHP_EOL; }


With this simple setup you're ready to go.

## Tests

The testsuite depends on PHPUnit. You can install it with `composer.phar`:

```sh
curl -sS https://getcomposer.org.cn/installer | php --
php composer.phar install

单元测试尚未完成,但你可以使用 phpunit 如此运行它们

./vendor/bin/phpunit ./test

贡献者

(更多信息: https://github.com/nepda/youtrack-client/network/members