پیشگفتار
ماجرای این کتاب
کتابها مقدمه لازم دارند و این هم یک کتاب است و فصل نخست آن را به پیشگفتار اختصاص میدهم.
پیشنهاد میکنم بخش نخست آن را پیش از شروع به مطالعهی کتاب بخوانید، اما اگر دوست داشتید میتوانید از بخشهای دیگر مثل تشکرها و حمایت مالی صرف نظر کنید؛ هرچند که ترجیح میدهم چنین نکنید.
چرا لاراول؟
از زمانی که با لاراول آشنا شدم، کمی بیشتر از سه سال میگذرد. پیش از آن، با فریمورکهایی نظیر کدایگنایتر کار میکردم و چیزهایی نیز به سبک شلختهی افسارگسیخته (اسپاگتی افراطی) ساخته بودم که همگی کار میکردند و هنوز هم کار میکنند.
نزدیک سه سال پیش بود که پای پیمان اسکندری به زندگی من باز شد و لاراول را با هر دوز و کلکی که بود، به من قبولاند و مرا به دورهای از افسردگی مفرط فرو برد. هرچه بیشتر لاراول را میآموختم، بیشتر به عمر از دست رفته حسرت میخوردم که چطور کارها میتوانستند سادهتر و زیباتر انجام شوند و چه لقمهها که دور سر خودم چرخانده بودم.
چرخ روزگار چرخید و به اتفاق دو برادر که دوستانی قدیمی بودند، مسیر حرکت شرکتی که از قبل داشتند را کمی چرخاندیم و پروژههایی را با لاراول ساختیم و آهسته و آرام و بیسروصدا آموختیم و پیشرفت کردیم و همکاران تازهای یافتیم و خود را در چالشهای جالب و جدیدی انداختیم.
این کتاب، حاصل تلاش من برای یادگیری هرچه بیشتر لاراول است. تأکید میکنم که خودم را حرفهای نمیدانم، اما دوست دارم آنچه که یاد میگیرم را جار بزنم تا شاید به کار بقیه هم بیاید.
من معمولاً این کار را برای سرگرمی انجام می دهم و لذت میبرم و حالا هم، ضمن نوشتن این سطرها، برنامهی نگارش یک کتاب آموزشی در خصوص لاراول را با ادای احترام به خالق بزرگوار لینوکس، «فقط برای تفریح» انجام میدهم.
چرا صفر تا شصت؟
هیچ کتاب و نوشتهای در دنیا وجود ندارد که همه چیز را به کسی آموزش دهد. این کتاب نیز با چنین هدفی نگاشته نشده و از آن مهمتر، خود من هم ادعای دانستن همه چیز را دربارهی لاراول ندارم. کاملاً مطمئن هستم که در خلال نوشتن، چیزهای تازهای یاد خواهم گرفت.
اگر بتوانید شصت درصد از آنچه که در دنیای لاراول میگذرد را به واسطهی این کتاب بیاموزید، کلاهِ نداشتهام را به آسمان میاندازم و در پوستِ داشتهام نمیگنجم که توانستهام چنین چیزی بنویسم.
با این حال، به اتفاق هم، به (تقریباً) تمام سرفصلهای مرتبط با لاراول سرک خواهیم کشید و سعی میکنیم پوششی حداقل شصت درصدی از هر یک داشته باشیم.
و اما صفر...
برای مطالعهی این کتاب لازم نیست هیچ چیز از لاراول بدانید.
بسیاری از مفاهیمی که در دنیای لاراول از آنها سخن میگوییم، وجودشان را مدیون لاراول نیستند، اما چیدمان زیباشان را در کنار هم از لاراول گرفتهاند. برای مطالعهی این کتاب، لازم نیست هیچ کدام از آنها را بدانید و حرکت را از نقطهی صفر آغاز میکنیم.
صفر داریم تا صفر!
لاراول، چارچوبیست که در معماری سهلایهی MVC بنا شده و از مفهوم شیءگرایی در پیاچپی بسیار بهره جسته است و برای گام نهادن در دنیای لاراول، و همچنین این کتاب، لازم است آنها را بهخوبی درک کنید.
علاوه بر آن، مفهوم وابستگیها (Dependencies) در زبان پیاچپی و نقش کامپوزر در مدیریت آنها موضوع دیگری است که بهتر است پیش از آغاز کار با لاراول، استنباطی کلی از آنها داشته باشید.
فصل نخست این کتاب سعی میکند کمی در این باره صحبت کند و از این نظر، میتوان گفت نقطهی شروع، قدری عقبتر از صفر است. اما اگر مختصر توضیحات فصل نخست کافی نبود، یا در زمانی که این نوشته را میخوانید هنوز تکمیل نشده بود، بهتر است آنها را پیشنیاز تلقی کنید و از منابعی دیگر بیاموزید و این مفاهیم را دریابید.
آپولو هوا میکنیم!
فصلهای کتاب «لاراول، از صفر تا شصت»، به گونهای چیده شدهاند که راهنمایی گام به گام در ورود به دنیای لاراول باشند.
کتاب «لاراول، از صفر تا شصت»، از آن کتابهاست که فصلهایش به دنبال هم چیده شدهاند و از توالی معناداری برخوردارند و بهتر است با همان ترتیب، یکی یکی خوانده شوند. اما اگر چیزی را میدانید، یا حوصلهی خواندنش را ندارید و مشتاق درس بعدی هستید، آسمان به زمین نمیآید. زیاد سخت نگیرید.
اغلب کتابها و دورههای برنامهنویسی وب، فرآیند آموزش را با ایجاد یک سرویس وبلاگ جلو میبرند که هرچند آموزنده است، اما حوصلهی آدم را از شدت تکراری بودن سر میبرند.
ما اما در این کتاب، به اتفاق هم، آپولو هوا میکنیم!
در فصل اول، مفاهیمی را مرور میکنیم که آشنایی با آنها برای نقطهی صفر ورود به دنیای لاراول، مورد نیاز است. نگاهی به مفهوم برنامهنویسی MVC میاندازیم، از وابستگیها (Dependencies) سخن میگوییم و اشارهای به توسعهی آزمونمحور (Test-Driven Development) خواهیم داشت. به یک معنا، اسبهایمان را زین میکنیم و رهسپار ماجراجویی آپولوییمان میشویم.
در فصل دوم، لاراول را نصب میکنیم و نگاهی به برخی ویژگیهای آن، که در لحظهی نصب قابل دیدن هستند، میاندازیم و لذت میبریم.
کار روی آپولو از فصل سوم آغاز میشود. همهی پروژههای بزرگ با طراحی دیتابیس آغاز میشوند و در این فصل، ضمن آموختن درسهایی مرتبط با این مفاهیم در لاراول، نخستین زیرساختهای اطلاعاتی برنامهی آپولویی خودمان را حاضر میکنیم.
در فصلهای چهارم و پنجم و ششم، به ترتیب لایههای مدل (M)، کنترلر (C) و نمایش (V) را میشکافیم و آپولویمان را توسعه میدهیم و یک پرواز آزمایشی با آن انجام میدهیم.
در فصل هفتم، دوباره به لایهی کنترلر بازمیگردیم و چرخهی حیات ریکوئست در لاراول را با دقت مرور میکنیم و آنچه که جا افتاده و تاکنون سخنی از آن نگفتیم را میآموزیم و آپولوی دستسازمان را که تقریباً آماده است، تقویت میکنیم. مدیریت نشستها، نحوهی ارسال ایمیلها و اعلانها و اعتبارسنجی دادههای کاربران، بخشی از چیزی است که در این فصل مرور می کنیم.
فصل هشتم و نهم، به معرفی ابزارهایی اختصاص دارند که بدون آنها هم کارمان راه میافتاد. با ابزارهایی که لاراول برای مدیریت کش (cache) در اختیارمان میگذارد آشنا میشویم، نحوهی کار با تاریخهای جلالی را میآموزیم، و برای آپولویمان API میسازیم و به این ترتیب، رسالت این کتاب را، که رساندن شما تا دانش شصت درصدی از لاراول بود، به سرانجام میرسانیم.
فصل دهم، نگاهی به آنچه فراتر از شصت است، میاندازیم و کمی (فقط کمی) با راهکارهای لاراولی در توسعهی آزمونمحور و برنامهنویسی ماژولار آشنا میشویم و برای خودمان تصور میکنیم که اگر بخواهیم یک آپولوی معرکه داشته باشیم، چه کارهای دیگری میتوانیم روی آن انجام دهیم.
در انتها، با چند ابزار خوب مدیریت سرور محلی به سبک لاراول آشنا میشویم، نکاتی را که در آپلود پروژهی لاراولی روی سرور مفید هستند مرور میکنیم، و خوشحال و خندان، منابعی برای یادگیری بیشتر را معرفی مینماییم.