因此,我想尝试使用这个新版本的Symfony (2.8.0)的一个新特性:http://symfony.com/blog/new-in-symfony-2-8-symfony-as-a-microframework。
Symfony网站上的教程非常简单。然而,我无法开始。我仍然得到默认的登陆网页。
我已经遵循了食谱的每一个步骤,也就是说,设置了该文件的内容与第一个Hello应用程序示例中提供的代码完全相同,因此我不会在这里粘贴它。
我还按照食谱更新了./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/中更改任何内容吗?缺乏关于这个新特性的文档也没有帮助。
谢谢你的帮助!
发布于 2015-12-03 23:29:27
您使用php app/console清除了缓存--从我所看到的--您从Standard开始。这意味着console文件在默认的AppKernel中运行命令,而不是运行新的MicroKernel。然后编辑该文件并将AppKernel替换为MicroKernel。然后,运行clear:cache命令。当然,删除app/cache/*目录的内容。
“食谱”中没有提到这一点,因为它不是“如何将Symfony标准版转换为一个微框架”的教程,而仅仅是“如何使用MicroKernelTrait”的教程。
从开始,您就有了MicroKernel不需要的文件。只要删除AppKernel.php,AppCache.php。根本不需要app/config目录。./src/AppBundle/也是多余的。
而不是Standard ,您应该创建一个空目录,并在那里运行composer require symfony/symfony。然后创建app/MicroKernel.php和web/app.php,如本教程所示。您还需要包含以下内容的app/autoload.php文件(在开始的示例中不需要这些关于注释的行,但以后可能需要它们-如果没有注释支持,您可以跳过创建该文件并直接包含vendor/autoload.php文件):
<?php
use Doctrine\Common\Annotations\AnnotationRegistry;
use Composer\Autoload\ClassLoader;
error_reporting(error_reporting() & ~E_USER_DEPRECATED);
$loader = require __DIR__.'/../vendor/autoload.php';
AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
return $loader;就是这样。它应该能正常工作。
https://stackoverflow.com/questions/34077483
复制相似问题