juststeveking / companies-house-laravel
用于获取公司信息并验证公司编号的Laravel包装器
2.0.4
2021-09-14 09:47 UTC
Requires
- php: ^8.0
- illuminate/contracts: ^8.40
- illuminate/support: ^8.0
- spatie/data-transfer-object: ^3.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- guzzlehttp/guzzle: ^7.3
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
- vimeo/psalm: ^3.11
README
用于获取公司信息并验证公司编号的Laravel包装器。
安装
您可以通过composer安装此包
composer require juststeveking/companies-house-laravel
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="JustSteveKing\CompaniesHouse\CompaniesHouseServiceProvider" --tag="config"
这是已发布配置文件的内容
return [ 'api' => [ 'key' => env('COMPANIES_HOUSE_KEY', ''), 'url' => env('COMPANIES_HOUSE_URL', 'https://api.company-information.service.gov.uk'), 'timeout' => env('COMPANIES_HOUSE_TIMEOUT', 10), 'retry' => [ 'times' => env('COMPANIES_HOUSE_RETRY_TIMES', null), 'milliseconds' => env('COMPANIES_HOUSE_RETRY_MILLISECONDS', null), ], ] ];
使用方法
这个库旨在易于使用,并且可以无缝集成到Laravel中,不会出现任何问题。
该包会为您安装一个服务提供者,这意味着您只需要从容器中解析出Client
,然后就可以开始使用了。
获取公司简介
要获取公司简介,您可以非常简单地
use JustSteveKing\CompaniesHouse\Client; class CompanyController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $company = $this->service->company( companyNumber: $request->get('company_number') ); } }
获取公司高管
您可以使用公司编号获取公司高管的Collection
use JustSteveKing\CompaniesHouse\Client; class CompanyOfficersController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $company = $this->service->officers( companyNumber: $request->get('company_number') ); } }
从公司获取特定高管
您可以使用公司编号和他们的任命ID从公司获取一个Officer
use JustSteveKing\CompaniesHouse\Client; class CompanyOfficerController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $company = $this->service->officer( companyNumber: $request->get('company_number'), appointmentId: $request->get('appointment_id'), ); } }
搜索
在搜索方面有几个选项,您可以搜索
- 公司
- 高管
- 被除名的高管
- 搜索全部
搜索公司
这将返回一个SearchCollection
use JustSteveKing\CompaniesHouse\Client; class CompanySearchController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $results = $this->service->searchCompany( query: $request->get('query'), perPage: 25, //optional startIndex: 0, //optional ); } }
搜索高管
这将返回一个SearchCollection
use JustSteveKing\CompaniesHouse\Client; class OfficersSearchController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $results = $this->service->searchOfficers( query: $request->get('query'), perPage: 25, //optional startIndex: 0, //optional ); } }
搜索所有内容
这将返回一个SearchCollection
use JustSteveKing\CompaniesHouse\Client; class SearchController extends Controler { public function __construct( protected Client $service, ) {} public function __invoke(Request $request) { $results = $this->service->search( query: $request->get('query'), perPage: 25, //optional startIndex: 0, //optional ); } }
验证
使用内联验证
$this->validate($request, [ 'company_number' => [ 'required', 'string', Rule::companyNumber() ] ]);
测试
要了解如何使用这部分,请遵循Laravel文档中关于测试HttpClient的说明
运行单元测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志
贡献
有关详细信息,请参阅贡献指南
安全
如果您发现任何安全问题,请通过juststevemcd@gmail.com发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件