فصل دوم: لاراول، در حد صفر

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

همیشه وقتی صحبت از «نصب» یک برنامه یا ابزار به نظر می‌آید، لرزه بر اندام آدم می‌افتد، به‌خصوص اگر پای نصب یک چیز خیلی مهم وسط باشد.

خبر خوب آن است که وقتی پای لاراول در میان باشد، کارها خیلی ساده‌تر از آن است که به نظر می‌رسد.

کافی است سری به گیت‌هاب لاراول بزنید و آخرین نسخه‌ی آن را دریافت کرده و در یکی از پوشه‌هایی که لوکال هاست شما به آن دسترسی دارد، بریزید. حالا با چند دستکاری کوچک، لاراول شما آماده‌ی استفاده است.

این روش را گفتم که نگران دشواری‌های نصب نباشید و خیالتان راحت باشد که کار سختی در پیش نیست. اما اجازه بدهید گام نخست را اصولی‌تر برداریم و پیش از این که سراغ آن «دستکاری‌های کوچک» برویم، کمی از پیش‌نیازها بگوییم و راه‌های هوشمندانه‌تر و در عین حال ساده‌تری از نصب لاراول را نیز مرور کنیم.

پیش‌نیازهای نصب

نسخه‌ی ۵/۶ لاراول، که در زمان نگارش این این درس آخرین روایت آن است، به این چیزها نیاز دارد:

  • مفسر پی‌اچ‌پی بالاتر از نسخه‌ی ۷
  • افزونه‌ی پی‌اچ‌پی OpenSSL
  • افزونه‌ی پی‌اچ‌پی PDO
  • افزونه‌ی پی‌اچ‌پی Mbstring
  • افزونه‌ی پی‌اچ‌پی Tokenizer
  • و افزونه‌ی پی‌اچ‌پی XML

اگر نمی‌دانید این‌ها که فهرست کردم چه هستند، زیاد نگرانشان نباشید. این روزها بیشتر ابزارهای معمولی لوکال هاست که من می‌شناسم، مثل Xamp برای ویندوز و Mamp برای مک، همه‌ی این‌ها و بیش از این‌ها را در خود دارند و چیزی برای نگرانی وجود ندارد.

فقط برای این که چیزی را چک کرده باشید، مطمئن شوید نسخه‌ی پی‌اچ‌پی مورد استفاده‌ی شما، بالاتر از ۷ است.

نصاب لاراول

اگر کامپوزر را از فصل قبل این کتاب شناخته باشید، وقت آن رسیده که برای اولین بار از آن استفاده کنید و اگر از قبل آن را می‌شناختید، بدون شک با من هم‌عقیده‌اید که روشی که در ابتدای این درس برای نصب لاراول گفتم، در مقایسه با نصب از طریق کامپوزر، اصلاً ساده نیست.

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

composer global require "laravel/installer"

با این کار، فرمان اجرایی laravel به سیستم شما اضافه می‌شود. فقط مطمئن شوید که پوشه‌ی سراسری vendor کامپوزر، در جای خوبی قرار داشته باشد که فرمان اجرایی لاراول شما از همه جا بتواند فراخوانی شود.

این «جای خوب»، بسته به سیستم عامل و محل نصب آن ممکن است متفاوت باشد، اما در سیستم عامل‌های مک و گنو/لینوکس، احتمالاً جایی به شکل زیر است:

$HOME/.composer/vendor/bin

بعد از اجرای فرمان کامپوزر، کمی مکث کنید تا همه چیز دانلود شود و پیام‌های موفق بودن فرآیند را روی صفحه‌ی ترمینال خود ببینید. سپس می‌توانید به آدرسی بروید که پروژه قرار است در آنجا نصب شود بروید و از نصاب لاراول بخواهید یک نسخه‌ی تازه از فریم‌ورک را برایتان آماده کند:

laravel new Apollo

با این کار، دیگر زحمت رفتن به گیت‌هاب و دانلود دستی پروژه را هم نمی‌کشید. کامپوزر پوشه‌ای به نام آپولو می‌سازد و فایل‌های لازم برای آپولو هوا کردن شما را در اختیارتان می‌گذارد.

