4

app.phpファイルをSymfony2.1とAPCで事前に準備したいと思います。私はSymfony標準版をドクトリンで構成し、ここで説明されている変更を加えました: http ://symfony.com/doc/2.1/book/performance.html

<?php
require_once __DIR__.'\..\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\UniversalClassLoader.php';
require_once __DIR__.'\..\vendor\symfony\symfony\src\Symfony\Component\ClassLoader\ApcUniversalClassLoader.php';
use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;

$loader = new ApcClassLoader('sf2', $loader);
$loader->register(true);

require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
?>

しかし、それは機能していません、私はエラーが発生しました:

Fatal error: Class 'Symfony\Component\HttpKernel\Kernel' not found in __my_path__\app\AppKernel.php on line 7

最高のパフォーマンスを得るためにapp.phpをどのように準備すればよいですか。

4

1 に答える 1

6

Symfony標準ディストリビューションのデフォルトのapp.phpファイルを見てください。APCを有効にするには、app.phpファイルは次のようになります。

use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;

$loader = require_once __DIR__.'/../app/bootstrap.php.cache';

// Use APC for autoloading to improve performance.
// Change 'sf2' to a unique prefix in order to prevent cache key conflicts
// with other applications also using APC.

$loader = new ApcClassLoader('sf2', $loader);
$loader->register(true);

require_once __DIR__.'/../app/AppKernel.php';
//require_once __DIR__.'/../app/AppCache.php';

$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
//$kernel = new AppCache($kernel);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);

と行のコメントを外してsymfonyゲートウェイキャッシュを有効にすると、パフォーマンスを向上させることもできます。require_once __DIR__.'/../app/AppCache.php';$kernel = new AppCache($kernel);

于 2013-03-03T17:08:57.500 に答える