Comparison

This page compares CandidTemplate with popular templating engines like Twig and Blade.

---

1. Overview

Feature CandidTemplate Blade (Laravel) Twig
Approach DOM-based String / compiled String / compiled
Syntax Pure HTML + PHP API Custom directives Custom syntax
Learning Curve Low (HTML-based) Medium Medium
Nested Layouts ✔ Native
Component System Includes + Slots Components Includes
Loop Handling DOM cloning Template loops Template loops
Vue Compatibility ✔ Safe ⚠ Needs care ⚠ Needs care
HTML Safety ✔ DOM enforced ⚠ string-based ⚠ string-based
Separation of Logic ✔ Data files ✔ Controllers ✔ Controllers
---

2. Syntax Comparison

---
CandidTemplate

$tpl->pick('title')->content('Hello');
---
Blade

{{ $title }}
---
Twig

{{ title }}
---

3. Loop Comparison

---
CandidTemplate

foreach ($users as $u) {
    $item = $tpl->addLoopItem('users');
    $item->pick('name')->content($u['name']);
}
---
Blade

@foreach ($users as $u)
  {{ $u->name }}
@endforeach
---
Twig

{% for u in users %}
  {{ u.name }}
{% endfor %}
---

4. Layout Comparison

---
CandidTemplate

<div data-slot="content"></div>
---
Blade

@yield('content')
---
Twig

{% block content %}{% endblock %}
---

5. Key Differences

---

6. When to Use Each

Use Case Recommended Engine
Laravel app Blade
Symfony app Twig
Structured UI with Vue CandidTemplate
Simple PHP templating CandidTemplate
---

7. Strengths of CandidTemplate

---

8. Limitations

---

9. Summary

CandidTemplate is ideal for structured, component-driven applications where HTML integrity and Vue compatibility are important.