تصور می‌کنم لازم به گفتن نباشد که این نحوه‌ی نصب، فقط برای بار اول چنین طولانی است. از مرتبه‌های بعدی که نصاب لاراول را روی سیستم خود دارید، کافی است همین آخرین دستور را در جایی که مایلید وارد کنید.

چند ثانیه تا چند دقیقه، زمانی است که باید منتظر نصب بمانید و میزان آن، ابتدا به سرعت اینترنت شما و بعد به روزآمدیِ بسته‌هایی دارد که از قبل کش شده‌اند دارد.

سرانجام، پس از دریافت تمام بسته‌ها، لاراول به شما خوش‌آمد می‌گوید و (احتمالاً به عنوان قدردانی) از شما می‌خواهد که چیز معرکه‌ای بسازید!

فقط کامپوزر

اگر حوصله‌ی نصاب لاراول را ندارید، کامپوزر می‌تواند یک نسخه‌ی سریع و کامل از لاراول را برایتان مهیا کند.

به این شکل:

composer create-project --prefer-dist laravel/laravel Apollo

این بار کامپوزر، آخرین نسخه‌ی لاراول را از میان مخازن خود پیدا کرده و یک نسخه برای شما آماده می‌کند و نامی که شما برایش انتخاب کرده‌اید را بر آن می‌گذارد: آپولو!

در مرورگر ببینید

وقت آن رسیده که مرورگر مورد علاقه‌ی خود را (که امیدوارم کروم یا فایرفاکس باشد) باز کنید و اولین نما از اولین پروژه‌ی لاراولی خود را تماشا کنید.

نشانی مورد نیاز برای این کار، همان است که در پروژه‌های پی‌اچ‌پی غیرلاراولی خود استفاده می‌کردید. یعنی به هر طریق که پروژه‌های اسپاگتی یا وردپرسی خود را می‌دیدید، لاراول را نیز فرابخوانید، اما با یک تفاوت کوچک:

اگر از ابزارهای ساده‌ای مانند Xamp و Mamp برای تدارک لوکال هاست در رایانه‌ی خود استفاده می‌کنید، در انتهای آدرسی که وارد می‌کنید، پوشه‌ی public را هم به صورت دستی بنویسید.

نشانی نهایی، بسته به نوع لوکال هاستی که استفاده می‌کنید متفاوت است، اما ممکن است چیزی شبیه این باشد:

localhost/apollo/public

لاراول برای امنیت بیشتر، همه چیز را در بیرون از پوشه‌ی public قرار می‌دهد و وقتی فایل‌ها را روی سرور واقعی، یا میزبان‌های محلی مدرن تر قرار می‌دهید، نیازی به وارد کردن این عبارت مزاحم اضافی در انتهای نشانی‌ها نیست. در درس‌های بعدی، نگاهی به پوشه‌بندی لاراول خواهیم انداخت.

(اگر چیزی ندیدید، ناراحت نشوید و به خواندن کتاب ادامه دهید. خواهم گفت چرا.)

سرو لاراول

لاراول راهی ساده‌تر و زیباتر نیز، حتی برای همین بسترهای ساده فراهم کرده است. کافی است در پوشه‌ی پروژه‌ای که ساخته‌اید، دستور زیر را اجرا کنید.

php artisan serve

با این کار، پروژه‌ی شما روی یکی از پورت‌های محلی دستگاهتان (احتمالاً پورت ۸۰۰۰) در دسترس قرار می‌گیرد.

پیشنهاد می‌کنم از خیر این نشانی نسبتاً زیبا بگذرید و اگر از ابزارهای مدرن‌تر آزمایش سایت مثل homestead یا valet استفاده نمی‌کنید، به همان روش سنتی که در بالا اشاره کردم اکتفا نمایید.

برای سرو پروژه به این شکل، مجبورید ترمینال خود را باز نگه دارید و برای این که به کارهای دیگر خود برسید، پنجره‌ها یا تب‌های خط فرمان دیگری بگشایید. ضمن آن که نشانی شما نیز برای پروژه‌های مختلفی که ممکن است در حال کار روی آن‌ها باشید یکسان می‌شود و به این ترتیب نمی‌توانید روی دو پروژه به صورت هم‌زمان کار کنید یا از ابزارهای بوکمارک مرورگر خود استفاده نمایید.

