فصل ۲-۱: نصب و راه‌اندازی محیط لاراول با Homestead

در جلسه‌ی گذشته به توضیح مفصل فریم‌ورک قدرتمند لاراول پرداختیم و شما را در انتخاب این فریم‌ورک راهنمایی نمودیم. حال که انتخاب و تصمیم شما Laravel است، ورودتان را صمیمانه به این سری از دوره‌های آموزشی تبریک عرض می‌کنیم. هدف از ایجاد این فصل آموزش فارسی نصب فریم‌ورک لاراول نسخه‌ی ۵ به بالا است. بهترین راه برای توسعه‌ لاراول، مطمئن بودن از شرایط سرور است. این سرور می‌تواند داخلی (Local) یا خارجی (Remote Server) باشد. بنابراین لاراول ابزاری را برای فراهم کردن این موضوع در اختیار شما قرار داده است.

۱) ملزومات سیستم

تمام امکاناتی که برای نصب لاراول مورد نیاز است در سیستم عامل ویندوز وجود دارد و با نصب Wamp‌ یا Xampp دسترسی به یک سرور داخلی امکان پذیر خواهد بود. اما تمام افراد و برنامه‌نویسان با ویندوز کار نمی‌کنند. بنابراین تمرکز این آموزش ارائه کدها و دستورها بر اساس ساختار سیستم عامل لینوکس و مکینتاش است. البته لازم به ذکر است که این دستورها و کدها در سیستم‌عامل ویندوز قابل اجرا هستند.

حداقل امکاناتی که برای نصب لاراول مورد نیاز است:

  • PHP نسخه ۵٫۵٫۹ یا بالاتر
  • افزونه‌ی OpenSSL PHP
  • افزونه PDO PHP
  • افزونه Mbstring PHP
  • افزونه Tokenizer PHP

۱-۱) Composer

جهت توسعه نرم‌افزار خود حتما و حتما به یک Composer عمومی (گلوبال) نیاز دارید. و اما کامپوزر چیست؟

کامپوزر ابزاری ست برای مدیریت بسته های نصبی که به زبان PHP نوشته شده اند. کامپوزرها در PHP مانند npm در Node یا Ruby Gem در زبان Ruby است. در واقع با کامپوزرها می توان بسته هایی مثل لاراول، Laravel Collective, Laravel Helper و… را در فایل پروژه خود نصب و مدیریت کرد. گاها برای تعریف کامپوزر از عبارت Dependency Manager (مدیریت وابستگی ها) استفاده می شود که به معنای مدیریت تمام کتابخانه ها و وابستگی های موجود در پروژه است. لازم به ذکر است یک مدیریت بسته ی دیگر تحت عنوان PEAR (مخفف عبارت PHP Extension and Application Repository) وجود دارد ولی بنا به دلایلی توسعه دهندگان دیگر از آن استفاده نمی کنند و مهم ترین ایراد آن بروز نبودن بسیاری از بسته هاست.

۲-۱) Vagrant, VMWare و VirtualBox

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

۳-۱) Laravel Homestead (حیاط لاراول)

ابزار Homestead به عنوان یکی از قوی‌ترین ابزارهای لاراول شناخته می‌شود که محیطی مجازی را در دل Vagrant در اختیار شما قرار می‌دهد. این محیط دقیقا مشابه سرورهای وی پی اس VPS (مخفف عبارت Virtual Private Server) است که بسیاری از سایت‌هایی که با لاراول نوشته شده‌اند بر روی این سرورها قرار دارند.

۲) نصب Homestead

اگر تازه‌کار هستید به شما تضمین می‌دهیم اگر با یکی از مجازی‌سازها یا شبیه‌سازهای فوق ( مثلا ترکیب VMWare و Vagrant و Homestead) لاراول را بیاموزید تجربه‌ی توسعه‌ و برنامه‌نویسی بسیار دلچسبی (بدون درنظر گرفتن اینکه چه امکاناتی روی سیستم‌عامل شما نصب است) بدست می‌آورید. فقط کافیست به امکاناتی که با نصب Homestead در اختیار شما قرار می‌دهد نگاهی بیاندازید:

  • Ubuntu 16.04
  • Git
  • PHP 7.1
  • Nginx
  • MySQL
  • MariaDB
  • Sqlite3
  • Postgres
  • Composer
  • Node به همراه Yarn, Bower, Grunt و Gulp
  • Redis
  • Memcached
  • Beanstalkd
  • Mailhog
  • ngrok

