sparkapi/feed-faker

该包最新版本(v0.8)没有提供许可证信息。

使用RESO标准字段伪造数据源

v0.8 2017-04-27 20:08 UTC

This package is not auto-updated.

Last update: 2024-09-29 01:58:42 UTC


README

Latest Version Software License Build Status Total Downloads

FeedFaker 允许您快速轻松地生成大量符合RESO规范的伪造数据对象,同时保持ID至少部分引用链接,以便导入数据库。

Docker 快速入门

$ docker run -d -p 8080:80 sparkapi/faker-wrapper

$ curl https://:8080/property
[{"ListingKey":"20170428170051261516000000","ListingId":"201704281...

# Hooray!

Docker镜像中Faker端点列表

通过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)。请参阅许可证文件获取更多信息。