jobapis/jobs-common

使您的应用程序与职位API提供商集成变得简单。

2.1.2 2017-01-21 23:16 UTC

This package is auto-updated.

Last update: 2024-09-16 23:17:55 UTC


README

标准化职位板API客户端

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

本软件包使将职位板API集成到您的应用程序变得简单。无论您是想聚合职位板数据,还是想用第三方提供商的职位列表补充您网站的职位列表,或者您能想到的其他任何事情,本软件包(以及下面的API客户端)都可以帮助您。

本软件包符合 PSR-1PSR-2PSR-4PSR-7 标准。如果您发现任何符合性问题,请通过拉取请求发送补丁。

要求

以下版本的PHP得到支持。

  • PHP 5.5
  • PHP 5.6
  • PHP 7.0
  • HHVM

使用方法

本软件包不是单独使用的,而是由以下列出的提供商使用来访问职位板API并收集标准数据格式化的结果。有关创建您自己的职位板提供商的详细信息,请继续阅读!

提供商

每个受支持的职位板都有一个必须扩展此软件包的 AbstractProvider 并实现声明的抽象方法的提供商。

以下提供商可用

官方提供商

我们支持许多官方的职位板服务。

第三方提供商

如果您想支持其他提供商,请将其作为Composer软件包提供,然后在以下链接中引用它们。

这些提供商允许与 jobs-common 不支持的提供商集成。它们可能需要较旧版本,因此如果您注意到这一点,请通过拉取请求帮助它们。

构建您自己的提供商

可以通过克隆现有软件包的布局来创建新的提供商。当选择软件包名称时,请不要使用 joabpis 供应商前缀,因为这表示它是官方支持的。

您应使用自己的用户名作为供应商前缀,并在软件包名称前添加 jobs- 以清楚地说明您的软件包与 Jobs Common 兼容。例如,如果您的 GitHub 用户名是 prometheus,并且您正在实现 Dice.com 职位列表API,那么一个好的Composer软件包名称将是 prometheus/jobs-dice

实现自己的提供商

如果您正在使用的是不支持或由现有软件包支持的职位板服务,实现自己的非常简单。只需扩展 JobApis\Jobs\Client\Providers\AbstractProviderJobApis\Jobs\Client\Queries\AbstractQuery 并在每个中实现所需的抽象方法即可。

// JobApis\Jobs\Client\Providers\AbstractProvider

abstract public function createJobObject($payload);

abstract public function getDefaultResponseFields();

abstract public function getListingsPath();


// JobApis\Jobs\Client\Queries\AbstractQuery

abstract public function getBaseUrl();

abstract public function getKeyword();

这些抽象方法中的每个都包含一个docblock,定义了它们的期望和典型行为。扩展这些类后,您可以简单地遵循上面的示例,使用您新的 Provider

创建的每个职位对象将自动设置 sourcequery,基于传递给提供商的准则。如果您想自定义此 source 值,您的提供商必须实现一个返回标识提供商源的字符串的 getSource 方法。

以下为每个具体类需要实现的示例,请参阅本仓库中的 /tests/fixtures 文件夹。

使您的提供者正式化

如果您想将您的提供者转移到 jobapis GitHub 组织并将它添加到官方支持的提供者列表中,请在 jobapis/jobs-common 包上提交一个 pull request。在新的提供者被接受之前,它们必须拥有 100% 的单元测试代码覆盖率,并遵循其他 Jobs Client 提供者使用的约定和代码风格。

安装

通过 Composer

$ composer require jobapis/jobs-common

测试

$ ./vendor/bin/phpunit

贡献

有关详细信息,请参阅 CONTRIBUTING

致谢

许可证

Apache 2.0。有关更多信息,请参阅 许可证文件