Хелперы в kohana 3.2

Здравствуйте ,сегодня мы рассмотрим хелперы в фреймворке kohana 3.2.

Хелперы (Helpers – помощники) — можно сказать это готовые функции ,заготовки для облегчения,стандартизации многих задач которые постоянно возникают перед разработчиками.
Такие как работа к примеру с формами ,массивами ,сессиями ,куками и т.д и т.п
Сами хелперы находятся в папке system/classes/kohana ,также они наследуются из папки system/classes/.
Название хелпера и есть название файла. К примеру хелпер Arr:: следует искать в папке system/classes/kohana/arr.php. Если вы хотите что-либо изменить то ни в коем случае не вносите изменения в файле которые лежат в system/classes/kohana лучше добавить/изменить в классе который лежит уровнем выше и наследуется от коренного класса или вообще написать свой класс наследуемый от коренного класса.
Все хелперы в kohana очень подробно снабжены комментариями, при достаточном навыке чтения тех.документации проблем не должно возникнуть никаких ,также подробнее о хелперах вы можете узнать из офф.мануала
Хелперов в kohane великое множество сегодня же мы остановимся на самых популярных и часто используемых.

    1. Работа с HTML  (вставка ссылок, стилей, javascript и прочее) — helper HTML::
    2. Работа с формами (открытие,закрытие,input,textarea и прочее) — helper Form::

1.1 Хелпер HTML::style — служит для добавления файлов стилей .css в файлы вида.
К примеру

<link type="text/css" href="/themes/default/css/main.css" rel="stylesheet" />

Можно заменить

<br />
HTML::style('/themes/default/css/main.css');<br />

1.2. Хелпер HTML::script — служит для добавления файлов скриптов .js в файлы вида.
К примеру

<br />
<script type="text/javascript" src="/themes/default/js/default.js"></script><br />

Можно заменить

<br />
HTML::script('/themes/default/js/default.js');<br />

1.3. Для фильтрации переменных от XSS удобно воспользоваться хелпером HTML::chars

<br />
HTML::chars($xss);<br />

1.4. Хелпер HTML::anchor — служит для добавления ссылок
К примеру

<br />
Ссылки вида<br />
< a href="/">Главная</a ><br />
< a href="/page/contacts/">Контакты</a ><br />

Можно заменить

<br />
HTML::anchor('', 'Главная')<br />
HTML::anchor('/page/contacts/', 'Контакты')<br />

Мы рассмотрели пару самых часто используемых методов хелпера — HTML ,остальные почти тоже схожи по части применения.
2.1. Хелпер Form::open — служит для открытия формы
К примеру

</p>
<form action="/auth" method="post" accept-charset="utf-8">

Можно заменить

<br />
Form::open('auth')<br />

2.2 Хелпер Form::input служит для добавления полей формы
К примеру

<br />
<input type="text" name="username"/><br />

Можно заменить

<br />
Form::input('username')<br />

2.3 Хелпер Form::close служит для закрытия формы

</p></form>
<p> - Form::close()<br />

Остальные хелперы в основном почти схожи по принципу применению ,отличаются только выполняемыми методами и целями.

Мы рассмотрели пару самых часто употребляемых хелперов ,и то всего лишь их малую часть,многие методы хелперов имеют дополнительные параметры. Подробнее о них вы можете узнать из документации http://kohanaframework.org/3.0/guide/kohana/helpers или открыть файл с интересующим вас хелпером и почитать комментарии к нему.

В заключение приведу свой файл для основного вида с использование Хелперов.

<br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml"><br />
<head><br />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br />
<title><?=$title?></title><br />
<meta name="keywords" content="<?=$keywords?>" /><br />
<meta name="description" content="<?=$description?>" /><br />
<?php foreach($styles as $style) {
echo HTML::style($themes.'/css/'.$style.'.css');
} ?><br />
<?php foreach($scripts as $script) {
echo HTML::script($themes.'/js/'.$script.'.js');
} ?><br />
</head></p>
<p><body></p>
<div class="container">
<div class="header">
<div class="title">
<h1><?=$title?></h1>
</p></div>
<div class="navigation">
		  <?=HTML::anchor('', 'Главная')?><br />
		  <?=HTML::anchor('/page/contacts', 'Контакты')?><br />
		  <?=HTML::anchor('/page/about/', 'О сайте')?></p>
<div class="clearer"><span></span></div>
</p></div>
</p></div>
<div class="main">
<div class="content">
		<?php if(!empty($error))echo $error; ?><br />
		<?php if(!empty($message))echo $message; ?><br />
        <?php if(!empty($content))echo $content; ?>
		</div>
<div class="sidenav">
<h1>Меню</h1>
<ul>
<li><?=HTML::anchor('', 'Главная')?></li>
<li><?=HTML::anchor('/page/contacts', 'Контакты')?></li>
<li><?=HTML::anchor('/page/about/', 'О сайте')?></li>
<p>				<?=View::factory('auth')?>
			</ul>
</p></div>
<div class="clearer"><span></span></div>
</p></div>
</div>
<div class="footer"> 2011 Все права защищены </div>
<p></body></p>
<p></html><br />

 

</p>
<h3>Регистрация</h3>
<p><?=Form::open('register')?><br />
<?=Form::label('username', 'Имя пользователя') ?><br />
<?=Form::input('username', Security::xss_clean(Arr::get($_POST, 'username')))?> <br />
<?=Form::label('password', 'Пароль')?> <br />
<?=Form::password('password')?> <br />
<?=Form::label('password_confirm', 'Повторите пароль')?> <br />
<?=Form::password('password_confirm')?> <br />
<?=Form::submit('register','Зарегистрироваться')?><br />
<?=Form::close()?><br />

P.S — Если у вас возникли вопросы по хелперам прошу в комментарии,постараюсь вам помочь.

Вам также может понравиться ...