我使用 php 已有 5 年多了。最近我在 rubyonrails 工作。我在这个非常好的框架中完成了一些项目。我最喜欢 Rails 和 ruby 的一点:它们都促进自动化测试,并且有很多丰富的库。与 PhpUnit 相比,Rspec 和 TestUnit 非常容易学习。
我必须在下个月开发一个非常大的项目。我是 cakephp 的忠实粉丝,但我意识到 cakephp 无法满足我的项目要求。我学得很快。阅读 Kohana 官网的文档后,我将使用 Kohana 来完成这个项目。
在 Kohana 上进行了一些搜索后,我仍然有一些话题需要关注
- 测试模块缺少文档。我不清楚如何测试模型、 Controller 、功能测试。谁能给我提供想法、教程、示例、资源?
- 应用环境不太清楚。抱歉,因为我是 rubyonrails 的好家庭。我觉得 Rails 环境对我来说更有意义。我可以在特定环境中拥有一颗 gem 。例如,我有 rspec gem(用于自动化测试)仅用于测试环境,而我有 unicorn gem 仅用于生产。对于那些刚接触 ruby 的人来说,gem 类似于 kohana 中的“模块”。谁能告诉我如何告诉 kohana 仅在测试环境中加载“unittest”?因为我不想在生产环境中加载单元测试。
- 在 Rails 中,有一种应用程序控制台模式,称为 Rails 控制台。使用 Rails Console,我们可以通过控制台模式与模型进行交互。 Kohana 有类似的东西吗?
最佳答案
我只能回答你的两个问题,但总比什么都不回答好;)
AD2。您可以根据 .htaccess 设置 Kohana::$environment
变量(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。很抱歉言辞简洁 - 不,没有。
关于tdd - 如何测试kohana模型、 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813115/