طاها: همان مبتدی جاودانه
طاها: همان مبتدی جاودانه
خواندن ۵ دقیقه·۷ سال پیش

حالا چرا لاراول؟ ـ یک شاهد کنسولی

این روزها هر تکنولوژی‌ای دستیاری را به کاربرانش می‌دهد و لاراول هم از قافله عقب نمانده است.

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

دوباره تکرار می‌کنم:

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

با این مقدمه‌ی کوتاه، این بار به سراغ دوست عزیزی می‌روم به نام Artisan.

چطور صدایش کنیم؟

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

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

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

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

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

اسم قحط بود؟

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

Laravel: PHP Framework for Web Artisans
Laravel: PHP Framework for Web Artisans


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

از کجا نصبش کنیم؟

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

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

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

به این شکل:

php artisan list
بخشی از امکانات ریز و درشتی که آرتیزان در اختیار ما می‌گذارد، به روایت خودش!
بخشی از امکانات ریز و درشتی که آرتیزان در اختیار ما می‌گذارد، به روایت خودش!

آرتیزان چه گلی به سرمان می‌زند؟

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

آرتیزان ترتیب همه‌ی این کارها را می‌دهد.

php artisan make:migration create_filans_table

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

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

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

php artisan down

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

php artisan up

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

php artisan tinker

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


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

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

وقتی پای تینکر به میان بیاید، لازم هم هست.

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

تینکر، ابزاری بسیار کارآمد است که همراه با آرتیزان می‌آید و می‌تواند دستورهای یک‌خطی php را، در محیط برنامه‌ی ما اجرا کند.

php artisan tinker
مثال‌هایی برای استفاده از تینکر، در کنسول آرتیزان
مثال‌هایی برای استفاده از تینکر، در کنسول آرتیزان


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

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

اگر ناامید شدیم چه؟

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

php artisan inspire

آرتیزان با دیدن این دستور، کلمات قصاری را از آدم‌های بزرگی مثل ادیسون برایمان می‌گوید!

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

یک به‌روزرسانی معرکه: به کامنت محمدحسین، ذیل همین پست، در مورد فایده‌ی Inspire توجه بفرمایید:
«این طور که به نظر میاد، inspire تنها دستوری هست که شما می تونید توی routes/console.php نحوه‌ی register شدنش رو ببینید. بنابراین فکر می‌کنم سازنده‌ی لاراول قصد داشته نشون بده که شما هم به راحتی می‌تونید کامند های خودتون رو تو این قسمت register کنید.»

در پایان...

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

کارهای جالبی هست که می‌توانید انجام دهید:

  • اگر به ادامه‌ی این نوشته‌ها علاقه‌مندید و عضو ویرگول نیستید که مستقیم پی‌گیر شوید، از فید آراس‌اس استفاده کنید یا در توییتر بنده را فالو بفرمایید.
  • اگر دستی بر قلم دارید، با همین هشتگ «چرا لاراول» در همین سایت معظم ویرگول، نیز می‌توانید شروع به نوشتن درباره‌ی خوبی‌ها و بدی‌های این فریمورک کنید تا همه استفاده نماییم.
  • می‌توانید از جعبه‌ی کامنتی که این پایین هست، استفاده کنید و از کم و کاستی‌های این نوشته برایم بگویید،‌ یا مثلاً از آن تعریف کنید. (متأسفانه ویرگول فقط به اعضای ثبت‌نام‌کرده اجازه‌ی کامنت گذاشتن می‌دهد. تقصیر من نیست.)
  • می‌توانید پیشنهاد کنید که به جای آرتیزان، چه کلمه‌ای در فارسی داریم که هم معنای «صنعت‌گری» و هم معنای «هنرورزی» را در خود نهفته داشته باشد.
  • می‌توانید حدس بزنید که دستور inspire به چه دردی می‌خورد.
  • می‌توانید پیشنهاد کنید که به جای نوشتن این چیزها، چه کارهای بهتر و مفیدتری می‌توانم در زندگی انجام دهم.
لاراولچرا لاراولآرتیزانتینکربرنامه نویسی
طاها یک مبتدی جاودانه است. دریانورد بوده، بعدها برای شهرنشین شدن بیمه‌های دریایی را انتخاب کرده، برنامه‌نویسی هم ظاهراً کمی بلد است.
جامعه توسعه دهندگان لاراول در ایران، ما در اینجا سعی میکنیم توسعه دهندگان لاراول رو در کنار هم جمع کنیم و دانش مان را در اختیار هم دیگر قرار دهیم، تا بتوانیم دنیای بهتری رو بسازیم
شاید از این پست‌ها خوشتان بیاید