snowcap / SnowcapCoreBundle

Bundle used to manage common shared features through all Snowcap projects
3 stars 1 forks source link

Build Status

Snowcap Core Bundle

The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):

Installation

Download SnowcapCoreBundle using composer

Add SnowcapCoreBundle in your composer.json:

For Symfony < 2.7

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

For Symfony >= 2.7

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

Now tell composer to download the bundle by running the command:

$ php composer.phar update snowcap/core-bundle

Composer will install the bundle to your project's vendor/snowcap directory.

Enable the Bundle

Enable the bundle in the kernel:

<?php
// app/AppKernel.php

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

Running the tests

Before running the tests, you will need to install the bundle dependencies. Do it using composer :

$ php composer.phar --dev install

Then you can simply launch phpunit

$ phpunit

Form types

SnowcapCoreBundle provides a few useful form types.

File Field Type (snowcap_core_file)

The _snowcap_corefile field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:

Usage

<?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',
    ));
}

When Symfony displays the form widget, it will also render a "donwload" button, which is basically a link pointing to the file, as specified by the _filepath option.

Options

file_path

type: string or callable required

Either a public path that can be processed by Symfony's PropertyAccess component or a callable that takes the field data as sole argument and returns a path. This path will be used to build the download button url.

allow_delete

type: boolean default: true

When true, will display a checkbox allowing users to ask for the deletion of the current file. When checked, on form submission, the field data will be replaced by an instance of Snowcap\CoreBundle\File\CondemnedFile. It is up to you to process that Condemned file instance (unless you use the SnowcapCoreBundle FileSubscriber).

delete_label

type: string default: null

The label that will be displayed next to the deletion checkbox.

download_label

type: string default: null

The label that will be displayed on the download button.

Image Field Type

The _snowcap_coreimage field type extends the _snowcap_corefile field type. It behaves the same way, except that it is rendered differently: instead of displaying a "download" button, it will actually display the uploaded image.

Note: If you are using SnowcapImBundle, in addition to the options provided by _snowcap_corefile, you can specify a _imformat option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.