اما حالا که صحبتش شد، بد نیست دستی به صفحه‌ی کلید برده و این روش را بیازمایید. اول آن که ضرر ندارد و بالاخره چیز جدیدی هست که باید آن را ببینید. دوم آن که با همین دستور ساده، برای نخستین بار با موجودی به نام آرتیزان آشنا می‌شوید که در طول کارهای لاراولی، زیاد با آن سر و کار خواهیم داشت.

برای بررسی آرتیزان و زیبایی‌های آن، دو درس مستقل در این کتاب گنجانده شده که یکی از آن‌ها را در همین فصل خواهید دید.

دستکاری‌های کوچک

این احتمال هست که با هیچ یک از دو راه بالا نتوانسته باشید لاراول را در مرورگر خود ببینید.

حالا وقت دستکاری‌های کوچکی است که پیش‌تر صحبتش را کردم. نگران نباشید و همراه با من، آن‌ها را انجام دهید تا همه چیز درست شود.

پوشه‌ی public

اگر از ابزاری برای تأمین لوکال هاست خود استفاده می‌کنید که امکان تنظیم web route را به شما می‌دهد، آن را طوری تنظیم کنید که به پوشه‌ی public پروژه اشاره کند، اگر هم نه، اشکالی ندارد. با وارد کردن دستی عبارت public در مرورگر مشکل را موقتاً برطرف کنید.

در مورد پوشه‌ی public، در درس دیگری که به معرفی ساختار پوشه‌های لاراول اختصاص دارد سخن خواهیم گفت. فعلاً همین اندازه بدانید که فایل index.php داخل پوشه‌ی public، تمام پروژه‌ی لاراولی شما را میزبانی می‌کند. اگر از ویندوز استفاده می‌کنید، شاید لازم باشد نام این فایل را نیز در انتهای نشانی آزمایشی خود وارد کنید.

پوشه‌ی config

تمام تنظیمات پروژه‌ی شما در پوشه‌ی config قرار گرفته‌اند. سری به این پوشه بزنید و فایل‌های داخلش را نگاه کنید، اما نیازی نیست به چیزی دست بزنید.

فایل‌های موجود در این پوشه، فایل‌هایی ساده با پسوند php هستند که یک آرایه را بازمی‌گردانند (یا به زبان فنی‌تر، return می‌کنند). یکایک این گزینه‌ها، کامنت‌گذاری شده‌اند و اگر زبان انگلیسی شما خوب باشد، این کتاب چیز زیادی بر آنچه که در کامنت‌های این فایل‌ها عنوان شده اضافه نمی‌کند.

به نکته‌ای جالب در این کامنت‌ها توجه کنید که نشان از توجه فوق‌العاده‌‌ی خالق لاراول به جزئیات و زیبایی کدها دارند. هر کدام کامنت‌های این بخش، و همین طور هر کدام از کامنت‌های لاراول در سراسر پروژه، از سه خط تشکیل شده‌اند که هر خط، دقیقاً سه کاراکتر از خط بعدی خود بلندتر است.

یک بار دیگر به شعار لاراول توجه کنید:

کد زیبا دوست دارید؟ ما هم همین طور!

فایل env.

بیشتر گزینه‌هایی که در فایل‌های پیکربندی قرار گرفته‌اند، با تابعی به نام ()env مقداردهی شده‌اند.

پارامتر نخست این تابع، نام این تنظیمات را در فایلی بدون نام و با پسوند env مشخص کرده‌اند و پارامتر دوم، مقدار پیش‌فرض را بازمی‌گردانند که اگر گزینه‌ای با نام مشخص‌شده در فایل env. نبود یا اصلاً چنین فایلی وجود نداشت، آن را لحاظ کند.

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

برای ساختن این فایل، یک فایل متنی ساده در ریشته‌ی پروژه‌ی خود بسازید و نامی روی آن نگذارید و پسوندش را env قرار دهید. شاید در سیستم عامل ویندوز برای این کار با مشکل مواجه شوید، اما نگران نباشید. لاراول فایلی به نام env.example. را برای شما گذاشته که با تغییر نام آن، همه‌ی آنچه را لازم است در اختیار داشته باشید.