۱-۲) نصب پیش‌نیازهای Homestead

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

در مرحله‌ی بعدی پلاگین Vagrant را از این لینک دریافت کنید.توجه: پس از نصب نرم‌افزار‌های فوق حتما کامپیوتر خود را Restart کنید.

پس از نصب Vagrant باید دستور زیر را در CMD ویندوز وارد کرده تا box پلاگین Vagrant فعال شود:

۱vagrant box add laravel/homestead

هنگامیکه این دستور را وارد می‌:نید و دکمه‌ی Enter را فشار می‌دهید، متن پیام زیر که شامل لیستی از نرم‌افزارهای متناسب با Vagrant است، به نمایش گذاشته می‌شود:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲box: Loading metadata for box ‘laravel/homestead’    box: URL: https://atlas.hashicorp.com/laravel/homesteadThis box can work with multiple providers! The providers that itcan work with are listed below. Please review the list and choosethe provider you will be working with. 1) hyperv2) parallels3) virtualbox4) vmware_desktop Enter your choice:

از آنجا که ما از Virtualbox استفاده کرده‌ایم لذا گزینه‌ی ۳ را انتخاب کرده و دکمه‌ی Enter را فشار می‌دهیم. با انجام این عملیات، فرآیند دانلود و نصب این Box فراهم می‌شود. در واقع Box ها مشابه Template ها هستند. برای اینکه یک پروژه ایجاد کنید باید آن را در Box‌ مربوط به خود قرار دهید. این فرآیند بسته به سرعت اینترنت شما می‌تواند زمان‌گیر باشد. کمی صبور باشید 🙂

۱۲۳box: Adding box ‘laravel/homestead’ (v2.0.0) for provider: virtualbox    box: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.0.0/providers/virtualbox.box    box: Progress: 0% (Rate: 608k/s, Estimated time remaining: 0:40:36))

پس از اتمام این عملیات  تمام فایل‌های مربوط به Homestead دانلود شدند (حجمی معادل حدود ۱ گیگ) که می‌توانید این فایل‌ها را در مسیر زیر مشاهده کنید:

۱C:\Users\YourComputerName\.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead\2.0.0

۲-۲) نصب Homestead

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

۱۲۳cd ~  // از این دستور برای تغییر فولدر استفاده می‌شود git clone https://github.com/laravel/homestead.git Homestead

درصورتی که دستور را به درستی وارد کرده باشید با پیام زیر مواجه خواهید شد:

۱۲۳۴۵۶۷۸git clone https://github.com/laravel/homestead.git HomesteadCloning into ‘Homestead’…remote: Counting objects: 2049, done.remote: Compressing objects: 100% (8/8), done.remote: Total 2049 (delta 2), reused 0 (delta 0), pack-reused 2041Receiving objects: 100% (2049/2049), 356.14 KiB | 174.00 KiB/s, done.Resolving deltas: 100% (1185/1185), done.Checking connectivity… done.

و در نهایت فولدری در مسیر اولیه‌ای که مشخص کرده‌اید ظاهر خواهد شد:

۱C:\Users\YourComputerName\Homestead

توجه: مسیر فوق ممکن است در سیستم شما متفاوت باشد بنابراین همواره مسیر فولدر Homestead را برای ادامه‌ی فرآیند، پیدا کنید.

برای ادامه‌ی فرآیند ابتدا باید به وارد پوشه شوید که این کار را با دستور زیر انجام می‌دهیم:

۱ cd C:\Users\YourComputerNae\Homestead

در هر فولدر Homestead باید همواره اسکریپت شما یک سری مقادیر اولیه را تنظیم کند. بنابراین توسط دستور زیر اینکار را انجام می‌دهیم. بنابراین در دستور زیر به فایل init.sh‌ دسترسی پیدا خواهیم کرد:

۱bash ~/Homestead/init.sh

