پیش گفتار

پیش گفتار

داستان آشنایی من با لاراول مثل خیلی‌های دیگر است: سال‌ها با PHP کدنویسی کرده بودم، اما داشتم از آن فاصله می‌گرفتم تا سراغ قدرت ریلز (Rails) و فریم‌ورک‌های مدرن‌تر وب بروم. ریلز، به‌ویژه، جامعه‌ی پویایی داشت، تعادلی عالی بین پیش‌فرض‌های معنادار و انعطاف‌پذیری ارائه می‌کرد، و با قابلیت Gem‌ها می‌شد کدهای از پیش آماده‌ی زیادی را استفاده کرد.
اما چیزی باعث شد قید PHP را کامل نزنم، و وقتی با لاراول آشنا شدم، خوشحال شدم که هنوز کنار PHP مانده‌ بودم. لاراول هر چیزی که از ریلز دوست داشتم را داشت، ولی فقط یک کلون نبود؛ یک فریم‌ورک نوآورانه با مستندات فوق‌العاده، جامعه‌ای خوش‌آمدگو، و تأثیراتی شفاف از زبان‌ها و فریم‌ورک‌های مختلف بود.
از آن روز، سفر یادگیری لاراول را با نوشتن بلاگ، ساخت پادکست، و صحبت در کنفرانس‌ها به اشتراک گذاشته‌ام؛ ده‌ها اپلیکیشن لاراول برای پروژه‌های کاری و شخصی نوشته‌ام؛ و با هزاران توسعه‌دهنده‌ی لاراول در فضای آنلاین و حضوری آشنا شده‌ام. ابزارهای زیادی در جعبه‌ابزار توسعه‌ی من هست، اما واقعاً زمانی بیشترین رضایت را حس می‌کنم که پشت ترمینال می‌نشینم و می‌نویسم:
 laravel new projectName

این کتاب درباره چیست؟

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

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

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

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

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

این کتاب برای چه کسانی مناسب است؟

فرض ما این است که شما با اصول برنامه‌نویسی شی‌گرا، PHP (یا حداقل سینتکس کلی زبان‌های خانواده‌ی C)، و مفاهیم پایه‌ی معماری MVC و سیستم‌های templating آشنا هستید. اگر تا حالا هیچ وب‌سایتی نساخته‌اید، ممکن است با این کتاب به مشکل بخورید. اما اگر تجربه‌ی برنامه‌نویسی دارید، نیازی نیست از قبل لاراول بلد باشید؛ از ساده‌ترین مثال "Hello, world!" شروع می‌کنیم.

لاراول روی همه‌ی سیستم‌عامل‌ها اجرا می‌شود، اما در این کتاب از دستورات bash استفاده شده که روی لینوکس/macOS راحت‌تر اجرا می‌شوند. کاربران ویندوز ممکن است در اجرای بعضی دستورات یا محیط‌های توسعه‌ی مدرن PHP به مشکل بخورند، اما اگر Homestead (ماشین مجازی لینوکسی مخصوص لاراول) را راه‌اندازی کنند، می‌توانند بدون مشکل ادامه دهند.

 

ساختار این کتاب چگونه است

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

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

در صورت لزوم، هر فصل با دو بخش پایانی تمام می‌شود: «تست‌نویسی» و «خلاصه مختصر (TL;DR)». اگر با آن آشنا نیستید، "TL;DR" یعنی "خیلی طولانی بود؛ نخواندم". این بخش‌های پایانی به شما نشان می‌دهند چطور برای ویژگی‌های مطرح‌شده در هر فصل تست بنویسید و همچنین یک مرور کلی از مطالب ارائه‌شده خواهند داشت.

این کتاب برای لاراول نسخه ۱۰ نوشته شده است.

درباره ویرایش سوم

نسخه اول کتاب Laravel: Up & Running در دسامبر ۲۰۱۶ منتشر شد و نسخه‌های 5.1 تا 5.3 لاراول را پوشش می‌داد. نسخه دوم در آوریل ۲۰۱۹ منتشر شد و پوشش نسخه‌های 5.4 تا 5.8، همچنین پکیج‌های Laravel Dusk و Horizon را اضافه کرد. همچنین فصل هجدهمی به آن افزوده شد که درباره منابع جامعه کاربری و پکیج‌های غیراصلی لاراول بود که در ۱۷ فصل اول پوشش داده نشده بودند.

