راه‌اندازی یک پایگاه داده‌ی MySQL و اتصال آن به لاراول

Setting up a MySQL database and Connecting it to Laravel

25 بهمن 1399
Laravel 7.0: راه اندازی یک پایگاه داده ی MySQL و اتصال آن به لاراول (قسمت 05)

ما در جلسه قبل یک سیستم احراز هویت ساده را پیاده سازی کرده ام اما هنوز هیچ کاربری نداشته و از طرفی هیچ پایگاه داده ای نداریم که بخواهیم اطلاعات کاربران را در آن ذخیره کرده و آن ها را ثبت نام کنیم بنابراین در قدم اول در این جلسه می خواهیم یک پایگاه داده MySQL ساخته و به آن متصل شویم. اگر یادتان باشد ما XAMPP را نصب کرده ایم بنابراین باید آن را باز کنید. در پنجره اصلی XAMPP به دنبال گزینه های Apache و MySQL باشید و هر دو را فعال (start) کنید:

کنترل پنل XAMPP و فعال کردن Apache و MySQL
کنترل پنل XAMPP و فعال کردن Apache و MySQL

همانطور که در تصویر بالا می بینید در کنار MySQL گزینه ای به نام Admin وجود دارد. اگر روی آن کلیک کنیم PHPMyAdmin برایمان باز می شود و کارمان ساده است. تنها کاری که باید انجام بدهید ساخت یک پایگاه داده به نام roxogram_db است. از آنجایی که این دوره یک دوره مبتدی نیست من مراحل ساخت پایگاه داده را توضیح نمی دهم و انتظار دارم شما با آن آشنا باشید. پس از ساخت این پایگاه داده از شما خواسته می شود که مثل همیشه یک table بسازید و ستون های آن را مشخص کنید اما ما این کار را نمی کنیم! چرا؟ در لاراول نحوه ساختن جدول ها و کار با MySQL کاملا متفاوت است که در ادامه توضیح خواهم داد.

اگر دوست ندارید از PHPMyAdmin استفاده کنید، می توانیم از طریق یک ترمینال نیز این پایگاه داده را ایجاد نماییم. در قدم اول باید MySQL را به environment variable های ویندوز اضافه کنید (همان کاری که در جلسه اول با PHP انجام دادیم). MySQL درون XAMPP موجود است بنابراین اگر مسیر نصب آن را تغییر نداده باشید، آن را در مسیر زیر پیدا خواهید کرد:

C:\xampp\mysql\bin

این مسیر را به environment variable های ویندوز اضافه کنید. سپس باید از یک ترمینال وارد حساب کاربری خود شویم:

mysql -u root

Root نام حساب کاربری پیش فرض است که پسوردی ندارد بنابراین به همین راحتی ساخته می شود. با این کار وارد حساب کاربری خود می شویم و حالا باید بگوییم:

create database roxogram_db;

با این کار نتیجه ای شبیه به نتیجه زیر را می گیرید:

Query OK, 1 row affected (0.001 sec)

هر دو روش یک پایگاه داده را برای شما می سازند (مهم نیست از کدام روش جلو بروید - مهم ساخته شدن پایگاه داده است، بقیه کار ها توسط لاراول انجام می شود). حالا باید به پروژه خودمان رفته و فایل env. را باز کنیم. نام این فایل مخفف environment و به معنی محیط بوده و حاوی محتوایی به شکل زیر است (فقط قسمتی از آن را می آورم):

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:w4S0F7WajTVQUAbPtYfcW/y5Dzm6Ffu1XakYAsIi39o=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
// بقیه داده های این فایل //

فعلا نیازی نیست که نگران این فایل باشیم اما در حالت کلی بدانید که داده های کلی و تنظیمات پیکربندی پروژه شما در این فایل ذخیره می شود. به طور مثال در قسمت DB می بینید که اطلاعات پایگاه داده ای پیش فرض را نوشته است و ما باید آن را تغییر بدهیم تا لاراول بداند به کدام پایگاه داده متصل شود. نام پایگاه داده در قسمت DB_DATABASE است که فعلا روی Laravel گذاشته شده است اما ما باید آن را به roxogram_db تغییر دهیم. در مرحله بعد DB_USERNAME و DB_PASSWORD را مشخص می کنید که من فعلا به آن دست نمی زنم چرا که حساب کاربری من در MySQL روی root است و رمز عبوری نیز ندارد:

DB_DATABASE=roxogram_db
DB_USERNAME=root
DB_PASSWORD=

ما در حال توسعه هستیم بنابراین مشکلی نیست اما در پروژه های واقعی قطعا باید از حساب کاربری و رمز عبور مخصوص خودتان استفاده کنید.

نکته: هر بار که فایل env. را تغییر می دهید، باید سرور خود را قطع کرده و دوباره اجرا کنید (php artisan serve) تا تغییرات اعمال شوند.

Migration در لاراول چیست؟

در لاراول فایل هایی به نام migration وجود دارند که پایگاه داده شما را توصیف می کنند. به زبان ساده تر تمام جدول های شما را به صورت کد ساده مشخص می کنند و آن ها را به صورت خودکار برایتان می سازند تا مجبور نباشید به صورت دستی به سراغ آن ها بروید. همچنین migration ها در پروژه های تیمی بسیار مفید هستند و کار را سرعت می بخشند.

در پروژه خود به پوشه database و سپس migrations بروید. در آنجا سه فایل مشاهده خواهید کرد:

2014_10_12_000000_create_users_table.php

2014_10_12_100000_create_password_resets_table.php

2019_08_19_000000_create_failed_jobs_table.php

ممکن است اعداد این فایل ها برای شما متفاوت باشد (بسته به بروزرسانی های آینده در لاراول) اما مهم نام انتهایی فایل ها است. فایل اول برای ساخت کاربران سایت ما است، فایل دوم برای افرادی است که می خواهند رمز عبور خود را ریست کنند چرا که رمز عبورشان را فراموش کرده اند و فایل سوم مخصوص failed jobs است که باید بعدا برایتان توضیح بدهم و فعلا به آن نیازی نداریم. همانطور که می بینید منطق دکمه «رمز خود را فراموش کرده ام» در لاراول به صورت خودکار برایتان پیاده سازی شده است و شما اصلا نیازی به انجام کار خاصی ندارید!

برای اجرای این migration ها باید دستور زیر را اجرا کنیم:

php artisan migrate

با اجرای این دستور فایل های migration اجرا شده و اگر به PHPMyAdmin برگردید می بینید که جدول هایی در آنجا برایتان ساخته شده اند:

migration های لاراول جدول های مورد نظر ما را ساخته اند
migration های لاراول جدول های مورد نظر ما را ساخته اند.

در قسمت بعد به طور خاص به سراغ این فایل های migration خواهیم رفت و به درون آن ها نگاهی خواهیم انداخت.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری ساخت اینستاگرام با Laravel 7 توصیه می‌کند:
نویسنده شوید
دیدگاه‌های شما

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.