Commit a73e273c authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

CS.

Showing with 115 additions and 54 deletions
+115 -54
......@@ -18,7 +18,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class CheckCommand extends ContainerAwareCommand
{
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function configure()
{
......@@ -28,7 +28,7 @@ class CheckCommand extends ContainerAwareCommand
}
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
......
......@@ -19,7 +19,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class CollectGarbageCommand extends ContainerAwareCommand
{
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function configure()
{
......@@ -30,7 +30,7 @@ class CollectGarbageCommand extends ContainerAwareCommand
}
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
......
......@@ -20,7 +20,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class CreateCommand extends ContainerAwareCommand
{
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function configure()
{
......@@ -34,7 +34,7 @@ class CreateCommand extends ContainerAwareCommand
}
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
......
......@@ -19,7 +19,7 @@ use Symfony\Component\Console\Output\OutputInterface;
class ReadCommand extends ContainerAwareCommand
{
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function configure()
{
......@@ -33,7 +33,7 @@ class ReadCommand extends ContainerAwareCommand
}
/**
* {@inheritDoc}
* {@inheritdoc}
*/
protected function execute(InputInterface $input, OutputInterface $output)
{
......
......@@ -84,6 +84,7 @@ class UploadController extends Controller
/**
* @Route("", name="file_upload_create")
* @Method("POST")
*
* @param Request $request
*
* @return JsonResponse
......@@ -130,7 +131,8 @@ class UploadController extends Controller
/**
* @Route("/{id}/content", name="file_upload_put_content")
* @Method("PUT")
* @param Request $request
*
* @param Request $request
* @param UploadedFile $file
*
* @return JsonResponse|Response
......@@ -173,9 +175,9 @@ class UploadController extends Controller
throw new BadRequestHttpException('Invalid Content-Range');
}
$start = (int)$matches[1];
$end = (int)$matches[2];
$total = (int)$matches[3];
$start = (int) $matches[1];
$end = (int) $matches[2];
$total = (int) $matches[3];
if ($start < 0 || $start >= $end || $end >= $total) {
throw new HttpException(Response::HTTP_REQUESTED_RANGE_NOT_SATISFIABLE);
......@@ -217,7 +219,8 @@ class UploadController extends Controller
/**
* @Route("/{id}/content", name="file_upload_get_content")
* @Method("GET")
* @param Request $request
*
* @param Request $request
* @param UploadedFile $file
*
* @return UploadedFileResponse
......@@ -239,7 +242,8 @@ class UploadController extends Controller
/**
* @Route("/{id}", name="file_upload_delete")
* @Method("DELETE")
* @param Request $request
*
* @param Request $request
* @param UploadedFile $file
*
* @return JsonResponse
......
......@@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\Request;
/**
* UploadedFile controller.
*
* @Route("/files")
* @Security("is_granted('ROLE_FILES_ADMIN')")
*/
......@@ -25,6 +26,7 @@ class UploadedFileController extends Controller
{
/**
* Lists all UploadedFile entities.
*
* @Route("/", name="files")
* @Method("GET")
* @Template()
......@@ -54,6 +56,7 @@ class UploadedFileController extends Controller
/**
* Finds and displays a UploadedFile entity.
*
* @Route("/{id}", name="files_show")
* @Method("GET")
* @Template()
......
......@@ -11,7 +11,7 @@ use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
* This is the class that validates and merges configuration from your app/config files.
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
* To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}.
*/
class Configuration implements ConfigurationInterface
{
......@@ -30,7 +30,7 @@ class Configuration implements ConfigurationInterface
->ifString()
->then(
function ($v) {
$int = (int)$v;
$int = (int) $v;
if (strpos($v, 'K')) {
return 1000 * $int;
}
......
......@@ -13,7 +13,7 @@ use Symfony\Component\DependencyInjection\Loader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
/**
* {@inheritDoc}
* {@inheritdoc}
*/
class IrsteaFileUploadExtension extends Extension implements PrependExtensionInterface
{
......
......@@ -24,8 +24,7 @@ use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* Class UploadedFileRepository
* @package Irstea\FileUploadBundle\Entity\Repository
* Class UploadedFileRepository.
*/
class UploadedFileRepository extends EntityRepository implements FileManagerInterface
{
......@@ -143,8 +142,6 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte
/**
* @param string $uuid
*
* @return null
*/
public function get($uuid)
{
......@@ -152,7 +149,7 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte
return null;
}
if (!is_string($uuid) || !Uuid::isValid($uuid)) {
throw new InvalidArgumentException(sprintf('Identifiant invalide: %s', (string)$uuid));
throw new InvalidArgumentException(sprintf('Identifiant invalide: %s', (string) $uuid));
}
return $this->findOneById($uuid);
......
......@@ -27,7 +27,8 @@ use Rhumsaa\Uuid\Uuid;
class UploadedFile implements UploadedFileInterface
{
/**
* Taille de bloc utilisé pour les copies
* Taille de bloc utilisé pour les copies.
*
* @var int
*/
public static $copyBlockSize = 8192;
......@@ -37,18 +38,21 @@ class UploadedFile implements UploadedFileInterface
/**
* @ORM\Id
* @ORM\Column(type="guid")
*
* @var string
*/
private $id;
/**
* @ORM\Column(type="string", length=1024)
*
* @var string
*/
private $displayName;
/**
* @ORM\Column(type="string", length=1024)
*
* @var string
*/
private $path;
......@@ -60,54 +64,63 @@ class UploadedFile implements UploadedFileInterface
/**
* @ORM\Column(type="string", length=255, nullable=true)
*
* @var string
*/
private $mimeType;
/**
* @ORM\Column(type="integer", nullable=true)
*
* @var int
*/
private $size;
/**
* @ORM\Column(type="string", length=64, nullable=true)
*
* @var string
*/
private $checksum;
/**
* @ORM\Column(type="string", length=10)
*
* @var string
*/
private $etat = self::ETAT_EN_COURS;
/**
* @ORM\Column(type="datetime")
*
* @var DateTime
*/
private $createdAt;
/**
* @ORM\Column(type="string", nullable=true)
*
* @var string
*/
private $createdBy;
/**
* @ORM\Column(type="string", nullable=true)
*
* @var string
*/
private $createdFrom;
/**
* @ORM\Column(type="json_array", nullable=true)
*
* @var array
*/
private $metadata;
/**
* @ORM\Column(type="string", length=256, nullable=true)
*
* @var string
*/
private $description;
......@@ -269,7 +282,7 @@ class UploadedFile implements UploadedFileInterface
],
true
)) {
throw new InvalidArgumentException(sprintf("Etat invalide: '%s'", (string)$etat));
throw new InvalidArgumentException(sprintf("Etat invalide: '%s'", (string) $etat));
}
// Déplace le fichier hors de l'orphelinat quand on passe d'orphelin à nouveau
......@@ -339,6 +352,7 @@ class UploadedFile implements UploadedFileInterface
* @param Filesystem $filesystem
*
* @return self
*
* @internal
*/
public function setFilesystem(Filesystem $filesystem)
......@@ -484,13 +498,13 @@ class UploadedFile implements UploadedFileInterface
}
/** Wrapper de stream_copy_to_stream
*
* @param resource $source
* @param resource $dest
* @param int $maxlen
* @param int $offset
*
* @return int
*
* @internal
*/
protected function stream_copy_to_stream($source, $dest, $maxlen = -1, $offset = 0)
......@@ -499,10 +513,10 @@ class UploadedFile implements UploadedFileInterface
}
/** Wrapper de feof
*
* @param resource $filehandle
*
* @return bool
*
* @internal
*/
protected function feof($filehandle)
......@@ -511,11 +525,11 @@ class UploadedFile implements UploadedFileInterface
}
/** Wrapper de fread
*
* @param resource $filehandle
* @param int $maxlen
*
* @return int|bool
*
* @internal
*/
protected function fread($filehandle, $maxlen = -1)
......@@ -524,11 +538,11 @@ class UploadedFile implements UploadedFileInterface
}
/** Wrapper de fwrite
*
* @param resource $filehandle
* @param int $maxlen
*
* @return int|bool
*
* @internal
*/
protected function fwrite($filehandle, $maxlen = -1)
......@@ -537,10 +551,10 @@ class UploadedFile implements UploadedFileInterface
}
/** Vérifie si un chemin est "safe".
*
* @param string $path
*
* @return bool
*
* @internal
*/
public static function isSafePath($path)
......@@ -684,6 +698,7 @@ class UploadedFile implements UploadedFileInterface
/**
* Met à jour le chemin réel du fichier.
*
* @ORM\PostLoad
* @ORM\PostPersist
* @ORM\PostUpdate
......
......@@ -21,9 +21,9 @@ class RejectedFileException extends RuntimeException implements Exception
/**
* @param UploadedFileInterface $uploadedFile
* @param string $message
* @param int $code
* @param \Exception $previous
* @param string $message
* @param int $code
* @param \Exception $previous
*
* @internal param UploadedFileInterface $file
*/
......
......@@ -127,7 +127,7 @@ class FileUploadType extends AbstractType
* @todo Implémenter min_file_size, max_file_size && accept_file_types.
*
* @param OptionsResolver $options
* @param mixed $constraints
* @param mixed $constraints
*
* @return array|mixed
*/
......
......@@ -77,10 +77,11 @@ class UploadedFileResponse extends Response
/**
* Sets the file to stream.
*
* @param UploadedFileInterface $file The file to stream
* @param UploadedFileInterface $file The file to stream
* @param string $contentDisposition
*
* @throws FileException
*
* @return UploadedFileResponse
*/
public function setFile(UploadedFileInterface $file, $contentDisposition = null)
......@@ -100,6 +101,7 @@ class UploadedFileResponse extends Response
/**
* Gets the file.
*
* @return UploadedFileInterface The file to stream
*/
public function getFile()
......@@ -164,13 +166,13 @@ class UploadedFileResponse extends Response
[$start, $end] = explode('-', substr($range, 6), 2) + [0];
$end = ('' === $end) ? $fileSize - 1 : (int)$end;
$end = ('' === $end) ? $fileSize - 1 : (int) $end;
if ('' === $start) {
$start = $fileSize - $end;
$end = $fileSize - 1;
} else {
$start = (int)$start;
$start = (int) $start;
}
if ($start <= $end) {
......@@ -213,6 +215,7 @@ class UploadedFileResponse extends Response
/**
* {@inheritdoc}
*
* @throws LogicException when the content is not null
*/
public function setContent($content)
......@@ -224,6 +227,7 @@ class UploadedFileResponse extends Response
/**
* {@inheritdoc}
*
* @return false
*/
public function getContent()
......
......@@ -9,7 +9,7 @@ namespace Irstea\FileUploadBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
/**
* {@inheritDoc}
* {@inheritdoc}
*/
class IrsteaFileUploadBundle extends Bundle
{
......
......@@ -35,7 +35,7 @@ class CreationDataListener
/**
* @param UploadedFileInterface $file
* @param LifecycleEventArgs $event
* @param LifecycleEventArgs $event
*/
public function prePersist(UploadedFileInterface $file, LifecycleEventArgs $event)
{
......
......@@ -35,7 +35,6 @@ class UploadedFileListener
}
/** Passe le filesystem à l'entité.
*
* @param UploadedFileInterface $file
* @param LifecycleEventArgs $event
*/
......@@ -45,7 +44,6 @@ class UploadedFileListener
}
/** Renomme le fichier disque lorsque l'on change l'attribut 'path'.
*
* @param UploadedFileInterface $file
* @param LifecycleEventArgs $event
*/
......@@ -61,7 +59,6 @@ class UploadedFileListener
}
/** Enregistre le chemin du fichier à supprimer.
*
* @param UploadedFileInterface $file
* @param LifecycleEventArgs $event
*/
......@@ -71,7 +68,6 @@ class UploadedFileListener
}
/** Supprime le fichier correspondant à l'UploadedFileInterface supprimé.
*
* @param UploadedFileInterface $file
* @param LifecycleEventArgs $event
*/
......
......@@ -15,10 +15,10 @@ use Symfony\Component\Validator\Exception\InvalidArgumentException;
interface FileManagerInterface
{
/** Retrouve un fichier uploadé par son identifiant.
*
* @param string $id identifiant du fichier
*
* @return UploadedFileInterface|null le fichier retrouvé ou null si aucun fichier ne correspond
*
* @api
*/
public function get($id);
......@@ -32,6 +32,7 @@ interface FileManagerInterface
* @param int $lastModified timestamp de la date de dernière modification
*
* @return UploadedFileInterface le fichier créé
*
* @api
*/
public function create($name, $size, $mimeType, $lastModified = null);
......@@ -43,7 +44,9 @@ interface FileManagerInterface
* @param UploadedFileInterface $original
*
* @throws InvalidArgumentException le fichier original est invalide
*
* @return UploadedFileInterface
*
* @api
*/
public function duplicate(UploadedFileInterface $original);
......@@ -69,13 +72,16 @@ interface FileManagerInterface
/** Retourne une liste de fichiers invalides à supprimer.
* Ce sont des fichiers partiels ou orphelin qui n'ont pas été modifiés depuis plus d'une heure.
*
* @return UploadedFileInterface[]
*
* @internal
*/
public function findGarbage();
/** Retourne la liste des fichiers à valider.
* @return UploadedFileInterface[]
*
* @internal
*/
public function findFilesToValidate();
......
......@@ -19,36 +19,42 @@ interface UploadedFileInterface
/** Fichier orphelin.
* Fichier qui n'a pas encore été associé à un objet métier.
*
* @var string
*/
public const ETAT_ORPHELIN = 'orphelin';
/** Fichier normal.
* Fichier associé à un objet métier.
*
* @var string
*/
public const ETAT_NORMAL = 'normal';
/** Fichier corrompu.
* Fichier dont le contenu disque ne correspond pas à la somme de contrôle enregistreé en base de données.
*
* @var string
*/
public const ETAT_CORROMPU = 'corrompu';
/** Fichier manquant.
* Fichier existant en base de données mais introuvable sur disque.
*
* @var string
*/
public const ETAT_MANQUANT = 'manquant';
/** Fichier rejeté.
* Fichier uploadé mais rejeté par un listener (par exemple l'antivirus).
*
* @var string
*/
public const ETAT_REJETE = 'rejete';
/** Retourne l'identifiant du fichier.
* @return string
*
* @api
*/
public function getId();
......@@ -59,12 +65,14 @@ interface UploadedFileInterface
* @param string $displayName
*
* @return UploadedFileInterface
*
* @api
*/
public function setDisplayName($displayName);
/** Retourne le nom original du fichier (c-à-d sur le poste de l'utilisateur ayant fait l'upload.)
* @return string
*
* @api
*/
public function getDisplayName();
......@@ -73,18 +81,21 @@ interface UploadedFileInterface
* @param string $description
*
* @return UploadedFileInterface
*
* @api
*/
public function setDescription($description = null);
/** Retourne la description du fichier.
* @return string
*
* @api
*/
public function getDescription();
/** Retourne le chemin du fichier dans le filesystem.
* @return string
*
* @api
*/
public function getPath();
......@@ -95,16 +106,18 @@ interface UploadedFileInterface
* @param string $path
*
* @return UploadedFileInterface
*
* @api
*/
public function setPath($path);
/** Change le chemin du fichier sans changer le nom.
*
* @param string $newDir Nouveau répertoire
*
* @return UploadedFileInterface
*
* @uses \UploadedFileInterface::setPath
*
* @api
*/
public function moveTo($newDir);
......@@ -115,12 +128,14 @@ interface UploadedFileInterface
* @param string $mimeType
*
* @return UploadedFileInterface
*
* @api
*/
public function setMimeType($mimeType);
/** Retourne le type MIME enregistré.
* @return string
*
* @api
*/
public function getMimeType();
......@@ -131,12 +146,14 @@ interface UploadedFileInterface
* @param int $size
*
* @return UploadedFileInterface
*
* @api
*/
public function setSize($size);
/** Retourne la taille enregistrée, en octets.
* @return int
*
* @api
*/
public function getSize();
......@@ -147,93 +164,101 @@ interface UploadedFileInterface
* @param string $checksum
*
* @return UploadedFileInterface
*
* @api
*/
public function setChecksum($checksum);
/** Retourne la somme de contrôle enregistrée.
* @return string
*
* @api
*/
public function getChecksum();
/** Modifie l'état courant du fichier.
*
* @param string $etat
*
* @return UploadedFileInterface
*
* @api
*/
public function setEtat($etat);
/** Retourne l'état courant du fichier.
* @return string
*
* @api
*/
public function getEtat();
/** Définit la date de création du fichier.
*
* @param DateTime $time
*
* @return self
*
* @api
*/
public function setCreatedAt(\DateTime $time);
/** Définit le nom de l'utilisateur ayant uploadé le fichier.
*
* @param string $username
*
* @return self
*
* @api
*/
public function setCreatedBy($username);
/** Retourne l'adresse IP du client ayant uploadé le fichier.
*
* @param string $ipAddress
*
* @return self
*
* @api
*/
public function setCreatedFrom($ipAddress);
/** Retourne la date de création du fichier.
* @return DateTime
*
* @api
*/
public function getCreatedAt();
/** Retourne le nom de l'utilisateur ayant uploadé le fichier.
* @return string
*
* @api
*/
public function getCreatedBy();
/** Retourne l'adresse IP du client ayant uploadé le fichier.
* @return string
*
* @api
*/
public function getCreatedFrom();
/** Remplace les métadonnées du fichier.
*
* @param array $metadata les nouvelles métadonnées
*
* @return UploadedFileInterface
*
* @api
*/
public function setMetadata(array $metadata);
/** Retourne les métadonnées du fichier.
* @return array
*
* @api
*/
public function getMetadata();
/** Retourne une représentation texte du fichier.
* @return string
*
* @api
*/
public function __toString();
......@@ -241,37 +266,42 @@ interface UploadedFileInterface
/** Vérifie la validité du fichier.
* Cela consiste à vérifier que le fichier existe dans le filesystem, et que la taille et la somme de contrôle
* correspondent. En cas d'erreur, l'état du fichier est modifié en conséquence.
*
* @uses \UploadedFileInterface::setEtat
*
* @api
*/
public function validate();
/** Détermine si le fichier est dans un état "valide".
* @return bool
*
* @api
*/
public function isValid();
/** Détermine si le fichier est orphelin.
* @return bool
*
* @api
*/
public function isOrphelin();
/** Retourne la date de dernière modification dans le filesystem.
* @return DateTime
*
* @api
*/
public function getLastModified();
/** Retourne le contenu du fichier.
* @return string une chaîne
*
* @api
*/
public function getContent();
/** Remplace le contenu du fichier.
*
* @param string $content
*
* @api
......@@ -279,38 +309,43 @@ interface UploadedFileInterface
public function setContent($content);
/** Ecrit dans le fichier depuis un descripteur de fichier.
*
* @param resource $source flux d'entrée à lire
* @param int $maxlen nombre maximum d'octets à lire
* @param int $writeOffset offset depuis le début du fichier
*
* @return int nombre d'octets écrits
*
* @api
*/
public function copyFrom($source, $maxlen = -1, $writeOffset = 0);
/** Envoie le contenu du fichier dans un descripteur de fichier.
*
* @param resource $dest flux de sortie
* @param int $maxlen nombre maximum d'octets à lire
* @param int $readOffset offset depuis le début du fichier
*
* @return int nombre d'octets lus
*
* @api
*/
public function copyTo($dest, $maxlen = PHP_INT_MAX, $readOffset = 0);
/** Retourne un nom de fichier local pour ce fichier.
* Ce peut-être un fichier temporaire qui sera supprimé à la fin de la requête.
*
* @return string
*
* @api
*/
public function getLocalPath();
/** Retourne une représentation "tableau" des attributs du fichier uploadé.
* Utilisé comme sérialisation du pauvre.
*
* @todo Utiliser un vrai serializer.
*
* @return array
*
* @internal
*/
public function toArray();
......@@ -321,6 +356,7 @@ interface UploadedFileInterface
* @param UploadedFileInterface $other
*
* @return bool true si les deux fichiers ont le même contenu
*
* @api
*/
public function hasSameContent(UploadedFileInterface $other);
......
......@@ -16,7 +16,7 @@ interface FileUrlGeneratorInterface
/**
* Génère une URL sécurisée pour un fichier.
*
* @param string $idFile identifiant du fichier pour lequel générer l'URL
* @param string $idFile identifiant du fichier pour lequel générer l'URL
* @param bool|int|string $referenceType type d'URL à générer
*
* @return string L'url générée
......
......@@ -7,10 +7,10 @@
namespace Irstea\FileUploadBundle\Tests\Form\DataTranformer;
use Irstea\FileUploadBundle\Form\DataTranformer\UploadedFileTransformer;
use Irstea\FileUploadBundle\Model\FileManagerInterface;
use Irstea\FileUploadBundle\Model\UploadedFileInterface;
use PHPUnit_Framework_MockObject_MockObject;
use PHPUnit_Framework_TestCase;
use Irstea\FileUploadBundle\Model\FileManagerInterface;
/**
* Generated by PHPUnit_SkeletonGenerator on 2015-01-27 at 11:36:06.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment