Шаблондар сіздің бағдарлама негізінде болатын бағдарлама мен домендік логикасының көрсету логикасынан айырадылату үшін қолайлы жол ұсынады. Шаблондардың өзі әдетте сіздің бағдарлама HTML-дегі мазмұндарын қамтиды, бірақ басқа форматтар үшін де пайдалануға болады, міне, XML деп. Шаблондарды көбінеулікті модель-көрсету-контроллер (MVC) бағдарлама жасауының екінші компонентінің бір бөлігі деп аталады.
Шаблондарды пайдалануның ең басты қосымшасы - олардың көрсету логикасы мен сіздің бағдарламаныздың қалпына көшуінің ашықтық жасауы. Шаблондардың басқа бір міндеті - қарау мазмұнын көрсету. Олар деректерді іздеу, қалыптастыру немесе басқа қиын іс-шараларды орындау үшін жауапты емесдіктер. Бұл чистеу, оқауы жаттықтыру, байланыс жасау жаттықтыру, дизайнерлердің клиент-тізім кодын (markup) жасаушы кодында жұмыс жасауында өзгерісті жаттықтыру маңызды болады.
Шаблондар өзара көмекшіліктілігін арттырады. Шаблондар өзгеу көрсету кодының ұйымдастырылуын арттырады. Шаблондарды басқа бір “views” (көрсету) папкасында тұрмысты белгіленген файлдарда орналастыру әдісті көмекшілігімен көмек көрсетуін дайындайды. Бұл әдісе ұлғайырсыну, әр түрлі кодты кіші бөлігінде тастайтын көмекші кодты қайта пайдалануын болдырмауын бұландайды. Мысалы, сайттың көзі мен асты шаблондары ретінде белгіленсе, олар әр бет шаблондарынан алдында және артында қосылған боларын көрсетуі мүмкін.
Соңында, сіздің пайдаланатын кітапхананың байланысы бойынша, шаблондар пайдаланушы жасау мазмұнын автоматты тазалау арқылы қауіпсіздікті көтере алады. Кейде кітапханалар темір тау бойынша тексерілген қосылымдар мен функцияларға тексеріп көретін жасаушыларға рұқсат беру көмекшілігін ұсынайды.
Тұрау PHP шаблондары әдетте қатерлі PHP кодты қолданатын шаблондарды айырады. PHP шынайы өзі бір шаблон тілі болып табылады, сондықтан олар тізімді көмекші кодтармен біріктіре алады, міне, HTML деп. Бұл PHP дамытушылары үшін елсіз таңдау болып табылады, себебі оларге үстірт кодты көрсету, олардың қолданушыларына тұсыну қолданылатын функцияларды білуді қажет емес, мен екінші компиляциялар кезеңінің өтіп кетуі көмекші.
Әр түрлі жаңа бағдарлама түріндегі белгіленген кездерде Plates не Aura.View сияқты кітапханалар оларды аспаптырау, жаңа шаблон функционалдарын ұсынатын өзгертуші көмекшіліктерді пайдаланады. Оларда көзделген функционалдар бойынша көмекшіліктер, мазмұндар мен кеңейтілулер меніңдету функционалдарды ұсыну мүмкін.
Plates кітапханасын пайдалану арқылы.
<?php // user_profile.php ?>
<?php $this->insert('header', ['title' => 'Пайдаланушы Профилі']) ?>
<h1>Пайдаланушы Профилі</h1>
<p>Сәлеметсіздік, <?=$this->escape($name)?></p>
<?php $this->insert('footer') ?>
Plates кітапханасын пайдалану арқылы.
<?php // template.php ?>
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<main>
<?=$this->section('content')?>
</main>
</body>
</html>
<?php // user_profile.php ?>
<?php $this->layout('template', ['title' => 'Пайдаланушы Профилі']) ?>
<h1>Пайдаланушы Профилі</h1>
<p>Сәлеметсіздік, <?=$this->escape($name)?></p>
PHP көмекшілігімен келісіп шығарады жаттықтырудан басқа, ол көмекші тілі ретінде жетімділікке ие болмаған. Олар, міне, Twig, Brainy, немесе Smarty* тіркеу көмекшілігімен бұл босағын толтырарып, өзіндік синтаксистік келісімді ұсынады. Автоматты тазалаудан, әдісесі мен қарапайым басқару құрылымдарынан табысқанып, компиляцияланған шабтар жазуы, оқуы жаттығу және қолайлы пайдалануға арналған болады. Компиляцияланған шабтарды бейімделу, оқуы көп оқылу, пайдалануға арналуы мақсатында жасалған. Компиляцияланған шабтарды дайынды тілдерді көмекшілігімен бөлісуге болады, мысалы, Mustache бұл мысал. Бұл шабтарды компиляциялау керек болатын себепті, дайынды кешін пайдалану кезінде, бірақ бұл тура басқаларды салу кезінде ашықтың жаттығуы болады.
*Smarty автоматты тазалауды ұсынады, бірақ бұл функционал әдетте өзгертуші болмайды."
Twig кітапханасын пайдалану арқылы.
{% include 'header.html' with {'title': 'Пайдаланушы Профилі'} %}
<h1>Пайдаланушы Профилі</h1>
<p>Сәлеметсіздік, {{ name }}</p>
{% include 'footer.html' %}
Twig кітапханасын пайдалану арқылы.
// template.html
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
// user_profile.html
{% extends "template.html" %}
{% block title %}Пайдаланушы Профилі{% endblock %}
{% block content %}
<h1>Пайдаланушы Профилі</h1>
<p>Сәлеметсіздік, {{ name }}</p>
{% endblock %}