雪帽/core-bundle

Symfony SnowcapCoreBundle

安装数: 8,053

依赖者: 2

建议者: 1

安全: 0

星标: 3

关注者: 7

分支: 1

开放问题: 12

类型:symfony-bundle

v3.0.2 2015-09-26 00:15 UTC

README

Build Status

雪帽核心包

雪帽核心包是雪帽用于帮助处理一些重复性任务的包,包括但不限于:

  • 处理文件和图片上传
  • 生成RSS订阅源
  • SEO相关任务(网站地图等)

安装

使用composer下载SnowcapCoreBundle

在composer.json中添加SnowcapCoreBundle

对于Symfony < 2.7

{
    "require": {
        "snowcap/core-bundle": "~1.0"
    }
}

对于Symfony >= 2.7

{
    "require": {
        "snowcap/core-bundle": "~2.0"
    }
}

现在运行以下命令让composer下载包:

$ php composer.phar update snowcap/core-bundle

Composer会将包安装到项目的vendor/snowcap目录。

启用包

在kernel中启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Snowcap\CoreBundle\SnowcapCoreBundle(),
    );
}

运行测试

在运行测试之前,您需要安装包的依赖。使用composer进行安装

$ php composer.phar --dev install

然后您可以简单地运行phpunit

$ phpunit

表单类型

SnowcapCoreBundle提供了一些有用的表单类型。

文件字段类型(snowcap_core_file)

snowcap_core_file字段类型是一个简单的文件上传小部件。它扩展了Symfony的默认file类型,并增加了两个额外功能:

  • 允许用户请求删除当前文件
  • 小部件包括一个“下载”按钮,允许用户下载文件

用法

<?php
// src/Acme/SiteBundle/Form/CandidateType

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('cv', 'snowcap_core_file', array(
        'label' => 'Curriculum Vitae',
        'file_path' => 'cvPath',
    ));
}

当Symfony显示表单小部件时,它还会渲染一个“下载”按钮,该按钮基本上是一个指向由file_path选项指定的文件的链接。

选项

file_path

类型: 字符串或可调用函数 必需

可以是Symfony的PropertyAccess组件可以处理的公开路径,也可以是一个可调用函数,该函数只接受字段数据作为参数并返回路径。此路径将用于构建下载按钮的URL。

allow_delete

类型: 布尔值 默认值: true

当为true时,将显示一个复选框,允许用户请求删除当前文件。当勾选时,在表单提交时,字段数据将被替换为Snowcap\CoreBundle\File\CondemnedFile的实例。您需要自己处理该Condemned文件实例(除非您使用SnowcapCoreBundle FileSubscriber)。

delete_label

类型: 字符串 默认值: null

将显示在删除复选框旁边的标签。

download_label

类型: 字符串 默认值: null

将显示在下载按钮上的标签。

图片字段类型

snowcap_core_image字段类型扩展了snowcap_core_file字段类型。它的工作方式相同,但渲染方式不同:它不会显示“下载”按钮,而是实际显示上传的图片。

注意:如果您使用SnowcapImBundle,除了snowcap_core_file提供的选项外,您还可以指定一个im_format选项。它将用于动态创建图片的缩略图。请参阅SnowcapImBundle文档以获取更多信息。