راهنمایی لینوکس: عبارت bash در واقع Shell لینوکس (مشابه CMD در ویندوز) را فعال می‌کند. در واقع Bash‌ یک Command Line‌ لینوکسی است که دستورهای چاپ شده را ترجمه و اجرا می‌کند.

در نهایت با اجرای دستور فوق فایل تنظیمات اولیه Homestead تحت عنوان Homestead.yaml در دایرکتوری (فولدر) Homestead. /~ قرار می‌گیرد و پیام زیر را دریافت می‌کنید:

۱Homestead initialized!

تنظیمات Homestead

فایل Homestead.yaml را با استفاده از یک ادیتور متن (مثلا ++Notepad) باز کنید و تنظیمات را انجام دهید.

در خطوط اول تا سوم ip و میزان memory و cpus ماشین مجازی را مشاهده می‌کنید که بهتر است مقدار cpus را به عدد ۲ ارتقاء دهید.

ابتدا باید ماشین مجازی خود را مشخص کنید. این ماشین‌های مجازی با نام‌های virtualbox, vmware_fusion, vmware_workstation, or parallels قابل دسترس هستند که در این پروژه ماشین مجازی ما virtualbox است. بنابراین برای provider داریم:

۱provider: virtualbox

برای تنظیم کردن مسیر کلید‌های عمومی و خصوصی SSH خود باید مقدار authorize را ویرایش کنید:

۱authorize: ~/.ssh/id_rsa.pub

راهنمایی: کلید‌های عمومی و خصوصی SSH‌ که به SSH Key معروف هستند برای خصوصی‌سازی پروژه در بستر کامپیوتر مورد استفاده قرار می‌گیرند یعنی اگر شما این کلید‌ها را تنظیم کنید، پروژه‌ها تنها و تنها در کامپیوتر شما (برای کامپیوترها از SSH Private Key استفاده می‌شود)  و یک سرور (برای سرورها از SSH Public Key استفاده می‌شود) مشخص قابل دسترسی هستند.

در صورتیکه بخواهید کلید SSH خود را مجددا بسازید کافی‌ست دستور زیر را در فولدر Homestead اجرا کنید (حتما این کار را انجام دهید):

۱ssh-keygen -t rsa -C “info@roxo.ir”

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

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/YourComputerName/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /c/Users/YourComputerName/.ssh/id_rsa.Your public key has been saved in /c/Users/YourComputerName/.ssh/id_rsa.pub.The key fingerprint is:SHA256:Sz6ROasqGrDAtI5Rh9hcxfq9R8y4iIJvbW+TGZc YourComputerName@YourComputerNameThe key’s randomart image is:+—[RSA 2048]—-+|   +oooo. .      ||  .++o  .o       ||  . + … o      ||   + ..+ =       ||  . . ..S.o=     ||       ooOE +    ||   . . .O* +     ||  . o + *=o .    ||   o.o o….     |+—-[SHA256]—–+

حال باید مسیر فولدر هر وب سایت و یا وب اپلیکیشن را مشخص کنیم برای اینکار ابتدا فولدر موردنظر را در مسیری که می‌خواهیم ایجاد کرده و آن را به متغییر map: ارسال می‌کنیم، در این مثال ما فولدر Projects را داخل مسیر C:/User/YourComputerName ایجاد کرده‌ایم بنابراین دستورهای زیر را اجرا می‌کنیم:

۱۲۳folders:    – map: C:/Users/YourComputerName/Projects      to: /home/vagrant/YourComputerName

