adewra / laravel-traffic-scotland
访问苏格兰交通局的当前事件、实时交通摄像头、意外事件、道路施工、未来道路施工、交通状况、可变信息标志和行程时间。
v0.8.5
2020-07-22 20:03 UTC
Requires
- php: ^7.2
- ext-json: *
- behat/mink: ^1.7
- behat/mink-selenium2-driver: ^1.4
- illuminate/config: ^7.0
- illuminate/database: ^7.0
- illuminate/http: ^7.0
- illuminate/routing: ^7.0
- illuminate/support: ^7.0
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: 3.8.*|4.*|5.*
- phpunit/phpunit: ^8.4|^9.0
README
这是一个通过苏格兰交通局检索最新交通信息的包。
主要用于Laravel & Lumen框架,您可以通过Composer轻松将其放入任何PHP项目中。
目录
安装
使用Composer进行安装
composer require adewra/traffic-scotland
Laravel/Lumen版本兼容性
对于早于5.5
的Lumen和Laravel版本,您还需要在config/app.php
中添加服务提供者。
Adewra\TrafficScotland\TrafficScotlandServiceProvider::class,
升级
此包目前处于预发布
状态,升级说明将在第一个更新正式发布时提供。
测试
./vendor/bin/phpunit
配置
要发布配置文件,请运行
> php artisan vendor:publish --tag=config --tag=migrations --tag=seeds
这将配置文件复制到config/trafficscotland.php
。
以下是一个示例(也是默认配置)
'functionality' => [ 'incidents' => true, 'roadworks' => [ 'current' => true, 'planned' => true, ], 'events' => true, ], 'collection_methods' => [ 'api' => true, 'rss_feeds' => false, 'webpage_scraping' => false, ], 'storage' => true
要运行我们的数据库迁移,允许存储数据
php artisan migrate --path=/packages/adewra/trafficscotland/src/migrations
故障排除
故障排除尚未编写。
包功能
MVP & 未来潜在功能
- 事件
- 道路施工(当前 & 计划)
- 事件(& 场地)
-
状态/拥堵 - 交通摄像头
- 排队
- 停车场和乘车点
- 公告
- 天气事件
- 气象站
- 警察出行警告
- 可变信息标志
- 高速公路英格兰
- 新闻
- 融雪剂
方法
获取信息的首选方法是使用Traffic Scotland的API,该API用于其网站的移动版本。
其他方法包括使用Datex II服务、RSS源或通过抓取网页。
示例
检索当前事件
$incidents = TrafficScotland::incidents();
php artisan trafficscotland:incidents
php artisan tinker
>>> Adewra\TrafficScotland\Incident::all();
检索道路施工
$roadworks = TrafficScotland::roadworks(true, true);
php artisan trafficscotland:roadworks
php artisan tinker
>>> Adewra\TrafficScotland\Roadwork::all();
检索事件
$roadworks = TrafficScotland::events();
php artisan trafficscotland:events
php artisan tinker
>>> Adewra\TrafficScotland\Event::all();
>>> Adewra\TrafficScotland\Venue::all();
经验教训
- 我最初选择的HTTP客户端Goutte无法处理苏格兰交通局网站基于javascript的导航,因此我本应从一开始就选择Selenium 2。使用Behat的Mink,我能够轻松地在两者之间切换。