php - Phalcon 4 文档控制器处理程序问题
问题描述
我在 Windows 10 上使用 Phalcon 4.0.6,x64bit 与 psr & php 版本是 7.4.7。我遵循“ https://docs.phalcon.io/4.0/en/tutorial-basic ”中的基本教程示例,但出现类似错误:“异常:无法加载 SingleController 处理程序类”。是 phalcons 问题还是我做错了什么?
[引导程序]
<?php
use Phalcon\Loader;
use Phalcon\Di\FactoryDefault;
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();
}
[索引控制器]
<?php
use Phalcon\Mvc\Controller;
class IndexController extends Controller
{
public function indexAction()
{
return '<h1>Hello</h1>';
}
}
解决方案
问题是因为项目不在根文件夹中
这个问题的最佳解决方案是反转您之前所做的每项更改(通过阅读一些评论来判断),这建议httpd.conf
不建议进行编辑,主要是因为它与将文件夹的内容移动到相同single
,htdocs/
这将使您的服务器卡在一个项目
现在简单的解决方案:
编辑single/public/index.php
更改$_SERVER['REQUEST_URI']
为$_GET['_url'] ?? '/'
像这样:
echo $application->handle($_GET['_url'] ?? '/')->getContent();
推荐阅读
- powershell - 如何以最简单的方式从字符串中获取值
- c# - 模板 T4 - 使用 ConfigurationBuilder appsetting.json netstandard2.0
- python - 从列表的不同元素打印值
- java - 如何使用默认的 ServerSocket 进行 TLS 握手?
- excel - 在 VBA 中使用 LEFT FIND
- c# - 如何为 html 表的日期列提供日期格式 dd/mm/yyyy
- kubernetes - Ceph RBD 实际空间使用量远大于挂载后的磁盘使用量
- javascript - 将字符串作为变量
- quartz-scheduler - Quarkus 预定记录处理机制最佳实践
- generics - 使用整数特征并执行加法运算