فلسفه‌ی استفاده از فایل env. آن است که ممکن است اعضای یک تیم برنامه‌نویسی بخواهند از تنظیمات متفاوتی روی کامپیوترهای خود استفاده کنند و در عین حال فایل‌های پروژه را به وسیله‌ی گیت با یکدیگر در اشتراک بگذارند. به این ترتیب کافیست فایل env. را از چشمان گیت مخفی کنند (یا به اصطلاح دقیق‌تر، آن را ignore نمایند) و با خیال راحت به کارشان برسند.

کلید رمزنگاری

کلید رمزنگاری لاراول، در فایل config/app.php، با عبارت key مشخص شده است و در فایل env. نیز با کلید APP_KEY تعریف می‌شود.

پروژه‌ی لاراول بدون وجود این کلید رمزنگاری کاری نمی‌کند و اگر در آزمایش‌های مرورگر بالا با صفحه‌ی سفید مواجه شده‌اید، ممکن است مشکل کار در همین جا باشد.

کلید رمزنگاری، رشته‌ای ۳۲ کاراکتری از حروف و اعداد است و اگر از نصاب لاراول یا کامپوزر برای نصب لاراول استفاده کرده باشید، این کلید خودبه‌خود تنظیم شده است. در غیر این صورت می‌توانید خودتان یکی تایپ کنید، اما روش عاقلانه‌تری نیز وجود دارد.

برنامه‌ی ترمینال، یا کامندلاین خود را اجرا کنید و به پوشه‌ی پروژه بروید و این دستور را در آن تایپ کرده و کلید Enter را بزنید.

php artisan key:generate

می‌بینیم که باز هم سر و کله‌ی آرتیزان پیدا شد تا بارهایی را از دوش ما بردارد!

مجوز فایل‌ها

این یکی نباید به صورت پیش‌فرض مشکلی برای شما پیش آورده باشد، اما داستان مجوز فایل‌ها در هر سیستم عامل به یک شکل است و نمی‌توان نظر قطعی داد.

مطمئن شوید که وب‌سرور محلی شما دسترسی کامل خواندن و نوشته در پوشه‌ی storage و booststrap/cache را داشته باشد.

چند تنظیم کوچک دیگر

سایر گزینه‌ها برای شروع حیاتی نیستند، اما حالا که فایل‌های پیکربندی را باز کرده‌اید، بد نیست نگاهی هم به داخلشان بیاندازید.

در فایل config/app.php (که بالاتر هم صحبتش به میان آمد)، گزینه‌ای با عنوان locale وجود دارد که زبان پروژه‌ی شما را تعیین می‌کند. همچنین گزینه‌ی دیگری نیز با عنوان timezone هست که موقعیت زبانی پروژه‌ی شما را در خود نگاه می‌دارد که اگر مایلید زمان رسمی کشور ایران را مورد استفاده قرار دهید، این عبارت را در آن مقداردهی نمایید:

'timezone' => 'Asia/Tehran' ,

فایل config/database.php را نیز باز کنید و داخلش را ببینید. نام دیتابیسی که پروژه‌ی شما با آن کار می‌کند را در این فایل می‌یابید که می‌تواند از طریق متغیر محلی تعریف‌شده در فایل env. نیز تعیین شود.

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

مطمئنم سری هم به بقیه گزینه‌ها می‌زنید و کامنت‌هایش را می‌خوانید. کار خوبی می‌کنید. برنامه‌نویس خوب باید کنجکاو باشد و همه جا سرک بکشد.

جان کلام

در این درس، بار آموزشی چندانی نداشت. بنا بود یک نسخه از لاراول را در رایانه‌ی خود نصب کنیم و صفحه‌ی ابتدایی آن را در مرورگر ببینیم.

انجام این کار را با سه روش نشان دادیم و برای این که شبیه یک «درس» شود و چیزی را هم آموزش دهد، سرکی به گوشه و کنار تنظیمات آن زدیم که در این مرحله چندان هم ضروری نبود.

در درس بعدی، ساختار پوشه‌بندی لاراول را بیشتر می‌شکافیم و در آن کند و کاو می‌کنیم.