Bolt\Provider\UploadServiceProvider::register PHP Method

register() public method

public register ( Silex\Application $app )
$app Silex\Application
    public function register(Application $app)
    {
        // This exposes the main upload object as a service
        $app['upload'] = $app->share(function () use($app) {
            $allowedExtensions = $app['config']->get('general/accept_file_types');
            $uploadHandler = new UploadHandler($app['upload.container']);
            $uploadHandler->setPrefix($app['upload.prefix']);
            $uploadHandler->setOverwrite($app['upload.overwrite']);
            $uploadHandler->addRule('extension', ['allowed' => $allowedExtensions]);
            $pattern = $app['config']->get('general/upload/pattern', '[^A-Za-z0-9\\.]+');
            $replacement = $app['config']->get('general/upload/replacement', '-');
            $lowercase = $app['config']->get('general/upload/lowercase', true);
            $uploadHandler->setSanitizerCallback(function ($filename) use($pattern, $replacement, $lowercase) {
                if ($lowercase) {
                    return preg_replace("/{$pattern}/", $replacement, strtolower($filename));
                }
                return preg_replace("/{$pattern}/", $replacement, $filename);
            });
            return $uploadHandler;
        });
        // This exposes the file container as a configurable object please refer to:
        // Sirius\Upload\Container\ContainerInterface
        // Any compatible file handler can be used.
        $app['upload.container'] = $app->share(function () use($app) {
            /** @var Filesystem $filesystem */
            $filesystem = $app['filesystem']->getFilesystem($app['upload.namespace']);
            $container = new UploadContainer($filesystem);
            return $container;
        });
        // This allows multiple upload locations, all prefixed with a namespace. The default is /files
        // Note, if you want to provide an alternative namespace, you must set a path on the $app['resources']
        // service
        $app['upload.namespace'] = 'files';
        // This gets prepended to all file saves, can be reset to "" or add your own closure for more complex ones.
        $app['upload.prefix'] = date('Y-m') . '/';
        $app['upload.overwrite'] = false;
    }
UploadServiceProvider