Completed
Push — master ( 55364b...aacfc9 )
by Julito
08:55 queued 10s
created

SmartUniqueNamer   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 11
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 11
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A name() 0 9 1
1
<?php
2
3
namespace Chamilo\CoreBundle\Component\Naming;
4
5
use Behat\Transliterator\Transliterator;
6
use Vich\UploaderBundle\Mapping\PropertyMapping;
7
use Vich\UploaderBundle\Naming\NamerInterface;
8
9
/**
10
 * @todo this file will be remove after updating to vich_uploader > 1.10
11
 * This namer makes filename unique by appending a uniqid.
12
 * Also, filename is made web-friendly by transliteration.
13
 *
14
 * @author Massimiliano Arione <[email protected]>
15
 */
16
final class SmartUniqueNamer implements NamerInterface
17
{
18
    public function name($object, PropertyMapping $mapping): string
19
    {
20
        $file = $mapping->getFile($object);
21
        $originalName = $file->getClientOriginalName();
22
        $originalExtension = \pathinfo($originalName, PATHINFO_EXTENSION);
23
        $originalBasename = \basename($originalName, '.'.$originalExtension);
24
        $originalBasename = Transliterator::transliterate($originalBasename);
25
26
        return \sprintf('%s%s.%s', $originalBasename, \str_replace('.', '', \uniqid('-', true)), $originalExtension);
27
    }
28
}
29