ما در جلسه قبل یک سیستم احراز هویت ساده را پیاده سازی کرده ام اما هنوز هیچ کاربری نداشته و از طرفی هیچ پایگاه داده ای نداریم که بخواهیم اطلاعات کاربران را در آن ذخیره کرده و آن ها را ثبت نام کنیم بنابراین در قدم اول در این جلسه می خواهیم یک پایگاه داده MySQL ساخته و به آن متصل شویم. اگر یادتان باشد ما XAMPP را نصب کرده ایم بنابراین باید آن را باز کنید. در پنجره اصلی XAMPP به دنبال گزینه های Apache و MySQL باشید و هر دو را فعال (start) کنید:
همانطور که در تصویر بالا می بینید در کنار 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 ها در پروژه های تیمی بسیار مفید هستند و کار را سرعت می بخشند.
در پروژه خود به پوشه 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 خواهیم رفت و به درون آن ها نگاهی خواهیم انداخت.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.