Последнее, что мы должны сделать в файле bootstrap.php — это включить нужные модули. Для этого существует метод Kohana::modules, в который передается массив, где ключами являются названия модулей, а значениями — расположение самих файлов. Нам нужно просто раскомментировать те модули, которые мы будем использовать:
/** * Enable modules. Modules are referenced by a relative or absolute path. */ Kohana::modules(array( // 'auth' => MODPATH.'auth', // Basic authentication // 'cache' => MODPATH.'cache', // Caching with multiple backends // 'codebench' => MODPATH.'codebench', // Benchmarking tool // 'database' => MODPATH.'database', // Database access // 'image' => MODPATH.'image', // Image manipulation // 'orm' => MODPATH.'orm', // Object Relationship Mapping // 'unittest' => MODPATH.'unittest', // Unit testing // 'userguide' => MODPATH.'userguide', // User guide and API documentation ));
Можно сделать это сейчас, если вы уже знаете, что вам понадобится, но лучше делать это в процессе разработки. Сюда же можно добавлять новые модули, например те, которые будут выкладываться у нас в разделе Модули или написанные самостоятельно. Пока здесь находятся все модули, которые идут в комплекте с Коханой и лежат в папке modules. Большая часть модулей требует определенной настройки. Все нужные модули и их настройки обязательно будут рассмотрены в процессе обучения. Пока можете раскомментировать последнюю строчку, в следующем разделе я расскажу зачем.
Конфигурационный файл
Когда вы создаете свое приложение, устанавливаете или создаете какие-то модули, у вас появляются какие-то данные, которые могут меняться. И вам естественно хочется хранить их где-то в одном месте и иметь возможность легко получать к ним доступ.
В папке application есть папка config. В этой папке вы можете создавать свои конфигурационные файлы и потом обращаться к ним. Давайте немножко поэкспериментируем. Создайте в папке /application/config/ файл с названием mysite.php и добавьте в него следующий код:
<?php defined('SYSPATH') or die('No direct script access'); return array( 'title' => 'Мой первый сайт на Кохане', 'description' => 'Самый лучший сайт на свете' );
Первая строчка — защита от прямого доступа к скрипту, хакеры теперь здесь не пройдут. Остальное — возврат массива с нашими данными. Теперь, чтобы получить доступ к этим данным, нужно использовать следующий код $site_config = Kohana::$config->load(‘mysite’). Будет произведен поиск файла с названием mysite.php в папке /application/config/ и если все в порядке, такой файл есть и в нем нет ошибок, то будет создан объект $site_config. Ну а чтобы получить сами настройки, используем метод get. Полностью код будет выглядеть так:
$site_config = Kohana::$config->load('mysite'); $title = $site_config->get('title'); $description = $site_config->get('description');
Можете проверить это, написав данный код в контроллере Welcome и добавив вывод echo $title . ‘ — ‘ . $description. Должна вывестись фраза Мой первый сайт на Кохане — Самый лучший сайт.
Можно вообще обойтись одной строчкой $title = Kohana::$config->load(‘mysite.title’) и echo $title тоже выведет нам заголовок.
Также можно использовать многомерные массивы:
<?php defined('SYSPATH') or die('No direct script access'); return array( 'title' => 'Мой первый сайт на Кохане', 'description' => array( 'main' => 'Самый лучший сайт на свете', 'alt' => 'Пока не будет создан второй сайт' ) );
И получать значения следующим образом:
$description_main = Kohana::$config->load('mysite.description.main'); $description_alt = Kohana::$config->load('mysite.description.alt'); echo $description_main . '<br>' . $description_alt;
Или еще вариант — использовать цикл foreach (особенно удобно передавать массив в Вид и там в нужном месте перебирать его с помощью этого цикла):
// Это Контроллер $config = Kohana::$config->load('mysite'); // А это уже Вид foreach ($config as $site_config) { if(is_array($site_config)) echo $site_config['main'] . '<br>' . $site_config['alt']; else echo $site_config . '<br>'; }
Выведет три строчки:
Мой первый сайт на Кохане
Самый лучший сайт на свете
Пока не будет создан второй сайт
Код внутри цикла дан для примера. В Виде даже не вздумайте так писать
Таким образом видно, что вариантов работы с файлом конфигурации масса. Выбирайте такой, какой вам больше нравится.
<< Назад | Вперед >> |
Пожалуйста, зарегистрируйтесь для комментирования.
Попробовал наугад вставить первый код (куда конкретно его вставлять непонятно) в контроллер Welcome и вывод тоже — выдало нотис.
Там же все написано, вы наверное невнимательно читаете. Самый верхний код — из файла bootstrap.php. Там пока можно ничего не трогать, т.к. модули мы пока не используем. Далее идет код из конфигурационного файла, который мы создаем сами. В нашем примере это файл /application/config/mysite.php
И следующий код уже из контроллера Welcome, который вызывает этот самый конфигурационный файл и получает его настройки. Если у вас не работает, значит что-то неправильно сделали.
Не пойму как с Вами можно общаться, если что непонятно — через комментарии? как — то неудобно.
Код [code] $site_config = Kohana::$config->load('mysite');
$title = $site_config->get('title');
$description = $site_config->get('description');[/code] я прописываю в контроллере Welcome
и конфигурационный файл mysite.php имеется ?
только что проверил, все работает.
ну и конечно же любопытно, что пишет в нотисе. тут знаете ли телепатов нету.
а более конкретные вопросы попробуйте задать здесь:
http://phpforum.ru/index.php?act=ST&f=129&t=53269
Так и сделал.
Добавил файл iseo.php, в папку /application/config с кодом:
‘Мой первый сайт на Кохане’,
‘description’ => ‘Самый лучший сайт на свете’
);
Затем добавил в welcome.php, сразу после class Controller_Welcome extends Controller {, код:
$site_config = Kohana::$config->load(‘iseo’);
$title = $site_config->get(‘title’);
$description = $site_config->get(‘description’);
в итоге получаю: ErrorException [ Parse Error ]: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION
/classes/controller/welcome.php [ 5 ]
$site_config = Kohana::$config->load(‘iseo’);
{PHP internal call} » Kohana_Core::shutdown_handler()
так как сделать правильно?
у меня все работает. в файле iseo.php должно быть
Первая строчка — защита от прямого доступа к скрипту, хакеры теперь здесь не пройдут.
И я похоже тоже )
Учитывая, что имеется одна точка входа-через index.php, и эта константа определяется там, почему вы не должны пройти ? ))
Разница в том что я не могу пройти с внутри (
Но , постараюсь ,если бы немного поподробнее,было бы меньше вопросов )Обращаться не всегда охота ,хочется верить что сам всё понял ,хотя здесь и так куда жевать дальше ,просто иногда мелочи могут сбить с правильного пути ,хотелось бы копии кодов уже там где им быть им быть положено.Я создал файл mysite.php добавил код ,создать контроллер новый проще ?
можете скачать архив тестового сайта отсюда
http://forum.kohanaframework.su/viewtopic.php?f=34&t=89
и посмотреть, как все устроено. (тестовый сайт — это
http://kohanaframework.su/kohana/)
и вопросы там же на форуме задавать, если их много и по мелочам.
там вам с удовольствием ответят (я или кто-нибудь другой )
Спасибо !!! На такой основе уже легче ,как ни как уже почти готовый сайт на Kohana )
ага. фактически сайт-визитка
базы данных только нет
Да ладно .таак сойдёт ,я покупателя найду ,главное что недоступен для хакерских атак )))
Это у меня такая шутка ,тяжеловато мне всё сразу съесть ,о базе данных пока стараюсь и не думать ,с joomla куда по проще, но Kohana вероятно стоит моих мучений )
а при чем тут джумла ? джумла-цмс, кохана-фреймворк.
вы попробуйте на джумле свой модуль написать или код поправить. и мы посмотрим, что проще )))