簡體   English   中英

Phalcon教程錯誤PhalconException:無法加載TestController處理程序類

[英]Phalcon tutorial error PhalconException: TestController handler class cannot be loaded

我在讓Phalcon教程1正常工作時遇到了一些麻煩。 最后,我已經在Github上克隆了它的版本,以確保我沒有丟失任何東西。 仍然從中得到相同的行為。

如本教程所示,將瀏覽器指向localhost / test可以得到:

"PhalconException: TestController handler class cannot be loaded".

但是,轉到localhost/test.php會加載“ Hello!”。 正確測試消息。

Phalcon顯示在phpinfo() and get_loaded_extensions()

即使從克隆了本教程,我也有這種現象

https://github.com/phalcon/tutorial

我的猜測是, apache無法正確重寫URL,如Phalconphp路由中所述不起作用 ,但是我的問題似乎與那里的不一樣。

htaccess文件的內容:

#/tutorial/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</IfModule>

#/tutorial/public/.htaccess
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>

替換為引導文件index.php

$url->setBaseUri('/tutorial/');

$url->setBaseUri('/');

不好,這不是錯誤。 Phalcon教程似乎期望該教程在名為/ test /的目錄中完成,而不是在Web根目錄下完成。 它沒有指定此名稱,因此我假設/ test會在Web根目錄中的項目中產生本教程中顯示的行為。

如果您運行localhost / test.php,則需要更改控制器和模型的目錄

try {
//Register an autoloader
$loader = new \Phalcon\Loader();
$loader->registerDirs(array(
    'app/controllers/',
    'app/models/'
))->register();

//Create a DI
$di = new Phalcon\DI\FactoryDefault();

//Setup the view component
$di->set('view', function(){
    $view = new \Phalcon\Mvc\View();
    $view->setViewsDir('app/views/');
    return $view;
});

//Setup a base URI so that all generated URIs include the "tutorial" folder
$di->set('url', function(){
    $url = new \Phalcon\Mvc\Url();
    $url->setBaseUri('/');
    return $url;
});

//Handle the request
$application = new \Phalcon\Mvc\Application($di);
echo $application->handle()->getContent();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM