Blade PHP: पूर्ण गाइड उदाहरण सहित

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Blade PHP: पूर्ण गाइड उदाहरण सहित

1. यह क्या है और क्यों ज़रूरी है

Blade एक शक्तिशाली और सुरुचिपूर्ण टेम्पलेट इंजन है जो Laravel फ्रेमवर्क का हिस्सा है। यह HTML टेम्पलेट के साथ काम करने के लिए एक सुविधाजनक सिंटैक्स प्रदान करता है, जिससे डेवलपर्स प्रेजेंटेशन लॉजिक को एप्लिकेशन की बिज़नेस लॉजिक से अलग कर सकते हैं। शुद्ध PHP के विपरीत, Blade लूप, कंडीशन, टेम्पलेट इनहेरिटेंस और कंपोनेंट इंसर्शन के लिए संक्षिप्त कंस्ट्रक्ट प्रदान करता है, जो कोड को अधिक पठनीय और मेंटेन करने योग्य बनाता है।

Blade का मुख्य उद्देश्य डायनामिक वेब पेज बनाना सरल बनाना है। यह टेम्पलेट को सामान्य PHP कोड में कंपाइल करता है, जो तब तक कैश किया जाता है जब तक टेम्पलेट में बदलाव न हो। यह उच्च प्रदर्शन सुनिश्चित करता है, क्योंकि हर रिक्वेस्ट पर दोबारा कंपाइल करने की ज़रूरत नहीं होती। Blade आउटपुट एस्केपिंग ({{ }} फंक्शन) के माध्यम से XSS अटैक से बिल्ट-इन सुरक्षा भी प्रदान करता है।

Blade Laravel प्रोजेक्ट के लिए आदर्श है, लेकिन इसे अलग से भी इस्तेमाल किया जा सकता है (jenssegers/blade पैकेज के ज़रिए)। यह टेम्पलेट इनहेरिटेंस (लेआउट), सेक्शन, कंपोनेंट, स्लॉट, कंडीशनल डायरेक्टिव और बहुत कुछ सपोर्ट करता है। अपनी सादगी और लचीलेपन के कारण, Blade PHP इकोसिस्टम में टेम्पलेटिंग का डी-फैक्टो मानक बन गया है।

2. इंस्टॉलेशन

Blade Laravel के साथ आता है, इसलिए फ्रेमवर्क के अंदर इसका उपयोग करने के लिए अतिरिक्त इंस्टॉलेशन की आवश्यकता नहीं है। यदि आप Blade को अलग से उपयोग करना चाहते हैं (जैसे, Laravel के बिना किसी प्रोजेक्ट में), तो Composer के माध्यम से पैकेज इंस्टॉल करें:

composer require jenssegers/blade

इंस्टॉलेशन के बाद, आपको Blade क्लास का एक इंस्टेंस बनाना होगा और टेम्पलेट और कैश के लिए पथ निर्दिष्ट करने होंगे:

use Jenssegers\Blade\Blade;

$blade = new Blade('views', 'cache');
echo $blade->render('index', ['name' => 'दुनिया']);

जहाँ views टेम्पलेट वाला फ़ोल्डर है, और cache कैश की गई फ़ाइलों के लिए फ़ोल्डर है।

3. त्वरित शुरुआत — न्यूनतम कार्यशील उदाहरण

एक टेम्पलेट फ़ाइल views/hello.blade.php बनाएँ:

<!DOCTYPE html>
<html>
<head>
    <title>नमस्ते, {{ $name }}!</title>
</head>
<body>
    <h1>स्वागत है, {{ $name }}!</h1>
    @if (strlen($name) > 5)
        <p>आपका नाम लंबा है!</p>
    @else
        <p>छोटा और प्यारा नाम।</p>
    @endif
</body>
</html>

अब रेंडरिंग के लिए एक PHP स्क्रिप्ट बनाएँ:

require 'vendor/autoload.php';

use Jenssegers\Blade\Blade;

$blade = new Blade('views', 'cache');
echo $blade->render('hello', ['name' => 'राहुल']);

परिणाम: अभिवादन और शर्त संदेश के साथ एक HTML पेज।

4. मुख्य तरीके/फंक्शन/क्लासेस

4.1. @extends — टेम्पलेट इनहेरिटेंस

सिग्नेचर: @extends('layout.name')

यह क्या करता है: यह बताता है कि वर्तमान टेम्पलेट किसी दूसरे (पैरेंट) टेम्पलेट को इनहेरिट करता है।

उदाहरण:

<!-- layouts/app.blade.php -->
<html>
<head>
    <title>@yield('title')</title>
</head>
<body>
    @yield('content')
</body>
</html>

<!-- pages/home.blade.php -->
@extends('layouts.app')

@section('title', 'होम पेज')

@section('content')
    <h1>स्वागत है!</h1>
@endsection

4.2. @section और @yield — सेक्शन

सिग्नेचर: @section('name', 'default') और @yield('name', 'default')

