sparkapi / feed-faker
使用RESO标准字段伪造数据源
Requires
- php: ^5.6 || ^7.0
- crewlabs/unsplash: ^2.3
- fzaninotto/faker: ^1.6
- monolog/monolog: ^1.22
- php-di/php-di: ^5.4
- psr/log: ^1.0
Requires (Dev)
- phpunit/phpunit: 5.5.*
- satooshi/php-coveralls: 1.*
This package is not auto-updated.
Last update: 2024-09-29 01:58:42 UTC
README
FeedFaker 允许您快速轻松地生成大量符合RESO规范的伪造数据对象,同时保持ID至少部分引用链接,以便导入数据库。
Docker 快速入门
$ docker run -d -p 8080:80 sparkapi/faker-wrapper
$ curl https://:8080/property
[{"ListingKey":"20170428170051261516000000","ListingId":"201704281...
# Hooray!
Docker镜像中Faker端点列表
- 属性: https://:8080/property/{optional_count}
- 成员: https://:8080/member/{optional_count}
- 办公室: https://:8080/office/{optional_count}
- 开放日: https://:8080/openhouse/{optional_count}
- 历史: https://:8080/history/{optional_count}
- 媒体: https://:8080/media/jpeg/{optional_count}
通过Composer安装
$ composer require sparkapi/feed-faker
(或)
{ "require": { "sparkapi/feed-faker": "^0.8" } }
示例用法
首先定义要创建的键的设置以及对象的数量和类型。
如果您使用的是Unsplash照片提供程序,您将需要传递一些额外的设置。如果您想使用不同的图像提供程序,请传递该提供程序的类。
所有其他设置都有默认值,因此您可以随意修改您想要的,其他部分留空。
$settings = [ // required for photo providers 'unsplash_app_id' => 'your_unsplash_app_id', // unsplash specific 'interior_collection' => collection_id, // unsplash collection or filesystem path if using local photo provider 'exterior_collection' => collection_id, // unsplash collection or filesystem path if using local photo provider 'portrait_collection' => collection_id, // unsplash collection or filesystem path if using local photo provider // Optional photo provider, if not using unsplash (you can ignore the above, too). 'photo_provider' => \FeedFaker\Helper\UnsplashPhotoProvider::class, // Basic settings, all with defaults. 'mls_id' => 'my-awesome-mls', // the number of objects you want to create for each resource type. 'office_count' => 50, 'member_count' => 150, 'property_count' => 500, 'openhouse_count' => 1000, 'history_count' => 1000, 'media_count' => 5000, ];
如果您愿意,可以提供一个有效的完整路径到返回数组的php设置文件。示例在 settings.php.dist
中。
现在您已经设置好了,实例化它并开始使用
$settings = [ 'unsplash_app_id' => 'my-app-id-from-unsplash' 'interior_collection' => 10 'exterior_collection' => 1010 'portrait_collection' => 101010 // optional 'mls_id' => 'best-mls-in-the-universe', 'history_count' => 500 ]; $feedfake = new FeedFaker\FakeFeed(); $data = $feedfake->go($settings); $properties = $data['property']; $offices = $data['office']; $members = $data['member']; $media = $data['media']; $history = $data['history']; $openhouses = $data['openhouse']; foreach ($properties as $property) { echo $property->getListingKey() . PHP_EOL; var_dump($property->toArray()); }
是的,就是这样。欢迎。
可选日志记录
Faker还可以将信息记录到任何PSR-3兼容的记录器。(对于图像提供程序错误等很有用。)
您有两种方法来设置一个:提供自己的记录器,或者为MonoLog提供一个设置调用。
为Monolog设置调用
默认情况下,Faker使用Monolog处理任何日志记录,它使用处理器来确定日志的位置和详细内容。如果您没有提供设置或记录器,Faker将默认使用NullHandler
并保存无日志信息。
您可以为FakeFeed
提供任何可调用的作为第二个参数。这个可调用的接受一个monolog Logger
实例,并且不需要返回任何内容。
$logger_setup = function($monolog) { // Save all debug and above messages to a file $monolog->pushHandler(new StreamHandler('/path/to/logs.log', \Monolog\Logger::DEBUG)); // Save more important messages to some other place $monolog->pushHandler(new SomeOtherHandler(\Monolog\Logger::WARNING)); }; $feedfake = new FeedFaker\FakeFeed([], $logger_setup); $data = $feedfake->go()
您自己的记录器
您也可以完全跳过monolog并提供任何PSR-3兼容的记录器实例作为第二个参数。
$feedfake = new FeedFaker\FakeFeed([], $my_psr_3_logger); $data = $feedfake->go()
互操作性
Feed Faker 是 PSR合规 和 容器互操作性 合规。任何疏忽,请告诉我们。
测试
我们努力实现至少80%的测试覆盖率。
$ phpunit
注意,UnsplashPhotoProviderTest
被跳过。这些需要有效的凭证。您可以使用自己的凭证扩展并运行这些测试。更好的(基于环境的)系统正在路上。
贡献
欢迎贡献,所有贡献将获得全额认可。请参阅贡献指南获取详细信息。
开启一个问题来参与进来吧!
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。