و در نهایت برای تعیین کردن آدرس سایت در مرورگر خود (یعنی وب سایت شما با آدرس مثلا http://laravel.dev اجرا شود) عبارت زیر را در متغییر site ویرایش می‌کنیم:

۱۲۳sites:    – map: laravel.dev      to: /home/vagrant/Projects/laravel/public

حال نوبت به تعیین نام databases می‌رسد که مقدار آن را مشابه خط زیر قرار می‌دهیم:

۱۲databases:  – homestead

بنابراین فایل Homestead.yaml به صورت زیر خواهد بود:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴—ip:  “192.168.10.10”memory:  2048cpus:  2provider:  virtualbox authorize:  ~/.ssh/id_rsa.pub keys:  – ~/.ssh/id_rsa folders:  – map: C:/Users/YourComputerName/Projects    to: /home/vagrant/Projects sites:  – map: laravel.dev    to: /home/vagrant/Projects/laravel/public   databases:  – laravel # blackfire:#     – id: foo#       token: bar#       client-id: foo#       client-token: bar # ports:#     – send: 50000#       to: 5000#     – send: 7777#       to: 777#       protocol: udp

تا به اینجای کار تمام تنظیمات را به درستی انجام داده‌اید و کار شما به اتمام رسیده است. حال باید به مسیر زیر رفته و فایل hosts را با یک ادیتور متن (مثلا ++Notepad) باز کنید و ip‌ ای که در فایل Homestead.yaml بود را داخل این فایل قرار دهید تا لوکال هاست شما مجددا شناسایی شود.

۱C:\Windows\System32\drivers\etc\hosts

بنابراین محتویات درون فایل hosts باید به صورت زیر باشد:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳# Copyright (c) 1993-2009 Microsoft Corp.## This is a sample HOSTS file used by Microsoft TCP/IP for Windows.## This file contains the mappings of IP addresses to host names. Each# entry should be kept on an individual line. The IP address should# be placed in the first column followed by the corresponding host name.# The IP address and the host name should be separated by at least one# space.## Additionally, comments (such as these) may be inserted on individual# lines or following the machine name denoted by a ‘#’ symbol.## For example:##      102.54.94.97     rhino.acme.com          # source server#       38.25.63.10     x.acme.com              # x client host # localhost name resolution is handled within DNS itself.# ۱۲۷٫۰٫۰٫۱       localhost# ::۱             localhost 192.168.10.10 laravel.dev

حال باید در CMD‌ ویندوز و در پوشه Homestead دستور زیر را تایپ کنید تا فرآیند نصب Homestead با تنظیمات مشخص شده آغاز شود:

۱vagrant up

توجه: در صورتیکه پس از اجرای دستور vagrant up با خطاهایی از قبلی found tab character و یا No directory found و … مواجه شدید باید در جریان باشید که قطعا یا مسیر دهی درست انجام نداده‌اید یا به جای space از دکمه‌ی tab برای فاصله دادن استفاده کرده اید. بنابراین برای کاهش خطا کد نهایی را عینا از همین صفحه کپی کرده و آن را ویرایش کنید.

اگر تمام مراحل فوق را به درستی انجام داده باشید با وارد کردن آدرس http://laravel.dev همواره با صفحه‌ی No input file specified مواجه خواهید شد. این بدین معنی‌ست که مجازی سازی شما به درستی صورت پذیرفته است و تنها باید در سرور مجازی خود نصب لاراول را انجام دهید.

پس از مشاهده پیغام فوق و تایید صحت نصب Vagrant و Homestead حال نوبت به نصب لاراول می‌رسد. برای نصب لاراول دو راه وجود دارد:

  1. نصب لاراول با VirtualBox
  2. نصب لاراول با vagrant ssh (پیشنهاد ما)

در هر صورت شما با خط فرمان Vagrant کار می‌کنید و باید به دستورات این خط فرمان آشنایی مقدماتی داشته باشید. در ادامه به توضیح برخی از فرمان‌های Vagrant می‌پردازیم:

  • vagrant up: اجرا کردن Homestead
  • vagrant suspent:‌ همانند Hibernating (خاموشی موقت) در ویندوز
  • vagrant halt:‌ همانند Shut Down کردن در ویندوز
  • vagrant destory: همانند Format کردن در ویندوز (فرمت کردن یک درایو یا فولدر)
  • vargant provision:‌ همانند Restart کردن در ویندوز

۱-۳) نصب لاراول با VirtualBox

بسیار عالی حال برای اتصال به Shell باید نرم افزار VirtualBox را باز کرده و از منوی سمت چپ homestead7 را انتخاب و با راست کلیک کردن روی آن گزینه Run را بفشارید. بدین ترتیب صفحه ای مشکی برای شما نمایان خواهد شد که از شما اطلاعات یوزر نیم و پسورد را درخواست می‌کند تا به سرور مجازی لینوکسی خود دسترسی پیدا کنید. اطلاعات ورودی به صورت زیر خواهد بود:

۱۲Username: vagrantPassword: vagrant

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

