Как проверить модель Kohana, контроллер - PullRequest
2 голосов
/ 11 января 2012

Я работаю с php более 5 лет. В последнее время я работал в rubyonrails. Я сделал несколько проектов в этой очень хорошей структуре. Что мне нравится больше всего от rails и ruby: они оба продвигают автоматизированный тест, и есть так много богатых библиотек. Rspec и TestUnit очень просты в изучении по сравнению с PhpUnit.

Я должен разработать очень большой проект в следующем месяце. Я большой поклонник CakePHP, но я понимаю, что CakePHP не будет соответствовать требованиям моего проекта. Я быстро учусь. После прочтения документа с официального сайта Kohana я буду использовать Kohana для этого проекта.

После того, как я провел поиск по кохане, у меня все еще есть несколько тем для беспокойства по поводу

  1. В тестовом модуле отсутствует документация. Мне не понятно, как проверить модель, контроллер, функциональный тест. Может ли кто-нибудь предоставить мне идеи, учебные пособия, примеры, ресурсы?
  2. Среда приложения не совсем понятна. Извините, потому что я симпатичная семья с rubyonrails. Я чувствую, что окружение в рельсах имеет для меня больше смысла. Я могу иметь один драгоценный камень в конкретной среде. например, у меня есть rspec gem (для автоматического тестирования) только для тестовой среды, и у меня есть единорог gem только для производства. Для тех, кто плохо знаком с ruby, gem - это что-то похожее на "module" в kohana. Может кто-нибудь сказать мне, как сказать Kohana просто загрузить "unittest" только в тестовой среде? потому что я не хочу загружать unittest в производственной среде.
  3. В Rails есть режим консоли приложения, называемый rails console. с консолью рельсов мы можем взаимодействовать с моделями через режим консоли. Есть ли что-нибудь похожее на это в Кохане?

1 Ответ

3 голосов
/ 11 января 2012

Я могу ответить только на 2 ваших вопроса, еще лучше, чем ничего;)

AD2 .Вы можете установить переменную Kohana::$environment в зависимости от настройки .htaccess (setenv и getenv) / $_SERVER:

if (Arr::get($_SERVER, 'SERVER_NAME') !== 'localhost')
{
    // We are live!
    Kohana::$environment = Kohana::PRODUCTION;

    // Turn off notices and strict errors
    error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
}
else
{
    Kohana::$environment = Kohana::DEVELOPMENT;
    error_reporting(E_ALL | E_STRICT);
}

Затем вы можете настроить Kohana::init следующим образом:

Kohana::init(array(
    'base_url' => '/',
    'caching' => Kohana::$environment === Kohana::PRODUCTION,
    'profile' => Kohana::$environment !== Kohana::PRODUCTION,
    'index_file' => FALSE,
    'errors' => TRUE
));

, поэтому в вашем производственном приложении будет включено кэширование и профилирование отключено.
Для модулей это почти то же самое:

if (Kohana::$environment !== Kohana::PRODUCTION)
{
    Kohana::modules(array(
        'unittest' => MODPATH . 'unittest',
    ));
}

AD3 .Извините за лаконичность - нет, ее нет.

...