0

私は最新バージョンのSilexを使用しています(Pharバージョンではありません)。翻訳プロバイダーと一緒にフォームサービスプロバイダーを実装するのに問題があります。次のエラーが発生します。

「致命的なエラー:クラス'Symfony \ Component \ Config \ Resource \ FileResource'がD:\ xampp \ htdocs \ mytest \ vendor \ symfony \ translation \ Symfony \ Component \ Translation \ Loader\XliffFileLoader.phpの47行目に見つかりません。」

この行を無効にすると、フォームが表示され、すべてが正常に機能します(翻訳を除く)。ドイツ語のフォームの1つのオプションから選択するメッセージも表示されます。

$app->register(new Silex\Provider\ValidatorServiceProvider());

この問題を解決するためのヒントを教えてください。以下の私のコードと私のcomposer.jsonファイルを見てください:

app.php:

<?php
$app = new Silex\Application();
$app['debug'] = true;

use Silex\Provider\FormServiceProvider;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;

$app->register(new Silex\Provider\FormServiceProvider());
$app->register(new Silex\Provider\TranslationServiceProvider(), array(
    'locale' => 'de',
    'fallback_locale' => 'en',
));
$app->register(new Silex\Provider\ValidatorServiceProvider());
$app->register(new Silex\Provider\TwigServiceProvider(), array(
    'twig.path' => __DIR__.'/../views',
));

// Sample from silex-homepage
$app->match('/form', function (Request $request) use ($app) {
    // some default data for when the form is displayed the first time
    $data = array(
        'name' => 'Your name',
        'email' => 'Your email',
    );

    $form = $app['form.factory']->createBuilder('form', $data)
        ->add('name')
        ->add('email')
        ->add('gender', 'choice', array(
            'choices' => array(1 => 'male', 2 => 'female'),
            'expanded' => true,
        ))
        ->getForm();

    if ('POST' == $request->getMethod()) {
        $form->bindRequest($request);

        if ($form->isValid()) {
            $data = $form->getData();

            // do something with the data

            // redirect somewhere
            return $app->redirect('...');
        }
    }

    // display the form
    return $app['twig']->render('test.html', array('form' => $form->createView()));
});

return $app;
?>

composer.json:

{
    "require": {
        "silex/silex": "1.0.*",
        "symfony/browser-kit": "2.1.*",
        "symfony/console": "2.1.*",
        "symfony/config": "2.1.*",
        "symfony/css-selector": "2.1.*",
        "symfony/dom-crawler": "2.1.*",
        "symfony/filesystem": "2.1.*",
        "symfony/finder": "2.1.*",
        "symfony/form": "2.1.*",
        "symfony/locale": "2.1.*",
        "symfony/process": "2.1.*",
        "symfony/security": "2.1.*",
        "symfony/serializer": "2.1.*",
        "symfony/translation": "2.1.*",
        "symfony/validator": "2.1.*",
        "symfony/monolog-bridge": "2.1.*",
        "symfony/twig-bridge": "2.1.*",
        "monolog/monolog": ">=1.0.0,<1.2-dev",
        "twig/twig": ">=1.2.0,<2.0-dev",
        "doctrine/dbal": "2.1.*",
        "swiftmailer/swiftmailer": "4.1.*"
    },
    "autoload": {
        "psr-0": {"Acme": "src/"}
    }
}
4

0 に答える 0