Silexでフォームコンポーネントのカスタムフィールドを開発しています。このフィールドの目的は、キャプチャ画像/値をレンダリングして検証することです。
カスタムタイプを登録するFormExtensionを追加することができました。セッションにキャプチャ値を保存できるようにを
注入しています。$app['session']
セッションに触れ始めるまで、すべてが期待どおりに機能しているようです。
これが私が得るエラーです:
Failed to start the session because headers have already been sent.
以下は、FormExtensionを登録する方法と、カスタムフィールドタイプをインスタンス化する方法です。
$app->register(new FormServiceProvider());
$app['form.extensions'] = $app->share(
$app->extend('form.extensions', function ($extensions) use ($app) {
$extensions[] = new CaptchaFormExtension($app['captcha.options'], $app['session']);
return $extensions;
})
);
class CaptchaFormExtension extends AbstractExtension
{
private $session;
private $options;
public function __construct($options = array(), Session $session)
{
$this->options = $options;
$this->session = $session;
}
protected function loadTypes()
{
return array(
new CaptchaType($this->options, $this->session)
);
}
}