ویژگی های اصلی Laravel

در این فصل، تنها بر روی ویژگی‌های استفاده‌شده در طول ساخت برنامه وب ecommerce تمرکز خواهیم داشت.

معماری

Laravel یک فریم ورک برنامه وب است که تلاش می‌کند تا فرایند توسعه توسط وظایف تکراری ساده استفاده‌شده در اکثر برنامه‌های وب امروزی، شامل؟ محدود به مسیریابی، احراز هویت، caching،sessions تسهیل سازد.

ازآنجایی‌که Laravel انجام تمامی وظایف از ارائه خدمات وب و مدیریت پایگاه داده را بر اساس HTML مدیریت می‌کند، به‌عنوان‌یک فریم ورک full stack نامیده می‌شود. این محیط توسعه وب یکپارچه عمودی به معنای ارائه گره جریان کاری بهبودیافته برای توسعه‌دهنده می‌باشد.

برخلاف سایر محیط­های یکپارچه عمودی، Laravel در روش خود برای پیمایش اولویت‌بندی منحصربه‌فرد می­باشد. در حقیقت، هنگامی‌که بسیاری از فریم ورک­های php یک تنظیم XML قوی را پیش از آغاز پروژه واقعی درخواست می­کنند،  Laravel تنها به چند خط کد php نیاز دارد تا ویرایش شود و برای استفاده آماده گردد. امتناع یا استفاده از حداقل میزان فایل­های پیکربندی به‌تمامی برنامه­های وب Laravel یک ساختار کد مشابهی را ارائه می­دهد که بسیار قابل‌شناسایی و تشخیص است.

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MVC

اصطلاح MVC به‌طور خلاصه در ابتدای این فصل اشاره شد و بیان می­شود که Laravel درواقع یک فریم ورک تمام‌عیار MVC می­باشد. MVC به‌سرعت به‌عنوان استاندارد صنعت که در بسیاری از محیط­های توسعه مدرن استفاده می­شود تبدیل گردید. بسیاری از فریم ورک­ها مانند Ruby، Asp.net، cakephp و Code Igniter استفاده از آن را برای جداسازی منطق پشت برنامه از لایه نمایش ایجاد می­کنند.

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

الگوی معماری MVC به توسعه‌دهنده اجازه می­دهد تا کدی که می­تواند بر اساس 3 مورد زیر ایجاد گردد را تقسیم‌بندی کند:

  1. مدل
  2. نمایش
  3. کنترل

 

Model

یک مدل حالتی است که به‌وسیله توسعه‌دهنده‌ای می­توان داده را دست‌کاری کرد. آن شامل لایه مندرج بین داده و برنامه می­باشد. این داده می­تواند در انواع مختلفی از سیستم­های پایگاه داده مانند mysql یا حتی فایل­های XML و Excel ساده ذخیره شود.

 

View

Viewها نمایش بصری وب می­باشد (لایه نمایش)، آن­ها مسئول نمایش داده‌ای است که کنترلر از Model دریافت می­کند(منطق تجاری)، آن­ها می­توانند به‌سادگی با استفاده از زبان Blade template  ساخته شود که با Laravel یا به‌سادگی توسط کد php ساده ارائه شود. Blade توسط قالب ارشادی و sectionها ایجاد می­شود. هنگامی‌که Laravel این viewها را render می­کند، ابتدا پسوند فایل آن­ها را آزمایش می­نماید و مبتنی بر blade.php یا .php می­باشد،سپس تعیین می­کند که آیا Laravel نمایش view را به‌صورت blade رفتار می­کند یا نه؟

 

Control

وظیفه اصلی Controller مدیریت درخواست­ها و ارسال داده از Model به view می­باشد. بنابراین، یک کنترلر می­تواند به‌عنوان لینکی بین model و viewها در نظر گرفته شود. توسعه‌دهنده گزینه‌ای برای نوشتن منطق تجاری خود یا بر روی روترها یا کنترلرها دارد. روترها می­توانند هنگام تعامل با یک برنامه وب کوچک یا یافتن صفحات ایستا به‌سرعت مفید باشند.

نوشتن کنترلر­ها برای هر صفحه ساده برنامه وب لازم نیست.

پایگاه داده

_  Eloquent ORM

Eloquent ORM با Laravel شامل یک پیاده‌سازی Active Record ساده است که با توسعه‌دهنده امکان می­دهد تاquery های پایگاه داده با یک گرامرphp  به‌جای نوشتن کدsql  را مدنظر قرار دهد. هر جدول در پایگاه داده یک مدل ارتباطی از طریق تعامل توسعه‌دهنده با جدول گفته‌شده را ایجاد می­کند.

_  Schema builder

کلاسLaravel Schema  یک پایگاه داده است که روش مدیریت تمامی پایگاه داده­های مرتبط را باکارهای همچون ایجاد یا حذف جداول و افزودن فیلدها به یک جدول موجود است.آن با تعداد زیادی سیستم­های پایگاه داده پشتیبانی شده توسط  Laravel و mysql کار می­کند. این کلاس  Schema همان API مربوط به‌تمامی سیستم­های پایگاه داده می­باشد.

