需要一次在Kohana v3.3.1中生成错误

时间:2013-09-16 04:09:57

标签: php kohana-3

我如何require_once在我的控制器中,我放入kohana\vendor\twitter-api-php的第三方课程?我试过this answer这是类似的,但我一直收到错误(见下文)。我项目的文件结构如下:

kohana
- application
- modules
- system
- vendor

我一直收到这些错误

 Warning: Uncaught exception 'ErrorException' with message 'require_once(C:\wamp\www\kohana): failed to open stream: Permission denied' in C:\wamp\www\kohana\application\classes\Controller\Twitter.php:8 Stack trace: #0 C:\wamp\www\kohana\application\classes\Controller\Twitter.php(8): Kohana_Core::error_handler(2, 'require_once(C:...', 'C:\wamp\www\koh...', 8, Array) #1 C:\wamp\www\kohana\application\classes\Controller\Twitter.php(8): Controller_Twitter::before() #2 C:\wamp\www\kohana\system\classes\Kohana\Controller.php(69): Controller_Twitter->before() #3 [internal function]: Kohana_Controller->execute() #4 C:\wamp\www\kohana\system\classes\Kohana\Request\Client\Internal.php(97): ReflectionMethod->invoke(Object(Controller_Twitter)) #5 C:\wamp\www\kohana\system\classes\Kohana\Request\Client.php(114): Kohana_Request_Client_Internal->execute_request(Object(Request), Object(Response)) #6 C:\wamp\www\kohana\system\classes\Kohana\Request.php(986): Kohana_Request_Client->execute(Object(Request)) #7 C:\wamp\www\kohana\index.p in C:\wamp\www\kohana\application\classes\Controller\Twitter.php on line 8

和此错误

Fatal error: Controller_Twitter::before(): Failed opening required '' (include_path='.;C:\php\pear') in C:\wamp\www\kohana\application\classes\Controller\Twitter.php on line 8

这是我的代码

<?php defined('SYSPATH') or die ('No direct script access.');

class Controller_Twitter extends Controller {

    public function before()
    {
        // require_once(APPPATH.'vendor/twitter-api-php/TwitterAPIExchange.php');
        require_once Kohana::find_file('vendor/twitter-api-php', 'TwitterAPIExchange');
    }

    public function action_index()
    {

        $view = new View('twitter/index');
        $this->response->body($view);
    }
}

1 个答案:

答案 0 :(得分:2)

vendor文件夹放在application文件夹中。

applicationmodulessystem文件夹的位置可以在index.php中设置,并存储在APPPATH,{{1} }和MODPATH常量。 Kohana :: find_files()将在SYSPATH中查找,然后在APPPATH下的所有已加载模块中查找(好吧,模块可以位于任何位置,但我假设它们都在MODPATH下你的情况),最后是MODPATH。 Kohana :: find_files()不会神奇地看向其他任何地方。

另外,为什么不把require_once放在类defenition之外呢?像这样。

SYSPATH