آموزش لاراول – Templates

Image تحقیقات

آموزش لاراول – Templates

سلام دوستان خوبم

امیدوارم حالتون خوب باشه.

تو این جلسه از آموزش فریم ورک محبوب لاراول ، میرم سراغ اشنایی و کار با تمپلت انجین (template engines) .

اول یه معرفی کنید که template engines چی هست ؟

template engines در واقع رابط بین مقدارها یا متغیرهای برنامه های سمت سرور (php) با HTML می باشد و دیگر نیازی نیست در صفحه های HTML سایتمون از کدهای PHP استفاده کنیم و کدنویسی کثیفی رو ایجاد کنیم.

به مثال زیر دقت کنید :



  
    {page_title}
  
  {titr}
    {text}
  

همان طور که مشاهده می کنید در این مثال از {text} و {titr} و {page_title} استفاده شده است و بیان گر این است که این 3 متغیر از طرف زبان سمت سرور (PHP) فرستاده میشه و در اینجا به صورت اتوماتیک قرار میگیرد.

پس دیگر نیازی نیست مثلا بنویسیم echo titr  و به جای ان فقط می نویسیم {titr}.

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

برای حلقه های for  ویا  دستور شرطی if و … هم ساختارهای خوبی وجود دارد.

مزایای استفاده از template engines :

  • اولین فایده ان ، مجزا کردن بخش طراحی سایت (Html.css) با بخش برنامه نویسی (php) سایت است. و به راحتی هر بخش را یه گروه انجام می دهد.
  • دومین فایده امنیت است که به راحتی داده ها را escape می کنیم.
  • سومین فایده عیب یابی راحت تر برنامه هست.
  • چهارمین فایده ،ایحاد قالب های مختلف برای سایتمون.

 

 برای مقایسه تمپلت انجین ها به سایت ویکی پدیا مراجعه کنید

خب حالا نوبت اینه بریم سراغ لاراول و تمپلت انجین مخصوص لاراول:

تمپلت انجینی که لاراول برای ما فراهم کرده blade نام داره. و اگر میخواین با این تملپت انجین کار کنید باید صفحات بخش View برنامتون رو یه جای php. ، با پسوند blade.php. ذخیره کنید و هرجا نیاز داشتین تا view ای را صدا بزنید کافی است فقط نام اون view را صداکنید بدون پسوند blade.php.

همان طور که میدانید برای فرستادن مقدار و متغیر ها از کنترلر به View ازکد زیر استفاده می کنیم :

View::make('login')->with('message'=>'hello');

در این کد ما متغیری به نام message رو کا حاوی مقدار hello است به سمت View به نام login فرستادیم تا در View ازش استفاده کنیم.

برای نمایش این متغیر در View کافیه کد زیر را قرار بدیم :

{{$message}}

نام متغیری که پاس دادیم را در داخل 2تا {} قرار میدیم.

اگر بخوایم لاراول قبل از نشان داده متیغر اون رو escape کنه  از 3 تا {} استفاده می کنیم :

{{{$message}}}

مثلا اگه بخوایم زمان رو نشون بدیم به کاربر کافیه تابع time رو داخل 2 یا 3 تا {} قرار بدیم.

The current UNIX timestamp is {{{ time() }}}.

 

یا مثلا اگه بخوایم اول چک کنیم که اصلا متغیری به نام name ارسال شده یا نه.و اگر ارسال شده بود مقدار اون رو نشان بدیم :

{{{ isset($name) ? $name : 'Default' }}}

حتی میتونیم مقدار پیشفرضی هم تایین کنیم که مثلا اگر متغیری به نام name مقدار دهی نشده بود.ارور نده و اون مقدار پیشفرض رو چاپ کنه :

{{{ $name or 'Default' }}}

 

Displaying Raw Text With Curly Braces

خب حالا اگه جایی لازم داشتین تا لاراول ، به نوشته ی ما گیر نده و اون رو جزو کدهای تمپلت انجین حساب نکنه کافی است پشت } یک @ قرار بدیم :

@{{ This will not be processed by Blade }}

 

If Statements

همان طور که قبلا عرض کردم.در داخل تمپلت انجین ها عبارت شرطی و حلقه هم وجود دارد. در تمپلت انجین blade در فریم ورک لاراول ، If به گونه ی زیر است :

@if (count($records) === 1)
    I have one record!
@elseif (count($records) > 1)
    I have multiple records!
@else
    I don't have any records!
@endif

@unless (Auth::check())
    You are not signed in.
@endunless

 

Loops

در مثال زیر ، حلقه های For,Foreach,Forelse,while رو براتون قرار دادم.

@for ($i = 0; $i < 10; $i++)
    The current value is {{ $i }}
@endfor

@foreach ($users as $user)

This is user {{ $user->id }}


@endforeach

@forelse($users as $user){{ $user->name }}
@empty

No users


@endforelse

@while (true)

I'm looping forever.


@endwhile