نصب لاراول در VirtualBox

تمام مراحل بالا را طی کردیم تا به این نقطه از اجرای برنامه برسیم. برای نصب دو راه وجود دارد که هر دو از خط فرمان انجام می‌شوند. راه اول استفاده از خود نرم افزار کامپوزر (Composer) و راه دوم استفاده از ویژگی create-project در کامپوزر است.

حال در صفحه‌ی Shell لینوکس که در اختیار شما هست می‌توانید با دستور زیر ابزارهایی جهت راه‌اندازی لاراول با استفاده از Composer نصب کنید:

۱composer global require “laravel/installer=~1.1”

سپس با وارد کردن عبارت زیر و تعریف نام پروژه خود بجای کلمه‌ی ProjectName اپلیکیشن شما نصب می‌شود:

۱laravel new projectName

پس از طی کردن فرآیند نصب با عبارت Application Ready, Build something amazing روبه خواهید شد.

۲-۳) نصب لاراول با Vagrant SSH

در این شیوه‌ی نصب شما پس از اتمام فرآیند vagrant up باید دستور vagrant ssh را وارد کرده و به اصلاح وارد محیط Shell لینوکس مجازی خود شوید.توجه: در صورتیکه هنگام اجرای دستور vagrant ssh با خطای زیر مواجه شدید به این لینک مراجعه کنید:

