Instalé el paquete Captcha usando esta siguiente Instrucción:

  1. Agregue "gregwar/captcha-bundle": "1.0.0" a la sección require en composer.json
  2. Ejecute Windows PowerShell en la raíz y llame a php composer.phar update
  3. Salidas de consola

Advertencia: Inicio de PHP: No se puede cargar la biblioteca dinámica 'C: \ xampp \ php \ ext \ php_yaml.dll' - Nie mo┐na odnalečŠ okreťlonego module│u. en Desconocido en línea 0 Cargando repositorios del compositor con información del paquete Actualizando dependencias (incluido require-dev) Nada para instalar o actualizar Generando archivos de carga automática Incenteev \ ParameterHandler \ ScriptHandler :: buildParameters Actualizando el archivo "app / config / parameters.yml" Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: buildBootstrap

Advertencia: Inicio de PHP: No se puede cargar la biblioteca dinámica 'C: \ xampp \ php \ ext \ php_yaml.dll' - Nie mo┐na odnalečŠ okreťlonego module│u. en Desconocido en la línea 0 Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: clearCache

Advertencia: Inicio de PHP: No se puede cargar la biblioteca dinámica 'C: \ xampp \ php \ ext \ php_yaml.dll' - Nie mo┐na odnalečŠ okreťlonego module│u. en Desconocido en la línea 0

// Limpiar la caché para el entorno de desarrollo con debug true

[OK] Se borró correctamente la caché del entorno "dev" (debug = true).

Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: installAssets

Advertencia: Inicio de PHP: No se puede cargar la biblioteca dinámica 'C: \ xampp \ php \ ext \ php_yaml.dll' - Nie mo┐na odnalečŠ okreťlonego module│u. en Desconocido en la línea 0

Intentando instalar activos como enlaces simbólicos relativos.

        Bundle                 Method / Error   

ADVERTENCIA Copia de FrameworkBundle
ADVERTENCIA Copia de JMSTranslationBundle

! [NOTA] Algunos activos se instalaron mediante copia. Si realiza cambios en estos activos, debe ejecutar este comando nuevamente.

[Aceptar] Todos los activos se instalaron correctamente.

Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: installRequirementsFile Sensio \ Bundle \ DistributionBundle \ Composer \ ScriptHandler :: prepareDeploymentTarget

  1. Siguiendo las instrucciones puedo omitir este paso

    // app/autoload.php
    
    $loader->registerNamspaces(array(
        // ...
        'Gregwar' => __DIR__.'/../vendor/bundles',
    ));
    

Pero mis archivos autoload.php tienen el siguiente aspecto:

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;
  1. Habilité el paquete:

    // app/appKernel.php
    
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
        );
    }
    
  2. El último paso de instalación es agregar gregwar_captcha: ~ a app/config/config.yml y listo.

Ahora estoy tratando de usarlo en mi controlador.

    public function registrationAction(Request $request)
    {
        $user = new Models\User();

        $form = $this->createFormBuilder($user)
            ->add('username', 'Symfony\Component\Form\Extension\Core\Type\TextType')
            ->add('birth', 'Symfony\Component\Form\Extension\Core\Type\DateType')
            ->add('captcha', 'captcha')
            ->add('save', 'Symfony\Component\Form\Extension\Core\Type\SubmitType', array('label' => 'Register'))
            ->getForm();

        $form->handleRequest($request);



        return $this->render(
             'CassyW2Bundle:User:registration.html.twig',
             array(
                'form' => $form->createView(),
            )
        );
    }

Recibo error:

Compile Error: Declaration of Gregwar\CaptchaBundle\Type\CaptchaType::buildView() must be compatible with Symfony\Component\Form\FormTypeInterface::buildView(Symfony\Component\Form\FormView $view, Symfony\Component\Form\FormInterface $form, array $options)

¿Dónde me equivoqué?

1
Bejkrools 27 ene. 2016 a las 13:06

3 respuestas

La mejor respuesta

Consulte el Doc. Para tu versión de Symfony, necesitas otra versión de este paquete. Intente instalarlo sin proporcionar la versión en composer.json.

1
Ilya Yarkovets 27 ene. 2016 a las 10:17

https://github.com/symfony/symfony/blob/2.7/UPGRADE-2.1.md#form

Si marca Actualizar documentos, qué versión relacionada con Symfony 2.1 FormTypeInterface cambió y es una ruptura BC que se usó en https://github.com/Gregwar/CaptchaBundle/blob/v1 .0.0 / Tipo / CaptchaType.php

Así que Symfony 2.8 no es compatible con este paquete versión 1.0.0 Hay una versión 2.0 etiquetada, por favor use esto y si todavía hay problemas abra otra pregunta.

0
FZE 27 ene. 2016 a las 10:28

De acuerdo con la advertencia, intente instalar la extensión php_yaml descargándola del sitio web de PEAR https: //pecl.php .net / paquete / yaml.

Elija la versión estable y copie el dll cuando lo extraiga a ** C: \ xampp \ php \ ext **

0
yfet 27 ene. 2016 a las 10:21