• faker php测试数据库生成2


    因内容太长,被csdn截断了,只好把另外的内容写到这里。

    
    //Biased
    // 在10到20之间得到一个随机数字,有更大的几率接近20
    echo $faker->biasedNumberBetween($min = 10, $max = 20, $function = 'sqrt'),'<br>';
    echo '<hr>';
    
    //HtmlLorem
    //生成不超过2个级别的HTML文档,在任何级别上不超过3个元素。
    echo $faker->randomHtml(2,3),'<br>';
    echo '<hr>';

    三个特别的修饰方法:

    //提供了三个特殊的修饰方法,unique(),optional(),和valid(),被任何provider之前调用。
    //unique()强制提供者返回唯一值,当没有新的唯一值可以生成时,抛出异常
    //加入$reset = true,会自动加前缀,避免异常
    $values  =  array();
    for($i = 0; $i < 15; $i++){
    	$values [] = $faker -> unique($reset = true) -> randomDigit;
    }
    print_r($values);
    
    //optional()有时会绕过提供程序而返回默认值(默认为NULL)
    $values = array();
    for ($i=0; $i < 10; $i++) {
    	$values []= $faker->optional()->randomDigit;
    }
    var_dump($values);    // [1, 4, null, 9, 5, null, null, 4, 6, null]
    
    // optional()接受权重参数以指定接收默认值的概率。
    // 0将始终返回默认值; 1将始终返回提供者。默认权重为0.5(50%几率)。
    $faker->optional($weight = 0.1)->randomDigit;     // 90% 的可能性为 NULL
    $faker->optional($weight = 0.9)->randomDigit;     // 10% 的可能性为 NULL
    
    //optional()接受默认参数以指定要返回的默认值。
    $faker->optional($weight = 0.5, $default = false)->randomDigit;    // 50% 的可能性为 FALSE
    $faker->optional($weight = 0.9, $default = 'abc')->word;           // 10% 的可能性为 'abc'
    
    //passthrough()只返回指定的任何值。
    $faker->optional()->passthrough(mt_rand(5, 15));
    
    
    //valid()仅根据传递的验证函数接受有效值
    $values = array();
    $evenValidator = function($digit) {
    	return $digit % 2 === 0;     //是偶数才返回
    };
    
    for($i=0; $i < 10; $i++) {
    	$values []= $faker->valid($evenValidator)->randomDigit;
    }
    print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6]
    
    //就像unique(),valid()在无法生成有效值时抛出溢出异常
    $values = array();
    try {
     //$faker->valid($evenValidator)->randomElement(1, 3, 5, 7, 9);
    } catch (OverflowException $e) {
      echo "Can't pick an even number in that set!";
    }

    使用自己的数据

    在faker->src->Faker->Provider->zh_CN文件夹下新建My.php

    参考系统自带的数据格式编写,My.php内容如下:

    <?php
    
    namespace FakerProviderzh_CN;
    
    class My extends FakerProviderBase
    {
    
        protected static $mySite = array(
            'www.aaa.com',
            'www.bbb.com',
            'www.ccc.com',
            'www.ddd.com'
        );
        public function mySite()
        {
            return static::randomElement(static::$mySite);
        }
    
    }

    在项目中的使用:

    //调用自定义的内容先要加入
    $faker -> addProvider(new Fakerproviderzh_CNMy($faker));
    echo $faker->mySite;
    
  • 相关阅读:
    Android Material Design控件使用(2)——FloatButton TextInputEditText TextInputLayout 按钮和输入框
    HbuilderX 常用快捷键
    Android Material Design控件使用(一)——ConstraintLayout 约束布局
    git 命令行 修改文件 并push(阿里云)
    【http转https】其之二:申请Let's Encrypt颁发SSL证书
    git: fatal: Could not read from remote repository
    Android Vector曲折的兼容之路
    Gradle Build速度加快终极方法(android studio)
    android studio 更新 Gradle错误解决方法(Gradle sync failed)
    开发Android必知的工具
  • 原文地址:https://www.cnblogs.com/idjl/p/9610519.html
Copyright © 2020-2023  润新知