فهرست:
لاراول از موتور Blade که یک موتور وسوسه انگیز برای طراحی منحصر است استفاده می کند، طراحی پیاده شده در این موتور به نحوی است که می تواند توسط دیگر View ها فراخوانده شود و در آن ها نیز مورد استفاده قرار گیرد. وقتی موتور Blade با دیگر موتورهای مشابه دیگر مقایسه می شود، از لحاظ ویژگی های زیر بی نظیر است:
- استفاده از کد
PHPدرViewها را محدود نمی کند. Viewهای طراحی شده درBlade، تا قبل از ایجاد تغییرات جدید بصورت کامپایل شده و کش شده مورد استفاده قرار می گیرند.
فایل های مورد استفاده در این بخش در بخش resources/views قرار می گیرند.
مراحل ایجاد طرح بندی قالب Blade
برای ایجاد یک قالب Blade باید مراحل زیر را مرحله به مرحله انجام دهید. مرحله اول:
- داخل پوشه
resources/viewsیک پوشه به نامlayoutایجاد کنید. ما از این پوشه برای ذخیره همه طرح ها با هم استفاده می کنیم. - یک نام فایل
master.blade.phpایجاد کنید که کد زیر را به همراه داشته باشد.
[pastacode lang=”markup” manual=”%3Chtml%3E%0A%20%20%20%3Chead%3E%0A%20%20%20%20%20%20%3Ctitle%3EDemoLaravel%20-%20%40yield(‘title’)%3C%2Ftitle%3E%0A%20%20%20%3C%2Fhead%3E%0A%20%20%20%3Cbody%3E%0A%20%20%20%20%20%20%40yield(‘content’)%0A%20%20%20%3C%2Fbody%3E%0A%3C%2Fhtml%3E” message=”master.blade.php” highlight=”” provider=”manual”/]
مرحله دوم: در این مرحله، باید طرح را توسعه دهیم. توسعه یک طرح شامل تعریف عناصر کوچکتر طرح و فراخوانی آنها در طرح اصلی است. لاراول از دستورالعمل @extends برای تعریف عناصر کوچکتر استفاده می کند. هنگامی که یک طرح را توسعه می دهید، به نکات زیر توجه داشته باشید:
- لاراول محتوا ایجاد شده برای
Viewها را در Blade Layout به روشی منحصر به فرد تزریق می کند. - بخشهای مختلف View به عنوان عناصر کوچک ایجاد می شوند.
- هر یک از عناصر کوچک در فرمتی مشابه
child.blade.phpدر پوشهlayoutتعریف و نام گذاری می شوند.
موارد مورد اشاره در بالا در مثال زیر قابل بررسی می باشد.
[pastacode lang=”markup” manual=”%40extends(‘layouts.app’)%0A%40section(‘title’%2C%20’Uclass.ir%20Title’)%0A%40section(‘sidebar’)%0A%20%20%20%40parent%0A%3Cp%3EThis%20refers%20to%20the%20master%20sidebar.%3C%2Fp%3E%0A%40endsection%0A%40section(‘content’)%0A%3Cp%3EThis%20is%20my%20body%20content.%3C%2Fp%3E%0A%40endsection” message=”” highlight=”” provider=”manual”/]