यह क्या करता है: कंटेंट का एक सेक्शन परिभाषित करता है जो @yield के माध्यम से पैरेंट टेम्पलेट में डाला जाएगा।

उदाहरण:

<!-- parent.blade.php -->
<div>
    @yield('sidebar', 'साइडबार डिफ़ॉल्ट')
</div>

<!-- child.blade.php -->
@extends('parent')

@section('sidebar')
    <ul>
        <li>होम</li>
        <li>ब्लॉग</li>
    </ul>
@endsection

4.3. @if, @elseif, @else, @endif — कंडीशनल स्टेटमेंट

सिग्नेचर: @if(condition)...@elseif(condition)...@else...@endif

यह क्या करता है: PHP के if-elseif-else कंस्ट्रक्ट का एक साफ विकल्प प्रदान करता है।

उदाहरण:

@if($score >= 90)
    <p>ग्रेड: A</p>
@elseif($score >= 75)
    <p>ग्रेड: B</p>
@else
    <p>ग्रेड: C</p>
@endif

4.4. @unless — नेगेटिव कंडीशन

सिग्नेचर: @unless(condition)...@endunless

यह क्या करता है: @if(!condition) के समान, लेकिन अधिक पठनीय है।

उदाहरण:

@unless($user->isAdmin())
    <p>आप एडमिन नहीं हैं।</p>
@endunless

4.5. @for, @foreach, @while — लूप

सिग्नेचर: @for($i=0; $i<10; $i++)...@endfor, @foreach($items as $item)...@endforeach, @while(condition)...@endwhile

यह क्या करता है: PHP लूप का एक साफ सिंटैक्स प्रदान करता है।

उदाहरण:

<ul>
@foreach($users as $user)
    <li>{{ $user->name }}</li>
@endforeach
</ul>

4.6. @php — इनलाइन PHP कोड

सिग्नेचर: @php ... @endphp

यह क्या करता है: टेम्पलेट के अंदर सीधे PHP कोड चलाने की अनुमति देता है।

उदाहरण:

@php
    $total = array_sum($prices);
@endphp
<p>कुल: {{ $total }}</p>

4.7. @include — सब-टेम्पलेट शामिल करना

सिग्नेचर: @include('view.name', ['key' => 'value'])

यह क्या करता है: वर्तमान टेम्पलेट में दूसरे टेम्पलेट को शामिल करता है।

उदाहरण:

<!-- header.blade.php -->
<header>साइट हेडर</header>

<!-- page.blade.php -->
@include('header')
<main>मुख्य सामग्री</main>

4.8. @component और @slot — कंपोनेंट

सिग्नेचर: @component('component.name')...@slot('name')...@endslot...@endcomponent

यह क्या करता है: पुन: प्रयोज्य UI कंपोनेंट बनाने और उपयोग करने की अनुमति देता है।

उदाहरण:

<!-- components/alert.blade.php -->
<div class="alert alert-{{ $type }}">
    {{ $slot }}
</div>

<!-- usage -->
@component('components.alert', ['type' => 'success'])
    <strong>सफलता!</strong> डेटा सेव हो गया।
@endcomponent

4.9. @csrf — CSRF टोकन

सिग्नेचर: @csrf

यह क्या करता है: एक छिपा हुआ CSRF टोकन फ़ील्ड जनरेट करता है, जो Laravel फॉर्म के लिए आवश्यक है।

उदाहरण:

<form method="POST" action="/submit">
    @csrf
    <input type="text" name="name">
    <button type="submit">सबमिट करें</button>
</form>

4.10. @method — HTTP मेथड स्पूफिंग

सिग्नेचर: @method('PUT')

यह क्या करता है: एक छिपा हुआ _method फ़ील्ड जनरेट करता है, जो Laravel को PUT, PATCH, DELETE जैसे HTTP मेथड को हैंडल करने की अनुमति देता है।

उदाहरण:

<form method="POST" action="/update/1">
    @csrf
    @method('PUT')
    <input type="text" name="title">
    <button type="submit">अपडेट करें</button>
</form>

5. निष्कर्ष

Blade PHP डेवलपर्स के लिए एक शक्तिशाली और उपयोगकर्ता-अनुकूल टेम्पलेट इंजन है। इसका साफ सिंटैक्स, बिल्ट-इन सुरक्षा सुविधाएँ, और Laravel के साथ सहज एकीकरण इसे आधुनिक PHP वेब एप्लिकेशन के लिए एक उत्कृष्ट विकल्प बनाता है। चाहे आप एक छोटा ब्लॉग बना रहे हों या एक बड़ा एंटरप्राइज एप्लिकेशन, Blade आपके टेम्पलेटिंग कार्यों को सरल और कुशल बनाता है।

Blade की पूरी क्षमता का उपयोग करने के लिए, Laravel डॉक्यूमेंटेशन देखें और विभिन्न डायरेक्टिव के साथ प्रयोग करें। हैप्पी कोडिंग!

अनुशंसाएँ