The Snowcap Core Bundle is a bundle used at Snowcap to help us with some repetitive tasks, including (but not limited to):
- Dealing with file and image uploads
- RSS feed generation
- SEO-related tasks (sitemaps, etc)
Add SnowcapCoreBundle in your composer.json:
{
"require": {
"snowcap/core-bundle": "~1.0"
}
}
{
"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 in the kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new Snowcap\CoreBundle\SnowcapCoreBundle(),
);
}
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
SnowcapCoreBundle provides a few useful form types.
The snowcap_core_file field type is a simple file upload widget. It extends Symfony's default file type, and bring two extra features:
- It allows users to ask for the deletion of the current file
- The widget includes a "download" button that allows the user to download the 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',
));
}
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 file_path option.
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.
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).
type: string default: null
The label that will be displayed next to the deletion checkbox.
type: string default: null
The label that will be displayed on the download button.
The snowcap_core_image field type extends the snowcap_core_file 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_core_file, you can specify a im_format option. It will be used to dynamically create a thumbnail of the picture. Please refer to the SnowcapImBundle documentation for more information.