This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/includes/kohana/modules/userguide/guide/ru-ru/tutorials.helloworld.md
2011-05-03 09:49:01 +10:00

6.6 KiB
Raw Blame History

Hello, World

Каждый фреймворк располагает примером написания приложения hello world, так что не будем нарушать традицию!

Мы начнем с создания простейшего hello world, а затем расширим его согласно принципам MVC.

Основа

Сперва надо создать контроллер, который Kohana будет использовать для обработки запроса

Создайте файл application/classes/controller/hello.php в директории application и вставьте туда такой текст:

<?php defined('SYSPATH') OR die('No Direct Script Access');

Class Controller_Hello extends Controller
{
	function action_index()
	{
		echo 'hello, world!';
	}
}

Давайте разберемся, что там происходит:

<?php defined('SYSPATH') OR die('No Direct Script Access');
В первом тэге Вы наверняка узнали открывающий тэг php (иначе советуем сперва изучить php). Следующая за ним строчка осуществляет проверку, был ли данный файл загружен в Kohana. Это закроет доступ к файлам проекта напрямую.
Class Controller_Hello extends Controller
Эта строка объявляет наш контроллер, каждый класс контроллера начинается с префикса Controller_, где знак подчеркивания является разделителем для пути к папке, в которой лежит файл контроллера (см. Соглашения и стили). Каждый контроллер должен также быть потомком базового класса Controller.
function action_index()
Объявляем "индексный" метод нашего контроллера. Kohana будет пытаться выполнить данный метод, если пользователь явно не укажет другой. (см. Маршруты, URL и ссылки)
echo 'hello, world!';
Эта строка выводит стандартную фразу!

Теперь откроем браузер и, введя URL http://your/kohana/website/index.php/hello, увидим результат:

Hello, World!

Все хорошо, но может быть и получше

Все проделанное в предыдущей секции было хорошим примером того, как легко создать предельно простое приложение на Kohana (на самом деле оно настолько простое, что Вам больше не придется создавать подобное!)

Если Вы что-нибудь слышали про MVC, то скорее всего представляете, что вывод результата в контроллере противоречит принципам MVC.

Более грамотный способ работать с MVC-фреймворками - это использование представлений для отображения приложения, и позволить контроллеру делать то, с чем он справится лучше всего - контролировать ход выполнения запроса!

Давайте слегка поменяем наш контроллер:

<?php defined('SYSPATH') OR die('No Direct Script Access');

Class Controller_Hello extends Controller_Template
{
	public $template = 'site';

	function action_index()
	{
		$this->template->message = 'hello, world!';
	}
}
extends Controller_Template
Теперь мы расширяем шаблонный контроллер (template controller), что делает работу контроллера с представлениями более удобной.
public $template = 'site';
Шаблонный контроллер должен знать, какое представление использовать. Он автоматически загрузит указанное представление в данную переменную в виде объекта.
$this->template->message = 'hello, world!';
$this->template является ссылкой на наш шаблон. Мы присваиваем переменной "message" значение "hello, world!", и добавляем ее в шаблон template.

А теперь попробуем выполнить наш код...

{{userguide/examples/hello_world_error}}

По каким-то причинам kohana генерирует ошибку и не хочет показать наше восхитительное сообщение.

Если мы посмотрим на сообщение с ошибкой, то увидим, что библиотека View не смогла найти наш главный шаблон, скорее всего потому что мы его еще не создали - черт!

Давайте добавим файл представления application/views/site.php для нашего сообщения:

<html>
	<head>
		<title>We've got a message for you!</title>
		<style type="text/css">
			body {font-family: Georgia;}
			h1 {font-style: italic;}

		</style>
	</head>
	<body>
		<h1><?php echo $message; ?></h1>
		<p>We just wanted to say it! :)</p>
	</body>
</html>

Если обновить страницу, то мы увидим увидим результаты наших усилий:

hello, world! Мы просто хотели это произнести!

Этап 3 - Итого!

В данной статье Вы изучили, как создать контроллер и использовать шаблоны для отделения логики от представления.

Очевидно, что это было всего-навсего упрощенное вступление, и оно не отражает даже малой части всех возможностей, доступных при разработке приложений с помощью kohana.