ssh` executable not found in any directories in the %PATH% variable. Is an SSH client installed? Try installing Cygwin, MinGW or Git, all of witch contain an SSH client. Or use your favorite SSH client with the following authentication information shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: C:/path/to/project/.vagrant/machines/default/virtualbox/private_key

سپس مسیر فایل Projects را که قبلا ساخته بودیم با استفاده از دستور cd مشخص می‌کنیم. بنابراین داریم:

۱cd Projects/

حال در این پوشه عبارت زیر را تایپ می‌کنیم:

۱composer create-project –prefer-dist laravel/laravel laravel

طی این فرآیند نرم افزار لاراول برای شما به صورت کامل دانلود می‌شود و پس از وارد کردن آدرس laravel.dev صفحه‌ی خوش آمد گویی Laravel 5 را مشاهده خواهید کرد.

۳-۳) نصب پایگاه داده

حال جهت نصب پایگاه داده به مسیر زیر برید

۱C:\Users\YourComputerName\Projects\YourAppName\env.

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

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲APP_ENV=localAPP_KEY=base64:5QCBqdbZJcLb08ybxyQzq2HRM/ebUkeTxCSlxAXWxz8= // این مقدار برای هر سیستم متفاوت استAPP_DEBUG=trueAPP_LOG_LEVEL=debugAPP_URL=http://iot.dev DB_CONNECTION=mysqlDB_HOST=192.168.10.10DB_PORT=3306DB_DATABASE=homesteadDB_USERNAME=homesteadDB_PASSWORD=secret BROADCAST_DRIVER=logCACHE_DRIVER=fileSESSION_DRIVER=fileQUEUE_DRIVER=sync REDIS_HOST=192.168.10.10REDIS_PASSWORD=nullREDIS_PORT=6379 MAIL_DRIVER=smtpMAIL_HOST=mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=nullMAIL_PASSWORD=nullMAIL_ENCRYPTION=null PUSHER_APP_ID=PUSHER_APP_KEY=PUSHER_APP_SECRET=

حال برای تست کردن دیتابیس نرم افزار MySQL WorkBench یا Navicat Premium را دانلود کنید. سپس نرم‌افزار را باز کرده و یک Connection جدید ایجاد کرده و در نهایت فیلدهای زیر را در آنها وارد کنید:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵برای نرم افزارMySQL WorkBench: Connection Method      Standard TCP/IP over SSH Connection parameters      SSH Hostname: 10.0.0.100:22      SSH Username: vagrant      SSH Password: vagrant       MySQL Hostname: 10.0.2.15      MySQL Server Port: 3306      Username: homestead      Password: secret ====================================برای نرم افزارNavicat Premium: Connection Name: YourFavoriteNameHost Name/IP Address: 192.168.10.10Port: 3306User Name: homesteadPassword: secret

سپس روی Test Connection کلیک کنید. در صورتیکه جواب OK بود یعنی ارتباط شما برقرار است.

بسیار عالی در این مرحله با آموزش نصب لاراول در محیط HomeStead آشنا شدید و به قابلیتها و توانایی‌های لاراول در ایجاد محیطی امن و بی دردسر برای کدنویسی پی بردید. در جلسه‌ی بعدی راه حل دوم یعنی نصب لاراول با استفاده از PHPStrom و Xampp در محیط ویندوز را آموزش خواهیم داد. با ما همراه باشید.

فصل ۱- چرا لاراول (سری آموزش رایگان لاراول)

ا

بدلیل منابع فارسی کم و گاها ناقص اینبار با دوره‌ی مجموعه‌ی آموزش کامل ۰ تا ۱۰۰ فریم‌ورک حرفه‌ای لاراول در خدمت شما عزیزان هستیم. این دوره از آموزش‌ها مطابق با آخرین نسخه‌ی لاراول ۵.۴ می‌باشد. امیدواریم با همراهی و همکاری شما عزیزان بتوانیم این مجموعه آموزشی را در صحت محتوا به همراه ارائه‌ی مثال‌های کاربردی به اتمام برسانیم. با اولین فصل از این مجموعه شروع می‌کنیم:

دیگر زمان کدنویسی‌های وب سایت‌های پویا از ۰ تا ۱۰۰ به اتمام رسیده است. یا تنها برای زمانیکه یک تیم بسیار قدرتمند و بزرگ وجود داشته باشد این عمل مقرون به صرفه می‌باشد. امروزه برنامه نویسان حرفه‌ای گاها به فکر استفاده از فریم‌ورک‌هایی متناسب با نوع فعالیت خود هستند. بدین‌معنی که آنها تمایل دارند از ساختار منظم و قانون‌مند کامپوننت‌ها، کتابخانه‌ها و توابع به سادگی هرچه تمام تر استفاده کنند. حال شاید این سوال برای شما بوجود بیاید که چرا فریم‌ورک (FrameWork)؟ یا چرا لاراول (Laravel)؟ در ادامه‌ی به توضیح مفصل این موضوع می‌پردازیم:

چرا فریم‌ورک؟

انتخاب فریم ورک

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

حال فرض کنید که شما نرم‌افزاری را بدون استفاده از فریم‌ورک‌ها ایجاد می‌کنید. از کجا شروع خواهید کرد؟ بسیار خب، احتمالا در ابتدا باید تمام درخواست‌های HTTP‌ را مسیردهی کنید سپس نیاز دارید که تمامی کتابخانه‌های Request (درخواست) و Response (پاسخ) را کدنویسی کرده و آنها را در دسترس قرار دهید. ساخت یک روتر (Router)، وای خدای من چقدر سخت! باید یک روتر برای نرم‌افزار خود بنوسید و تنظیمات آن را مطابق با کتابخانه‌ای که خودتان ایجاد کرده‌اید، تهیه کنید. حال این سوال برای شما پیش می‌آید که از چه سینتکس و ساختاری برای کتابخانه‌های روتر استفاده کنید؟ چه ساختاری برای روتر خود تعیین خواهید کرد؟ چگونه کنترلرهای خود را ایجاد می‌کنید؟ چطور تمامی صفحات را بارگذاری خواهید کرد؟ خب شاید سریعا پاسخ بدهید:‌ با استفاده از تزریق وابستگی‌ها مبحث کنترلرها را بهینه می‌کنم! اما به راستی این کارها چقدر زمان می‌برد؟ اصلا فرض کنیم شما توسعه‌دهنده‌ی بسیار قدری هستید و این سوال‌ها برایتان پوزخندی بیش به ارمغان نمی‌اورد! اما یک درصد فکر کنید شما در یک کار گروهی شرکت کرده‌اید و مدیریت یک پروژه در اختیار شماست آیا هر آنچه در ذهن شما می‌گذرد نیز در ذهن سایر اعضای تیم خواهد گذشت؟! آیا مدت زمانی که بخواهید به آنها آموزش دهید که چگونه ساختار قانون مند ذهن شمارا اجرا کنند، در نظر گرفته‌اید؟ آیا به این فکر کرده‌اید که ساخت یک فریم‌ورک بومی که زاییده‌ی افکار حرفه‌ای برنامه‌نویسی شماست چقدر زمان می‌برد؟

بسیار خب پاسخ به سوال‌های فوق را خودتان بدهید و ما به ادامه‌ی توضیحات این مقاله می‌پردازیم.

با یک تیر ۱۰۰ نشان بزنید!

انعطاف پذیر بودن

حال به این نکته توجه کنید که شما پس از بهره‌مندی از فریم‌ورک دیگر به سوال‌های فوق نباید جواب دهید بلکه سوالات شما نمودی بهتر پیدا می‌کنند. مثلا:‌ از چه کامپوننتی برای ارتباط با پایگاه داده استفاده کنم؟ از چه کامپوننتی برای نمایشگر خروجی خود استفاده کنم؟ و … . شما به مراتب سازگاری مناسب‌تری با فریم ورک خود ایجاد خواهید کرد. علاوه بر این، فریم‌ورک‌ها قوانین و قواعد خاصی را برای شما وضع می‌کنند تا خطای کدزنی و توسعه یک اپلیکیشن را کاهش داده و انسجام تیمی شما را حفظ کنند. بنابراین سازگاری تیمی شما نیز افزایش پیدا می‌کند چون وقتی شما یک پروژه لاراول ایجاد کردید و مثلا بحث روتینگ یا مسیردهی را کاملا متوجه شدید دیگر برای شما فرقی نمی‌کند که عنوان پروژه چیست! بلکه آنچه برای شما حائز اهمیت است سینتکس و ساختار مسیردهی در پروژه‌هاست که یکسان می‌باشد. این یعنی با یک تیر ۱۰۰ نشان زدن!

برای هر تغییری انعطاف‌پذیر باشید!

سازگاری بالا

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

دلایلی که برای شما عزیزان ارائه کردیم مستند و بر اساس تجربه‌ی کاری حاصل شده است لذا از توضیح بیش از اندازه‌ی فواید استفاده از فریم‌ورک پرهیز کرده و در ادامه‌ی مقاله به صورت تیتروار برخی از اساسی‌ترین دلایل استفاده از فریم‌ورک‌ها را شرح خواهیم داد:

  • افزایش سرعت توسعه نرم‌افزارها
  • تولید کد‌ها و برنامه‌های سازماندهی شده جهت استفاده مجدد و نگه‌داری
  • افزایش امنیت وب سایت برای خطاهایی سطح پایین
  • استفاده از ساختار MVC (مخفف کلمات Model-View-Controller) رجوع شود به مقاله‌ی آموزش MVC در PHP
  • استفاده از ابزار مدرن برنامه‌نویسی تحت عنوان برنامه‌نویسی شیء گرایی (Object-Oriented-Programming)

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

ویژگی‌های لاراول Laravel

بنده بر اساس تجربیات کاری با چندین فریم‌ورک و البته با مطالعه‌ی چند مقاله‌ی قدرتمند به این نتایج دست پیدا کردم که با شما عزیزان به اشتراک می‌گذارم:

  • هسته‌ی توسعه‌پذیر و سریع
  • مسیردهی (routing) ساده و تمیز
  • سیستم تایید هویت کاربری خودکار (Authentication)
  • سیستم ACL حرفه‌ای و پیشرفته
  • استفاده از مفهومی به نام Eloquent برای برقراری ارتباط بین مدل و پایگاه داده
  • دارای کلاس‌ها و توابع بسیار متنوع
  • شیءگرایی بسیار حرفه‌ای و منسجم
  • پشتیبانی همزمان از چندین بانک اطلاعاتی (SQL Server, MySQL, PostgerSQL, SQLight, Oracle)
  • استفاده از موتور قالب Blade جهت طراحی بسیار ساده‌ی View
  • رابط و ORM بسیار ساده
  • نصب و اجرای کاملا ساده با استفاده از Composer
  • پشتیبانی از Unit Test
  • وجود صف‌ها (Queue) و کارها (Jobs) برای اجرای فعالیت‌های طولانی
  • انجمن بسیار فعال جهت پاسخگویی به سوالات
  • منابع آموزشی بسیار فراوان
  • سطح امنیتی بسیار بالا

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