我使用以下Instruction安装了Captcha软件包:
"gregwar/captcha-bundle": "1.0.0"
添加到require
composer.json
部分
Windows PowerShell
并致电php composer.phar update
警告:PHP启动:无法加载动态库 'C:\ xampp \ php \ ext \ php_yaml.dll' - Niemo┐nodnnalečŠokreťlonego modu│u。在第0行的未知中使用加载作曲家存储库 包信息更新依赖项(包括require-dev) 无需安装或更新生成自动加载文件 Incenteev \ ParameterHandler \ ScriptHandler :: buildParameters更新 “app / config / parameters.yml”文件 SENSIO \捆绑\ DistributionBundle \作曲\ ScriptHandler :: buildBootstrap
警告:PHP启动:无法加载动态库 'C:\ xampp \ php \ ext \ php_yaml.dll' - Niemo┐nodnnalečŠokreťlonego modu│u。在第0行的未知中 SENSIO \捆绑\ DistributionBundle \作曲\ ScriptHandler :: clearCache
警告:PHP启动:无法加载动态库 'C:\ xampp \ php \ ext \ php_yaml.dll' - Niemo┐nodnnalečŠokreťlonego modu│u。在第0行的未知中
//使用debug true清除dev环境的缓存
[ok]“dev”环境(debug = true)的缓存已成功完成 清零。
Sensio公司\捆绑\ DistributionBundle \作曲\ ScriptHandler :: installAssets
警告:PHP启动:无法加载动态库 'C:\ xampp \ php \ ext \ php_yaml.dll' - Niemo┐nodnnalečŠokreťlonego modu│u。在第0行的未知中
尝试将资源安装为相对符号链接。
Bundle Method / Error
警告FrameworkBundle副本
警告JMSTranslationBundle副本! [注意]有些资产是通过副本安装的。如果您进行了更改 这些资产你必须再次运行这个命令。
[确定]所有资产都已成功安装。
Sensio公司\捆绑\ DistributionBundle \作曲\ ScriptHandler :: installRequirementsFile SENSIO \捆绑\ DistributionBundle \作曲\ ScriptHandler :: prepareDeploymentTarget
按照说明我可以跳过此步骤
// app/autoload.php
$loader->registerNamspaces(array(
// ...
'Gregwar' => __DIR__.'/../vendor/bundles',
));
但是我的autoload.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;
我启用了捆绑包:
// app/appKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
);
}
上次安装步骤是将gregwar_captcha: ~
添加到app/config/config.yml
并完成。
现在我正试图在我的控制器中使用它。
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(),
)
);
}
我收到错误:
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)
我哪里错了?
答案 0 :(得分:1)
见Doc。对于您的symfony版本,您需要此捆绑包的另一个版本。尝试安装它而不在composer.json
中提供版本。
答案 1 :(得分:0)
根据警告,尝试通过从PEAR的sitweb https://pecl.php.net/package/yaml下载来安装php_yaml扩展程序。
选择稳定版本并在解压缩时将dll复制到** C:\ xampp \ php \ ext **
答案 2 :(得分:0)
https://github.com/symfony/symfony/blob/2.7/UPGRADE-2.1.md#form
如果您检查升级文档哪个版本与Symfony 2.1 FormTypeInterface相关,那么它是一个BC break,用于 https://github.com/Gregwar/CaptchaBundle/blob/v1.0.0/Type/CaptchaType.php
因此Symfony 2.8与此捆绑版本1.0.0不兼容有版本2.0标记,请使用此,如果仍有问题打开另一个问题。