为了账号安全,请及时绑定邮箱和手机立即绑定

Phalcon 4 文档控制器处理程序问题

Phalcon 4 文档控制器处理程序问题

PHP
至尊宝的传说 2023-05-26 17:09:42
我在 Windows 10 上使用 Phalcon 4.0.6,x64bit 和 psr & php 版本是 7.4.7。出现如下错误:&ldquo;异常:无法加载 SingleController 处理程序类&rdquo;。是 phalcons 问题还是我做错了什么?文件结构:<?phpuse 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 resourcesdefine('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();}[索引控制器]<?phpuse Phalcon\Mvc\Controller;class IndexController extends Controller{    public function indexAction()    {        return '<h1>Hello</h1>';    }}
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

我不确定您的环境,但是当您弄错控制器的路径或名称时会出现此错误消息。

您更改或添加SingleController.php到控制器的路径中,对吗?教程上没有。

您应该检查您的 Bootstrap 文件是否可以访问控制器的路径(或SingleController.php)。


查看完整回答
反对 回复 2023-05-26
?
冉冉说

TA贡献1877条经验 获得超1个赞

我刚刚用 php 7.4.6 完成了基本教程 - 但使用了 apache 网络服务器:

我的问题是:您的页面是否以http://localhost/开头?所以不应该有任何“SingleController”-错误会遇到:-/

在基本教程中,phalcon 并没有做那么多 - 只是将所有步骤放在一起以从 IndexController.php(在 app/controllers/ 中)显示你的世界,因为你根本不使用模型、视图或模板。

如果您也使用 apache,请注意您的 DocumentRoot 是“[WebProjectDir]/public/” -> 如果您有 apache 标准安装,它可能是:“C:\apache\htdocs\public”(Windows 样式)和 Apache使用 unix 风格 ;)

一开始可能有点棘手:)

查看完整回答
反对 回复 2023-05-26
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

问题是因为项目不在根文件夹中

这个问题的最佳解决方案是撤销您之前所做的每项更改(通过阅读一些评论来判断),这表明不建议进行编辑,主要是因为它与将文件夹的内容移动到httpd.conf相同,这会使您的服务器卡住一个项目singlehtdocs/

现在简单的解决方案:

编辑single/public/index.php

改为$_SERVER['REQUEST_URI']_$_GET['_url'] ?? '/'

像这样:

echo $application->handle($_GET['_url'] ?? '/')->getContent();


查看完整回答
反对 回复 2023-05-26
  • 3 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信