adewra / 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,我能够轻松地在两者之间切换。