【发布时间】:2021-06-07 16:48:39
【问题描述】:
我正在尝试在本地使用 Phalcon 创建一个基本应用程序。我按照文档(https://docs.phalcon.io/4.0/en/tutorial-basic)创建了相同的文件结构,并复制了所有文件的代码。不幸的是,每次都会显示错误消息“无法加载控制器处理程序类”。由于我在 Windows 10 x64 中工作,因此我尝试更改文件路径,但这并没有解决我的问题。 public 文件夹中的 index.php 在 /app/controllers 文件夹下找不到控制器类。我在想我的 Phalcon 安装是否有任何问题,但在 phpinfo 中我可以看到 Phalcon 插件。 phpinfo-phalcon
我在public文件夹下index.php文件中的代码是:
<?php
use Phalcon\Di\FactoryDefault;
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Mvc\Application;
use Phalcon\Url;
// Define some absolute path constants to aid in locating resources
define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');
// Register an autoloader
$loader = new Loader();
$loader->registerDirs(
[
APP_PATH . '/controllers/',
APP_PATH . '/models/',
]
);
$loader->register();
$container = new FactoryDefault();
$container->set(
'view',
function () {
$view = new View();
$view->setViewsDir(APP_PATH . '/views/');
return $view;
}
);
$container->set(
'url',
function () {
$url = new Url();
$url->setBaseUri('/');
return $url;
}
);
$application = new Application($container);
try {
// Handle the request
$response = $application->handle(
$_SERVER["REQUEST_URI"]
);
$response->send();
} catch (\Exception $e) {
echo 'Exception: ', $e->getMessage();
}
以及我在 app/controllers 文件夹下的 IndexController.php 文件的代码:
<?php
use Phalcon\Mvc\Controller;
class IndexController extends Controller
{
public function indexAction()
{
return '<h1>Hello!</h1>';
}
}
最后,我将 .htrouting 文件添加到与 app 和 public 文件夹相同的级别,其中包括:
<?php
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
if ($uri !== '/' && file_exists(__DIR__ . '/public' . $uri)) {
return false;
}
$_GET['_url'] = $_SERVER['REQUEST_URI'];
require_once __DIR__ . '/public/index.php';
此处显示文件结构:file structure
如果有任何帮助,我将不胜感激,谢谢。我将 WAMP 与 PHP 7.3.21、Apache 2.4.46 和 Phalcon 插件 phalcon_x64_vc15_php7.4 一起使用
【问题讨论】:
-
对不起,我使用的 Phalcon 插件是 phalcon_x64_vc15_php7.3_4.1.2+5275
标签: php model-view-controller phalcon phalcon-routing