nixler / wikidata
Laravel PHP Facade/Wrapper for the Wikidata Data API
Requires
- php: >=5.3.0
- dimsav/laravel-translatable: ^2.4
- guzzlehttp/guzzle: ^6.2
- plank/laravel-mediable: ^6.0
Requires (Dev)
- phpunit/phpunit: 3.7.*@stable
This package is not auto-updated.
Last update: 2024-09-28 19:58:20 UTC
README
Laravel PHP Facade/Wrapper for the Wikidata Data API
安装
将 nixler/wikidata 添加到您的 composer.json 文件中。
"nixler/wikidata": "dev-master"
运行 composer update 以拉取软件包的最新版本。
接下来,您应该在 config/app.php 配置文件的 providers 数组中添加 WikidataServiceProvider
Nixler\Wikidata\WikidataServiceProvider::class,
注册 Wikidata 服务提供者后,您应该使用 vendor:publish Artisan 命令发布 Wikidata 配置。此命令将 wikidata.php 配置文件发布到您的 config 目录
php artisan vendor:publish --provider="Nixler\Wikidata\WikidataServiceProvider"
用法
use Nixler\Wikidata\Wikidata; ... // Retrieving Entities By ID $laravel = (new Wikidata)->whereId('Q13634357')->first(); // or by array of IDs $companies = (new Wikidata)->whereId(['Q95', 'Q2283'])->get(); //Languages $laravel = (new Wikidata)->whereId('Q13634357')->languages('en', 'ru')->get(); //Select Clause $laravel = (new Wikidata)->select('id', 'label')->whereId('Q13634357')->first(); //available attributes id, label, description, wiki, type, aliases, sitelinks, claims, photos //Search By Query $search = (new Wikidata)->search('Adele')->get(); //Search By Prop $adele = (new Wikidata)->where('P345', 'nm2233157')->first();
Wikidata 数据 API
映射
首先,应该有添加标题、头条、类型、维基、照片的功能
Write Model 具有Enitable trait。我们进行操作 $model->entity()->fetch('wikidata', 'Q1'); 或 $model->fetchDataFrom('lastfm', 'Adele'); 或 $model->fetchDataFrom('gbooks', 'Some book'); 或 $model->fetchDataFrom('tmdb', 'ID'); 或 $model->fetchDataFrom('imdb', 'ID'); 或 $model->fetchDataFrom('youtube', 'Some song or video'); entity。如果不存在,则创建新实体并关联当前外部 ID。然后系统更新实体,检索所有关系并填充实体数据。
读取 $model->getData([ 'info' => 'id,type,title,headline,wiki,entities', 'links' => 'facebook,twitter', 'photos' => 20, 'similars' => 5 ]);
获取信息(翻译)、链接到社交媒体的配置文件、相似项、实体中的照片,它获取结构化数据,如 ['date_of_birth' => 'timestamp']
应该为每种实体类型(人物、音乐、书籍、专辑、国家)编写写操作文件
搜索应按此方式执行 - entities('country')->where('')