Php Symfony第一步问题

Php Symfony第一步问题,php,symfony,Php,Symfony,我是Symfony的新手,我正在学习一个教程。第一个练习很简单,但我不知道为什么不起作用 在我的源文件夹中,我首先尝试使用以下行: <?php namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Component\HttpFoundation\Response; class GenusController { /**

我是Symfony的新手,我正在学习一个教程。第一个练习很简单,但我不知道为什么不起作用

在我的源文件夹中,我首先尝试使用以下行:

<?php

namespace AppBundle\Controller;


use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class GenusController
{
    /**
     * @Route("/genus")
     */

    public function showAction()
    {
        return new Response('Test ');

    }

}
它是有效的。但如果我添加新行:

class GenusController
{
    /**
     * @Route("/genus/{genusName}")
     */

    public function showAction($genusName)
    {
        return new Response('The genus: '.$genusName);

    }

}
并对其进行了测试:

http://localhost:8888/my_project/web/genus/test
我的浏览器显示:

哎呀!服务器返回“404未找到”时出错。 有东西坏了。请让我们知道当这一切发生时你在做什么 发生错误。我们会尽快修好的。对不起 造成不便

少了什么? 有什么建议吗


提前感谢
prod
环境中的:将缓存配置信息,而不会自动刷新。 这意味着:

  • @php文件中的注释被缓存
  • .yml文件被缓存
  • .xml文件被缓存
  • *.twig文件被缓存
您遇到的错误是,您创建的新路由未缓存,并且prod环境无法访问

这意味着您要么每次都必须调用
app/console cache:clear--env=prod
,要么必须使用
dev
环境,这在开发时要好得多。它还为404和500个错误提供了更好的错误消息

这意味着您必须使用
app_dev.php
而不是
app.php
。 你可以试试

http://localhost:8888/app_dev.php/my_project/web/genus/test

prod
环境中:配置信息被缓存,不会自动刷新。 这意味着:

  • @php文件中的注释被缓存
  • .yml文件被缓存
  • .xml文件被缓存
  • *.twig文件被缓存
您遇到的错误是,您创建的新路由未缓存,并且prod环境无法访问

这意味着您要么每次都必须调用
app/console cache:clear--env=prod
,要么必须使用
dev
环境,这在开发时要好得多。它还为404和500个错误提供了更好的错误消息

这意味着您必须使用
app_dev.php
而不是
app.php
。 你可以试试

http://localhost:8888/app_dev.php/my_project/web/genus/test


如何启动应用程序,
php-bin/console-server:start
?如果这样做,正确的url应该是:
http://localhost:8888/genus/something
您是否尝试从您的开发环境访问?否则,请尝试清除缓存。我没有通过PHPBIN/console服务器:start启动我的应用程序。我正在使用MAMP,我认为我不必做什么else@fliim我刚刚尝试了一下,我发现了一个错误,没有找到“GET/genus/test”的路由,顺便说一句,在他们建议将“src”文件夹标记为Sources Root的教程中,这会有什么影响吗?如何启动应用程序,
php bin/console server:start
?如果这样做,正确的url应该是:
http://localhost:8888/genus/something
您是否尝试从您的开发环境访问?否则,请尝试清除缓存。我没有通过PHPBIN/console服务器:start启动我的应用程序。我正在使用MAMP,我认为我不必做什么else@fliim我刚刚尝试了一下,我发现了一个错误,没有找到“GET/genus/test”的路由,顺便说一下,在教程中,他们建议将“src”文件夹标记为Sources Root,这会有什么影响吗?我尝试了你的建议,但是我得到了一个错误:在这个服务器上找不到请求的URL/app_dev.php/my_project/web/genus/test。顺便问一下,在教程中,他们建议将“src”文件夹标记为Sources Root,这会有什么影响吗?您可以执行
php app/console debug:router
并查看其中是否包含所需的路由吗?将“src”文件夹标记为源根目录是一种Phpstorm功能,不是吗?IDE与symfonyI无关。我尝试了php-app/console-debug:router命令,但没有成功,然后我尝试了php-bin/console-debug:router。是的,如果您使用的是
bin/console
您使用的是symfony 3而不是symfony 2,我可以看到路由应用程序\u genus\u显示ANY/genusName}!我使用这个命令是因为我在教程中看到了它。我检查了版本(symfony-v)并安装了symfony安装程序(1.5.9),我得到了这些信息,使用最新稳定版本的symfony在当前目录中创建了一个名为blog的新项目,执行以下命令:symfony new blog,以及更多选项,如symfony new blog lts、symfony new blog 2.8或symfony new blog 3.0,symfony新博客2.8.1或symfony新博客3.0.1,symfony演示。我怎么知道我完成了完整的安装?我尝试了你的建议,但我得到了错误:找不到请求的URL/app_dev.php/my_project/web/genus/test在此服务器上找不到。顺便问一下,在教程中,他们建议将“src”文件夹标记为Sources Root,这会有什么影响吗?您可以执行
php app/console debug:router
并查看其中是否包含所需的路由吗?将“src”文件夹标记为源根目录是一种Phpstorm功能,不是吗?IDE与symfonyI无关。我尝试了php-app/console-debug:router命令,但没有成功,然后我尝试了php-bin/console-debug:router。是的,如果您使用的是
bin/console
您使用的是symfony 3而不是symfony 2,我可以看到路由应用程序\u genus\u显示ANY/genusName}!我使用这个命令是因为我在教程中看到了它。我检查了版本(symfony-v)并安装了symfony安装程序(1.5.9),我得到了这些信息,使用最新稳定版本的symfony在当前目录中创建了一个名为blog的新项目,执行以下命令:symfony new blog,以及更多选项,如symfony new blog lts、symfony new blog 2.8或symfony new blog 3.0,symfony新博客2.8.1或symfony新博客3.0.1,symfony演示。我怎么知道我完成了完整的安装?