Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Список контроллеров
http://forum.kohanaframework.su/viewtopic.php?f=32&t=625
Страница 1 из 1

Автор:  borodatych [ 02 май 2013, 20:17 ]
Заголовок сообщения:  Список контроллеров

Доброго времени суток.
Можно ли как то получить список все моих контроллеров.
Средствами PHP пробежаться по каталогу где нужно могу.
Но может есть что то родное?

Автор:  Sergey [ 04 май 2013, 04:58 ]
Заголовок сообщения:  Re: Список контроллеров

Вот так, для Kohana 3.2 можно посмотреть список контролёров по умолчанию, но это не все контролёры. Т.е. в буквальном смысле данный метод нельзя использовать для получения абсолютно всех контролёров в любой системе. В принципе, можно добавить этот код для более универсального поиска. Всё зависит от задачи

Код:
<?php foreach (Route::all() as $route): ?>
    <h3><?php echo Route::name($route?></h3>
    <?php
        $array 
= (array) $route;
        foreach (
$array as $key => $value)
        {
            
$new_key substr($keystrrpos($key"\x00") + 1);
            
$array[$new_key] = $value;
            unset(
$array[$key]);
        }
    
?>
    <p>Controller:&nbsp;
        <?php foreach ($array['_defaults'] as $param => $default): ?>
            <?php if ($param == 'controller'): ?>
            <code>
                <?php echo $default ?>
            </code>
            <?php endif; ?>
        <?php endforeach; ?>
    </p>
<?php endforeach; ?>

Автор:  WinterSilence [ 04 май 2013, 07:42 ]
Заголовок сообщения:  Re: Список контроллеров

Смотря для какой цели список контроллеров нужен, можно например автозагрузчик зарегистрировать еще один и сохранять в список все классы наследуемые от Controller.
Я сталкивался с подобной задачей: у меня есть папка ../classes/Controller/Page в ней и её поддиректориях располагаются контроллеры страниц-разделов приложения, нужно было получить список контроллеров и их экшенов. В итоге написал хэлпер с функцией формирования списка контроллеров страниц через проверку классов( if ($controller instanceof Controller_Page) ), файлы(и подпапки) в директории обходил рекурсивно.

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/