Symfony 3.3演示项目

Symfony 3.3演示项目,symfony,controller,symfony-3.3,Symfony,Controller,Symfony 3.3,我刚刚下载了symfony 3.3版本开发的框架,以尝试与11月推出的下一个版本symfony 4玩一玩,如此链接所述 我无法创建一个简单的控制器并执行“Hello world” 我只是在Controller文件夹中创建了一个DemoController.php,其中包含以下代码: 我想问题可能就在这最后一部分 除此之外,我是否应该修改bundles.php? 我试过这个 index: path: /demo defaults: { _controller: 'App\

我刚刚下载了symfony 3.3版本开发的框架,以尝试与11月推出的下一个版本symfony 4玩一玩,如此链接所述

我无法创建一个简单的控制器并执行“Hello world”

我只是在Controller文件夹中创建了一个DemoController.php,其中包含以下代码:

我想问题可能就在这最后一部分

除此之外,我是否应该修改bundles.php? 我试过这个

index:
    path:     /demo
    defaults: { _controller: 'App\Controller\DemoController::demo' }
return [
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
    App\Controller::class => ['all' => true], <- NOT SURE IF IT'S LIKE THIS...
];
返回[
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class=>['all'=>true],
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class=>['all'=>true],

App\Controller::class=>['all'=>true],下面是一个或多或少使用Symfony Flex 3.3.10的最简单示例,如下所示:

添加控制器

# src/Controller/DemoController.php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
#se Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class DemoController extends AbstractController
{
    public function demoAction()
    {
        return new Response('aaabbb');
    }
}
添加路线

# config/routes.yaml
demo:
    path: /demo
    defaults: { _controller: 'App\Controller\DemoController::demoAction' }
现在清除缓存(因为新添加的路由)并启动服务器

bin/console cache:clear    
bin/console server:start
# browse to: http://127.0.0.1:8001/demo
希望一切都会好起来

请注意,在定义路由时,您需要详细说明完整的操作方法名称demoAction vs demo.Less magic

请注意,对于新应用,您的控制器应扩展AbstractController,而不是旧的基本控制器。AbstractController仍然为您提供所有喜爱的控制器帮助函数,但限制对容器的访问。您将需要插入控制器所需的任何其他服务


有趣的东西。享受。

您是否也安装了web服务器和cli组件?如果没有,我假设您已经配置了某种web服务器?请从bundles.php中删除控制器行。services.yaml文件会自动在App\controller目录下拾取控制器,这是您的控制器应该位于的位置。您的路线看起来不错y、 哎呀。控制器归src/Controller而不是src/App/controlleryees!干杯,伙计!现在我可以玩Symfony 4:)
# config/routes.yaml
demo:
    path: /demo
    defaults: { _controller: 'App\Controller\DemoController::demoAction' }
bin/console cache:clear    
bin/console server:start
# browse to: http://127.0.0.1:8001/demo