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

کنسول آرتیزان

جمله‌ی مرا به خاطر دارید که گفتم «همه‌ی آنچه که مشکلات لاراولی خوانده می‌شوند، راه‌حل‌هایی لاراولی نیز دارند»؟

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

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

نصب آرتیزان

پیش از هر چیز باید آرتیزان را در پروژه‌ی خود نصب کنید و برای این کار، نیازی به هیچ اقدامی نیست! حتی نصب آرتیزان!

آرتیزان نیازی به نصب ندارد!

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

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

php artisan

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

php artian key:generate

این همان دستوری است که یک کلید رمزنگاری مناسب برای ما تولید کرده و در جای مناسب قرار می‌دهد و ما را از باز کردن فایل config و تایپ یک کد مناسب و غیرتکراری با تعداد درست کاراکتر بی‌نیاز می‌سازد.

مثالی از آرتیزان

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

php artisan list

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

به عنوان مثال، این دستور را در نظر بگیرید:

php artisan make:event Folan

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

خواهید دید که آرتیزان، در ابتدا پوشه‌ای به نام Events می‌سازد و در پوشه‌ی apps قرار می‌دهد (به بزرگی و کوچکی حروف دقت کنید)، بعد فایلی به نام Folan.php را در آن می‌سازد و چارچوب یک کلاس با عنوان Folan را در آن قرار می‌دهد و ضمن اضافه کردن نیم‌اسپیس به ابتدای آن، dependencyهای لازم را نیز فهرست می‌کند و تنها کاری که بر عهده‌ی شما باقی می‌ماند آن است که کد مربوط به ایجاد رویداد خود را بنویسید.

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

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

و مثال‌هایی دیگر

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

فرض کنید می‌خواهیم فایل‌هایی را در یک پروژه‌ی آنلاین جابجا کنیم و لازم است سایت را موقتاً از دسترس خارج نماییم. اگر میزبان سایت از پروتکل SSH پشتیبانی کند، می‌توانیم این دستور را اجرا کنیم:

php artisan down

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

php artisan up

دستورات آرتیزان، راهنما هم دارند که هر الگوی دستور یادمان رفت، به داد ما برسند.

php artisan up --help

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

یک پینه‌دوز معرکه، در قلب آرتیزان!

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

تینکر (Tinker) در لغت، به معنی وصله‌بند است و از پینه‌دوز استفاده کردم، چون بامزه‌تر بود.

تینکر، ابزاری بسیار کارآمد است که در قالب یک بسته‌ی مستقل (به کمک کامپوزر) همراه با کنسول آرتیزان می‌آید و می‌تواند دستورهای پی‌اچ‌پی را در محیط برنامه‌ی ما اجرا کند.

php artisan tinker

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

در تینکر، می‌توانیم

  • هلپرهای خودمان را اجرا کنیم؛
  • از توابع بومی php استفاده کنیم؛
  • متغیری را مقداردهی کنیم و آزمایشی را روی آن انجام دهیم؛
  • چیزی را وارد سشن کنیم و دوباره آن را بخوانیم تا خیلی زیرپوستی به خواننده‌ی خود نشان دهیم که سشن‌ها در لاراول چقدر راحت کار می‌کنند؛
  • و کاربردهای دیگر آن را خودمان به مرور بیابیم.

تلفظ آرتیزان

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

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

اصولاً در زبان انگلیسی از روی املای کلمات نمی‌توانیم حدس درستی درباره‌ی قرائتشان بزنیم.

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

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

دیکشنری لانگمن، دو تلفظ ˌɑːtɪˈzæn و ˈɑːrtɪzən را به ترتیب برای گویش‌های انگلیسی و آمریکایی این کلمه معرفی کرده که به فارسی می‌توانیم «آتیزَن» و «آرتیزِن» بنویسیم و به این ترتیب، شکی در «ز» خواندن این کلمه باقی نمی‌ماند.

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

معنای آرتیزان

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

Laravel: the PHP Framework for Web Artisans

لاراول، بستری برای «آرتیزان»هاست و نام دستیارش را هم که در واقع یک کنسول خط فرمان (CLI) است، «کنسول آرتیزان»‌ گذاشته است.

جان کلام

در این درس...

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

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


  1. CLI: Command-Line Interface ↩