ساخت یک اپلیکیشن با لاراول و AngularJS – قسمت اول

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

لاراول و AngularJS با همدیگه به خوبی کار می کنند, به شرطی که در مسیر درست از اون ها استفاده کنید. در این مقاله ما می‌خواهیم یک اپلیکیشن بسازیم که در اون لاراول برای ساخت یک API استفاده بشه و AngularJS از اون API استفاده کنه.

ساخت یک اپلیکیشن با لاراول و AngularJS – قسمت اول

در این سری آموزش یاد می‌گیریم که چطور Frontend و Backend رو بطور کامل از هم جدا کنیم. این کار کاربرد ویژه ای در ساخت اپلیکیشن های هیبریدی که در دو مقاله قبل توضیحاتی درموردشون دادیم, دارند. اپلیکیشن هیبریدی چیست ؟ - ویژگی‌های React Native 

همچنین در این سری از مقالات مباحث بصورت قدم به قدم توضیح داده میشه و مناسب افراد تازه کار و افراد نیمه حرفه‌ای هست.

بنابراین برای شروع بیایم از بخش لاراول رو انجام بدیم :

نصب و ساخت یک پروژه جدید

ابتدا composer رو با توجه به این آموزش نصب کنید. 

سپس نصب کننده لاراول رو از طریق دستور زیر دانلود کنید :

composer global require "laravel/installer=~1.1"

بعد از اینکه نصب شد با استفاده از دستور زیر یک پروژه جدید لاراول بسازید :

laravel new project_name

حالا که پروژه رو با موفقیت ایجاد کردید, مطمئن بشید webserver شما در حال اجراست ( شما میتونید از XAMPP هم استفاده کنید). حالا به مسیر پروژه برید و دستور زیر رو وارد کنید :

php artisan serve

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

http://localhost:8000

و شما یک صفحه پیشفرض لاراول می بینید.

راه اندازی دیتابیس, ساخت Migration و وارد کردن اطلاعات نمونه

ابتدا فایل env.example. موجود در مسیر اصلی پروژه رو به env. تغییر بدید و این فایل رو باز کنید.مقادیر رو بصورت زیر تغییر بدید :

DB_HOST=localhost

DB_DATABASE= your_database_name

DB_USERNAME= your_database_username

DB_PASSWORD= your_database_password

ساخت Migration

قدم بعدی اینه که migration بسازیم, اینطور که در مستندات نوشته شده migration ها درواقع ورژن کنترل دیتابیس شما هستند و به تیم ها اجازه می‌دهند تا به راحتی الگوی دیتابیس رو تغییر بدن یا به اشتراک بگذارند. حالا ترمینال رو باز کرده تا برای ساخت migration دستور زیر رو وارد کنید :

php artisan make:migration create_jokes_table

شما میتونید migration ساخته شده رو در مسیر database/migrations ببینید. فایل جدید ساخته شده رو باز کرده و کدهای زیر رو برای ساخت جدول Jokes وارد کنید :


<?php



use Illuminate\Database\Schema\Blueprint;

use Illuminate\Database\Migrations\Migration;



class CreateJokesTable extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

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

            $table->increments('id');

            $table->text('joke');

            $table->integer('user_id');

            $table->timestamps();

        });

    }



    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::drop('jokes');

    }

}

همینطور که مشاهده می‌کنید ما فیلدهای id,joke,user_id و timestamps رو قرار دادیم. که id بصورت افزایشی خودکار, joke بدنه جوک ماست و user_id برای کاربری هست که جوک رو ثبت می کنه. اینجا دو تابع وجود داره که یکیش up و دیگری down هست. تابع down وقتی که بخواهیم migration رو به عقب برگردونیم استفاده میشه.

حالا دستور زیر رو اجرا کنید :

php artisan migrate

حالا اگر به دیتابیس نگاه کنید جدول جدید ایجاد شده. درکنار جدول جوک ها, لاراول سه جدول users, migrations و password_reset رو اضافه کرده. (دلیلش اینه که فایل‌های migration اونها بصورت پیشفرض توسط لاراول قرار داده شده)

برای اینکه ببینیم تابع down چطوری کار میکنه بریم اول فیلد joke رو یه تغییر بدیم تا لاراول متوجه تغییر بشه :


 public function up()

    {

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

            $table->increments('id');

            $table->text('body');

            $table->integer('user_id');

            $table->timestamps();

        });

    }

حالا دستورات زیر رو اجرا کنید :

php artisan migrate:rollback

php artisan migrate

حالا برید دیتابیس رو ملاحظه کنید و تغییر نام فیلد joke رو متوجه میشید.

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

قدم بعدی وارد کردن اطلاعات نمونه هست برای این کار میتونید یا بصورت دستی یا از پکیج هایی مثل fzaninotto/faker استفاده کنید. 

اول پکیج رو نصب کنید :

composer require fzaninotto/faker

حالا یک مدل برای جدول joke بسازید :

php artisan make:model Joke

حالا فایل seed رو بسازید که به وارد کردن اطلاعات نمونه کمک می کنه :

php artisan make:seed Jokes

شما میتونید فایل ساخته شده رو در مسیر database/seed ببینید. فایل JokesTableSeeder.php رو باز کرده و کدهای زیر رو وارد کنید :


<?php



use Illuminate\Database\Seeder;

use App\Joke;



class JokesTableSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

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



        foreach(range(1,30) as $index)

        {

            Joke::create([                

                'body' => $faker->paragraph($nbSentences = 3),

                'user_id' =>$faker->numberBetween($min = 1, $max = 5)

            ]);

        }

    }

}

همینطور که ملاحظه می‌کنید ما یک نمونه از کلاس Faker ساختیم (faker$) که از پکیج نصب شده گرفته میشه. برای مشاهده تمام کلاس‌های اون پکیج به مستنداتش رجوع کنید.

حالا یک فایل seed جدید برای کاربران بسازید :

php artisan make:seed UsersTableSeeder

و بعد فایل UsersTableSeeder.php رو باز کرده و کد زیر رو وارد کنید :


<?php



use Illuminate\Database\Seeder;

use App\User;



class UsersTableSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

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



        foreach(range(1,5) as $index)

        {

            User::create([                

                'name' => $faker->userName,

                'email' =>$faker->email,

                'password' =>bcrypt('secret')

            ]);

        }

    }

}

قدم بعدی اینه که فایل DatabaseSeeder.php رو باز کرده و کلاس‌های seed ساخته شده رو بهش اضافه کنید :


<?php



use Illuminate\Database\Seeder;

use Illuminate\Database\Eloquent\Model;



class DatabaseSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

        Model::unguard();



        $this->call(JokesTableSeeder::class);

        $this->call(UsersTableSeeder::class);



        Model::reguard();

    }

}

حالا قبل از استفاده از دستور seed لازمه یک کار دیگه انجام بدیم. فایل مدل Joke رو باز کنید و فیلدها رو به fillable$ اضافه کنید :

protected $fillable = ['body', 'user_id'];

با انجام این کار ما میتونیم مقادیر رو بصورت انبوه وارد جدول دیتابیس کنیم. 

حالا دستور seed رو اجرا کنید :

php artisan migrate –seed

حالا میتونید وارد دیتابیس بشید و مقادیر نمونه رو ببینید.

ممنون از همراهی تون. در مقاله بعدی کار رو در لاراول ادامه میدیم و درمورد مباحث ساخت و تست مسیرها, افزونه Postman و یکسری مباحث پیشرفته‌تر صحبت می کنیم. 

منبع

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

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