نسخه سوم کتاب با نسخه ۱۰ لاراول به‌روز شده و موضوعات جدیدی مانند Breeze، Jetstream، Fortify، Vite و موارد بسیار بیشتری را اضافه کرده است.

قراردادهای استفاده‌شده در این کتاب

در این کتاب از قراردادهای تایپوگرافی زیر استفاده شده است:

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

عرض ثابت
برای نمایش کدهای برنامه‌نویسی و همچنین ارجاع به عناصر برنامه مانند نام متغیرها یا توابع، پایگاه‌های داده، انواع داده، متغیرهای محیطی، دستورات و کلمات کلیدی استفاده می‌شود.

عرض ثابت بولد
نشان‌دهنده دستوراتی است که کاربر باید دقیقاً همان‌طور که هستند تایپ کند.

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

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

این نماد نمایانگر نکته یا پیشنهاد است.

این نماد نمایانگر یادداشت عمومی است.

این نماد هشدار یا احتیاط را نشان می‌دهد.

یادگیری آنلاین O’Reilly

بیش از ۴۰ سال است که O’Reilly Media آموزش، دانش و بینش در حوزه فناوری و کسب‌وکار را برای کمک به موفقیت شرکت‌ها فراهم کرده است.

شبکه منحصربه‌فردی از کارشناسان و نوآوران، دانش و تجربه خود را از طریق کتاب‌ها، مقالات و پلتفرم یادگیری آنلاین O’Reilly به اشتراک می‌گذارند. این پلتفرم دسترسی در لحظه به دوره‌های آموزشی زنده، مسیرهای یادگیری عمیق، محیط‌های کدنویسی تعاملی، و مجموعه‌ای گسترده از منابع متنی و ویدیویی از O’Reilly و بیش از ۲۰۰ ناشر دیگر را در اختیار شما قرار می‌دهد.

برای اطلاعات بیشتر به نشانی زیر مراجعه کنید:
https://oreilly.com

قدردانی‌ها

من در طول این پروژه از افراد زیادی حمایت دریافت کردم که واقعاً نمی‌دانم از کجا شروع کنم.

شریکم، Imani، هر موفقیتی را با من جشن گرفت، حسابی تشویقم کرد، و در حالی‌که لپ‌تاپش باز بود و با سرعت تایپ می‌کرد، کنارم نشست؛ هر دو تلاش می‌کردیم تا به ضرب‌العجل‌هایمان برسیم.
پسرم، Malachi، و دخترم، Mia، در تمام این مدت فوق‌العاده باگذشت و فهمیده بوده‌اند.
تمام تیمم در Tighten از همان روز اول حامی و مشوق من بوده‌اند.
دوستانم، Trent و Tevin، سخت تلاش کرده‌اند تا فضاهایی برای هنر و هنرمندان ایجاد کنند، و من بسیار سپاسگزارم که بخشی از خانواده کوچکشان هستم.

من دستیاران پژوهشی مختلفی داشته‌ام: Wilbur Powery، Brittany Jones Dumas، Reeka Maharaj، و Ana Lisboa. بدون کمک آن‌ها، هرگز نمی‌توانستم نسخه دوم و سوم را با این زندگی شلوغ فعلی‌ام بنویسم.

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

Taylor Otwell شایسته‌ی سپاس و احترام است بابت خلق لاراول—و بنابراین خلق شغل‌های بسیار و کمک به بسیاری از توسعه‌دهندگان که بیشتر عاشق زندگی‌مان شویم.
او شایسته‌ی قدردانی است به خاطر تمرکزش بر شادی توسعه‌دهندگان و تلاشی که برای درک آن‌ها و ساختن یک جامعه مثبت و دلگرم‌کننده انجام داده.
اما من همچنین می‌خواهم از او تشکر کنم بابت اینکه دوستی مهربان، مشوق، و چالش‌برانگیز بوده. Taylor، تو رئیس هستی.

از تمام بازبین‌های فنی‌ام ممنونم!
برای نسخه اول: Keith Damiani، Michael Dyrnda، Adam Fairholm، و Myles Hyson.
برای نسخه دوم: Tate Peñaranda، Andy Swick، Mohamed Said، و Samantha Geitz.
برای نسخه سوم: Anthony Clark، Ben Holmen، Jake Bathman، و Tony Messias.

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

پیشگفتار مترجم

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

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

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

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

تقدیم‌ نامه

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

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

کلام آخر

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

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

با آرزوی موفقیت و پیشرفت برای شما،
—  فاروق پابرجا

— بهار 1404