_  مدیریت پایگاه داده با مهاجرت به آن

مهاجرت­ها می­تواند به‌صورت شکلی از کنترل ؟ برای پایگاه داده در نظر گرفته شود. آن­ها به ما امکان تغییر Schema پایگاه داده را می­دهد و تمامی تغییرات خاصی در یک فایل مهاجرت تشریح و ثبت می­کند. هر مهاجرت معمولاً با یکSchema builder مرتبط است. یک مهاجرت می­تواند همچنین با استفاده از همان فایل اشاره‌ شده بازگشت شود.

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

Command Description
$ php artisan migrate:install Creates the migration repository
$ php artisan migrate:make Creates a new migration file
$ php artisan migrate:refresh Resets and reruns all the migrations
$ php artisan migrate:reset Rollback all the database migrations
$ php artisan migrate:rollback Rollback the last database migration

 

– Seederl

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

هنگامی‌که backend خالی است، می‌توان آن را با داده‌هایی به‌سادگی از طریق دستور زیر برگرداند.

$php artisan db:seed

composer 

ویژگی دیگری که Laravel از فریم ورک های دیگر استخراج می‌شود، composer می‌باشد. در حقیقت، Laravel ترکیبی از اجزا composer مختلف می‌باشد، این‌یک عملیات بینابینی به فریم ورک اضافه می‌کند.

Composer یک ابزار مدیریتی وابسته به php است و در اصل، نقش اصلی composer در فریم ورک Laravel این است که وابستگی پروژه را مدیریت می‌کند.به‌عنوان‌مثال، اگر یکی از کتابخانه‌های در حال استفاده در پروژه به 3 کتابخانه دیگر وابسته باشد و نیاز به به‌روزرسانی تمامی این کتابخانه‌ها دارد، نیازی به یافت و به‌روزرسانی دستی فایل‌ها نیست.این امکان وجود دارد تا تمامی 4 کتابخانه از طریق یک دستور ساده زیر به‌روز شود:

$Composer update

Composer دارای توانایی مدیریت وابستگی‌ها به سطح nام  ارائه‌شده را دارد، به این معنا که تمامی وابستگی‌های پروژه ما می‌تواند از طریق یک ابزار ساده انجام شود.مزیت دیگر استفاده از Composer این است که فایل autoload را در دایرکتور root تولید و مدیریت می‌کند که شامل تمامی وابسته‌های پروژه است.با انجام این کار، دیگر نیازی نیست تا توسعه‌دهنده تمامی مسیرهای وابسته متشکل از هر فایل پروژه را به خاطر بسپارد.

Composer به شکل یک php جداشده نصب می‌شود که به متغیر محیطی PATH اضافه می‌شود. یک متغیر محیطی PATH لیستی از مکان‌های است که هنگامی‌که یک دستور در ترمینال اجرا می‌شود بررسی می‌گردد. هنگامی‌که Composer نصب می‌شود، توسعه‌دهنده می‌تواند آن را از طریق خط فرمان از هر مکانی در سیستم فایل با استفاده از دستور”$ Composer” اجرا کند. این پروژه و وابسته‌های آن، با یک فایل JSNON به نام Composer.jsnon تعیین می‌شود.

Composer روشی است که توسط انجمن php هدایت می‌شود، بنابراین، هزاران بسته تست‌شده در حال حاضر در آرشیو بسته Composer وجود دارد.laravel در چنین روشی طراحی‌شده است که بسته‌های Composer به‌سادگی یکپارچه می‌شوند.تمامی چیزهایی که Composer نیاز دارد تا انجام شود، خواندن محتوای فایل Composer.jason و اتصال به  packaglist که یک مخزن آنلاین بسته‌ها می‌باشد است.این وابسته‌ها سپس در دایرکتوری محلی به نام sendorl دانلود می‌شود و این وضعیت در فایل به نام Composer.lock ثبت می‌گردد.

Laravel باقدرت Composer آزادی بیشتری به توسعه‌دهنده در انتخاب اینکه کدام نوع بسته برای استفاده در برنامه وب می‌دهد. به‌عنوان‌مثال، اگر توسعه‌دهنده نخواهد عنصر Mail پیش‌فرض که با Laravel ارائه نشود، swift maver که می‌خواهد آن را با بسته‌ای مانند phpMailer جایگزین کند در این صورت Composer آماده است. بنابراین، سوئیچینگ بین دو بسته وظیفه‌ی خیلی آسانی است. توسعه‌دهنده می‌تواند عناصر را به‌سادگی جایگزین کند.

Artisan

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

Artisan حتی امکان ایجاد دستورات خود را می‌دهد و انجام کارهای مناسب با آن‌ها همچون ارسال ایمیل‌های pending به مخاطبان یا هر چیزی که می‌تواند برای اجرای برنامه وب خود لازم باشد را می‌دهد.

اسکرول به بالا