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

106 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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](http://php.net)). Следующая за ним строчка осуществляет проверку, был ли данный файл загружен в Kohana. Это закроет доступ к файлам проекта напрямую.
`Class Controller_Hello extends Controller`
: Эта строка объявляет наш контроллер, каждый класс контроллера начинается с префикса `Controller_`, где знак подчеркивания является разделителем для пути к папке, в которой лежит файл контроллера (см. [Соглашения и стили](start.conventions)). Каждый контроллер должен также быть потомком базового класса `Controller`.
`function action_index()`
: Объявляем "индексный" метод нашего контроллера. Kohana будет пытаться выполнить данный метод, если пользователь явно не укажет другой. (см. [Маршруты, URL и ссылки](tutorials.urls))
`echo 'hello, world!';`
: Эта строка выводит стандартную фразу!
Теперь откроем браузер и, введя URL http://your/kohana/website/index.php/hello, увидим результат:
![Hello, World!](img/hello_world_1.png "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.
А теперь попробуем выполнить наш код...
<div>{{userguide/examples/hello_world_error}}</div>
По каким-то причинам 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! Мы просто хотели это произнести!](img/hello_world_2.png "hello, world! Мы просто хотели это произнести!")
## Этап 3 - Итого!
В данной статье Вы изучили, как создать контроллер и использовать шаблоны для отделения логики от представления.
Очевидно, что это было всего-навсего упрощенное вступление, и оно не отражает даже малой части всех возможностей, доступных при разработке приложений с помощью kohana.