ایجاد اطلاعات ساختگی در لاراول

ترجمه و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 13 خرداد 98
خواندن در 1 دقیقه
دسته بندی ها : لاراول

seeding دیتابیس یکی از قابلیت های جالب در لاراول هست که همه دوستش داریم. بهرحال افزودن چندین رکورد در دیتابیس با نوشت تک تک اونها, میتونه کار خسته کننده ای باشه و وقت زیادی ببره. اینجاست که کتابخانه ی faker مطرح میشه.

Faker یک کتابخانه ی php هست که برای تولید اطلاعات ساختگی با هدف تست, طراحی شده.

این میتونه برای تولید انواع اطلاعات به کار بیاد.

مطالبی که مطرح می کنیم

  • نصب Faker در لاراول
  • استفاده ی اولیه Faker در لاراول
  • ایجاد اطلاعات ساختگی توسط Faker

نصب و راه اندازی Faker

لاراول Faker رو بصورت پیشفرض نصب میکنه و لازم نیست بصورت دستی نصبش کنید. تمام چیزی که نیاز دارید اینه که ازش استفاده کنید. 

Faker میتونه اطلاعاتی در انواع مختلفی که مطرح می کنیم, تولید کنه :

  • Numbers
  • Lorem text
  • Person i.e. titles, names, gender etc.
  • Addresses
  • Phone numbers
  • Companies
  • Text
  • DateTime
  • Internet i.e. domains, URLs, emails etc.
  • User Agents
  • Payments i.e. MasterCard
  • Colour
  • Files
  • Images
  • uuid
  • Barcodes
  • Miscellaneous

برای اطلاعات بیشتر به مستندات faker مراجعه کنید.

استفاده اولیه از Faker

بیایید با یک پروژه جدید لاراول شروع کنیم.

دستور زیر رو برای ساخت یک پروژه لاراولی در ترمینال وارد کنید :

composer create-project laravel/Laravel larafaker

فایل app/http/routes.php رو باز کرده و مسیرهای زیر رو بیافزاید :

Route::get('/customers',function(){

    $faker = Faker\Factory::create();



    $limit = 10;



    for ($i = 0; $i < $limit; $i++) {

        $faker->name . ', Email Address: ' . $faker->unique()->email . ', Contact No' . $faker->phoneNumber . '<br>';

    }

});

ابتدا یک متغیر برای Fake Factory می سازد.

  • تعیین میکند که محدوده ی چرخه loop چقدر باشد.
  • به تعداد متغیر محدوده اطلاعات ساختگی  رو ساخته و چاپ میکنه.

آدرس زیر رو در مرورگرتون وارد کنید :

http://localhost/larafaker/public/customers

شما نتیجه ی شبیه زیر رو دریافت خواهید کرد :

Prof. Luciano Johnson Sr., Email Address: mGibson@hotmail.com, Contact No1-325-254-2558x5828

Issac Turcotte, Email Address: Amy77@Cruickshank.com, Contact No+05(8)9008932202

Alfreda Lesch, Email Address: fWalsh@yahoo.com, Contact No838.460.2999x435

Moses Hilll, Email Address: Mable.Frami@Fritsch.com, Contact No967-214-4263x6676

Mr. Emmett White, Email Address: Kihn.Tess@gmail.com, Contact No+55(7)8197619484

Kristopher Luettgen IV, Email Address: rSkiles@gmail.com, Contact No421-059-9607x2059

Jammie Steuber V, Email Address: Hane.Guiseppe@hotmail.com, Contact No764.271.1083

Narciso Pouros PhD, Email Address: Dare.Jeffery@Reichert.biz, Contact No+06(5)1030483446

Prof. Paul Mills, Email Address: jKertzmann@Mueller.com, Contact No091.167.1263x208

Dr. Lucie Pollich, Email Address: Vivian.White@Nader.com, Contact No03197415831

حالا بیایید از این قابلیت در پر کردن دیتابیس استفاده کنیم.

ابتدا تنظیمات اتصال دیتابیس رو انجام داده و migration رو بصورت زیر بسازید :

php artisan make:migration customers

فایل ساخته شده در پوشه migrations رو باز کرده و بصورت زیر در بیاورید :

<?php


use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;



class Customers extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

        Schema::create('customers', function (Blueprint $table) {

            $table->increments('id');

            $table->string('name');

            $table->string('email')->unique();

            $table->string('contact_number');

            $table->timestamps();

        });

    }



    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::drop('customers');

    }

}

دستور php artisan migrate رو برای اجرای migration وارد نمایید.

دستور زیر رو برای ایجاد یک seeder بزنید :

php artisan make:seeder CustomersTableSeeder

فایل database/seeds/CustomersTableSeeder.php رو باز کنید و بصورت زیر تغییر دهید :

<?php

use Illuminate\Database\Seeder;


class CustomersTableSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

        $faker = Faker\Factory::create();


        $limit = 33;


        for ($i = 0; $i < $limit; $i++) {

            DB::table('customers')->insert([ //,

                'name' => $faker->name,

                'email' => $faker->unique()->email,

                'contact_number' => $faker->phoneNumber,

            ]);

        }

    }

}

کد بالا 33 رکورد به جدول مشتری ها با استفاده از faker اضافه می کنه.

برای اجرای seeder کافیه دستور زیر رو بزنید :

php artisan db:seed --class=CustomersTableSeeder

منبع

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید