Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要Symfony 2.7创建第一页的帮助吗_Php_Symfony - Fatal编程技术网

Php 需要Symfony 2.7创建第一页的帮助吗

Php 需要Symfony 2.7创建第一页的帮助吗,php,symfony,Php,Symfony,我正在努力学习Symfony框架并与之斗争。说明不是很有用,或者假设我知道的比我知道的多得多。我只是尝试创建一个具有适当路由和控制器的网页。我一直在谷歌上寻找答案,并取得了一些进展,但还没有运气。现在我只安装了Symfony的标准版本和默认包等。我创建了一个名为“gtest3”的项目,并选择了PHP 我不确定我把新路线放在哪里(什么文件),或者可能需要放在多个文件中 我找到了“routing.yml”文件,这似乎就是我需要放它的地方 下面是目前的情况: gtest3: resource:

我正在努力学习Symfony框架并与之斗争。说明不是很有用,或者假设我知道的比我知道的多得多。我只是尝试创建一个具有适当路由和控制器的网页。我一直在谷歌上寻找答案,并取得了一些进展,但还没有运气。现在我只安装了Symfony的标准版本和默认包等。我创建了一个名为“gtest3”的项目,并选择了PHP

我不确定我把新路线放在哪里(什么文件),或者可能需要放在多个文件中

我找到了“routing.yml”文件,这似乎就是我需要放它的地方

下面是目前的情况:

gtest3:
    resource: "@gtest3Bundle/Resources/config/routing.php"
    prefix:   /


app:
    resource: "@AppBundle/Controller/"
    type:     annotation
我猜我需要添加一些东西,并把控制器的位置/文件名?我尝试过几种方法,但都会出错

还有上面代码中引用的“routing.php”文件。我不确定这是“控制器”还是“路线”的附加部分。以下是该文件中的代码:

use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;

$collection = new RouteCollection();

$collection->add('gtest3_homepage', new Route('/hello/{name}', array(
'_controller' => 'gtest3Bundle:Default:index',
)));

return $collection;
我不知道如果我在这里补充什么。 最后,还有我找到的“DefaultConroller.php”文件,它可能也是控制器。我想我不需要在这里包含该文件的代码

所以-我所要做的就是创建一个“/gman”路由,然后让控制器在页面上回显一些内容。超基本的东西。我不知道该怎么做


有人能帮忙吗?非常感谢…

要配置路由,您可以使用yml、php或xml文件。您可以在app/config/config.yml中指定它

framework:
router:
    resource: "%kernel.root_dir%/config/routing.yml"

在这里,您可以检查现在使用的文件。

有一些方法可以存储路由

app:
    resource: "@AppBundle/Controller/"
    type:     annotation
这就是通过在控制器类中的操作(例如索引操作)上方编写注释来使用路由的方式

另一种常见的方法是在每个包中构建一个或多个.yml文件。 在app/config/routing.yml中,您应该编写以下内容:

app:
    resource: "@AppBundle/Resources/config/routing.yml"
    prefix:   /
然后,您需要创建文件(以及必要的目录)src/AppBundle/Resources/config/routing.yml并添加以下内容:

app_homepage:
    path:     /
    defaults: { _controller: AppBundle:Default:index }
然后,它将尝试查找DefaultController并在AppBundle(src/AppBundle/Controller/DefaultController.php)中激发indexAction

要调试路由,只需从项目目录键入控制台:

app/console router:debug

您可以用三种方式定义路由,可以使用yml文件、xml文件,也可以使用php文件。这是

routing.yml
的外观来看,您正在尝试设置php版本。我不建议这样做,而是使用配置而不是编码路由

注释示例如下所示:

添加控制器:

namespace Gtest3Bundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class Gtest3Bundle extends Controller
{
/**
 * @Route("/hello/{name}")
 * @Template()
 */
public function indexAction($name)
{
    return array('name' => $name);
}
}
并添加到你的
app/config/routing.yml

gtest3:
    resource: "@Gtest3Rights/Controller/"
    type:     annotation
    prefix:   /what-ever-you-want
您可以使用以下命令检查您定义的路由类型:

./app/console router:debug
如果它没有出现,则表示您有配置错误的内容

请注意,您的捆绑包名称违反了在symfony2上下文中如何命名捆绑包的约定

建议使用
NamespaceProjectBundle
。这也记录在案。如果卡滞,请通过
/app/console生成:bundle
。通过这种方式,您可以创建一个完整的symfony2结构,该结构将显示默认页面hello/foo页面


如果它看起来根本没有运行,请确保您已在
registerBundles()
方法中的
app/AppKernel.php
文件中的中注册了捆绑包。

您遵循哪些说明?Symfony的文档通常相当全面。这是要提交的文档。你看到这个了吗?另外,您是如何创建捆绑包的?symfony控制台通过
app/console-generate:bundle
简化了这一过程。这将创建一个项目包,并添加所有配置、路由、更新AppKernel等。感谢Darragh,但这些是我试图遵循的说明;它没有确切地说明如何对路线进行编码以及它应该在什么文件中等。它确实给出了控制器的示例代码;如果它应该在它自己的文件中,或者如果您将它添加到另一个文件中;还有它的位置等等。顺便问一下,这是您的
routing.yml
文件中的实际缩进吗?您在默认安装中有AppBundle,您可以看到控制器在哪里(文件夹名称不能更具体)以及它的外观。您发布的路由文件显示了一种注释类型。所以你的路线信息实际上进入了你的控制器。Symfony的一个更令人困惑的方面是,有很多方法可以做同样的事情。继续阅读“创建您的第一页”链接。最终它可能开始有意义了。你好,马尼奥拉:谢谢你的帮助。我确实检查了那个文件,它看起来像是在使用“routing.yml”文件,就像你布置的那样。所以:我想我需要将我的路由添加到该文件中,而不在“routing.php”中添加任何内容?感谢maniora-我成功地创建了一个页面;还有很多其他的事情要解决,所以我们会处理这些…@gman_donster请不要使用评论部分发布感谢。你已经这样做了,通过向上投票并接受一个答案:)你对你的问题的评论也是如此,你将重新解释这个问题。评论太多,无法为问题/答案提供反馈并要求澄清。感谢大家的帮助;取得了一些进展,但还没有赢家;今晚我需要停下来,但明天再回来,因为这对我来说非常重要。最棒的是,我成功地创建了一个页面;还有很多其他事情要解决,所以我们会继续努力…感谢大家的帮助;取得了一些进展,但还没有赢家;今晚我需要停下来,但明天再回来,因为这对我来说非常重要。最棒的是,我成功地创建了一个页面;还有很多事情要解决,所以我们会继续努力。。。