![](/img/trans.png)
[英]PhalconException: NameController handler class cannot be loaded
[英]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.