所以我想通过使用其新功能Symfony as a Microframework来试用这个新版本的Symfony(2.8.0
)。
Symfony网站上的教程非常简单。但是,我无法开始使用它。我仍然可以使用默认登录网页。
我已经按照食谱的每个步骤进行操作,也就是说设置./app/MicroKernel.php
。该文件的内容与第一个 Hello World 应用程序示例中提供的代码完全相同,因此我不会在此处粘贴它。
我还使用以下代码更新了 ./web/app.php
,根据食谱:
<?php
use Symfony\Component\HttpFoundation\Request;
$loader = require __DIR__.'/../app/autoload.php';
require_once __DIR__.'/../app/MicroKernel.php';
$app = new MicroKernel('prod', false);
$app->loadClassCache();
$app->handle(Request::createFromGlobals())->send();
我也清除了缓存:
$ php app/console cache:clear --env=prod
// Clearing the cache for the prod environment with debug false
[OK] Cache for the "prod" environment (debug=false) was successfully cleared.
我的虚拟主机已正确配置:
<VirtualHost *:80>
ServerAdmin postmaster@domain.com
DocumentRoot "c:/wamp/www/steve-david.sf2/web/"
ServerName "steve-david.sf2"
<Directory "c:/wamp/www/steve-david.sf2/web/">
AllowOverride All
Require local
</Directory>
</VirtualHost>
但是,当我访问http://steve-david.sf2/
时,我会登陆欢迎使用Symfony2.8.0 默认网页:
我没有对使用composer下载的应用程序进行任何其他更改。
我在这里缺少什么?我是否必须更改./src/AppBundle/
中的任何内容?缺乏有关此新功能的文档也无济于事。
感谢您的帮助!
答案 0 :(得分:4)
您使用php app/console
清除了缓存 - 而且 - 从我所看到的 - 您开始使用Symfony标准版。这意味着console
文件在默认AppKernel中运行命令而不是新的MicroKernel。转到并修改该文件,并将AppKernel
替换为MicroKernel
。然后,运行clear:cache
命令。只是为了确定,删除app/cache/*
目录的内容。
未在&#34; cookbook&#34;中说明。关于这一点,因为它不是&#34;如何将Symfony标准版改为微框架的教程&#34;但只是&#34;如何使用MicroKernelTrait&#34;。
从Symfony标准版开始,您就拥有MicroKernel不需要的文件。只需删除AppKernel.php,AppCache.php即可。根本不需要app/config
目录。 ./src/AppBundle/
也是多余的。
而不是Symfony Standard Edition ,您应该只创建一个空目录,然后在那里运行composer require symfony/symfony
。然后在教程中创建app/MicroKernel.php
和web/app.php
。您还需要具有以下内容的app/autoload.php
文件(在起始示例中不需要这些关于注释的行,但您可能稍后需要它们 - 如果没有注释支持,您可以跳过创建此文件并包含{{1}直接)文件:
vendor/autoload.php
就是这样。它应该工作。