From 1175d22c12987a4730c8421690af08f1b84fa380 Mon Sep 17 00:00:00 2001 From: Nicolas Raidelet <nicolas.raidelet@irstea.fr> Date: Tue, 26 Sep 2017 14:49:09 +0200 Subject: [PATCH] CS et PHPDoc --- Controller/UploadController.php | 6 +-- Controller/UploadedFileController.php | 3 -- DependencyInjection/Configuration.php | 1 - Entity/Repository/UploadedFileRepository.php | 35 ++++++++++++- Entity/UploadedFile.php | 32 ++++-------- Http/UploadedFileResponse.php | 11 ++-- Listener/UploadedFileListener.php | 4 ++ Model/FileManagerInterface.php | 9 +--- Model/UploadedFileInterface.php | 55 ++++---------------- Tests/Listener/UploadedFileListenerTest.php | 1 - Twig/FileUploadExtension.php | 3 -- 11 files changed, 62 insertions(+), 98 deletions(-) diff --git a/Controller/UploadController.php b/Controller/UploadController.php index aa090075..3dabb4d8 100644 --- a/Controller/UploadController.php +++ b/Controller/UploadController.php @@ -75,8 +75,9 @@ class UploadController extends Controller /** * @Route("", name="file_upload_create") * @Method("POST") - * * @param Request $request + * + * @return JsonResponse */ public function createAction(Request $request) { @@ -120,7 +121,6 @@ class UploadController extends Controller /** * @Route("/{id}/content", name="file_upload_put_content") * @Method("PUT") - * * @param Request $request * @param UploadedFile $file */ @@ -206,7 +206,6 @@ class UploadController extends Controller /** * @Route("/{id}/content", name="file_upload_get_content") * @Method("GET") - * * @param Request $request * @param UploadedFile $file */ @@ -227,7 +226,6 @@ class UploadController extends Controller /** * @Route("/{id}", name="file_upload_delete") * @Method("DELETE") - * * @param Request $request * @param UploadedFile $file */ diff --git a/Controller/UploadedFileController.php b/Controller/UploadedFileController.php index ab7f04e2..23d8bd76 100644 --- a/Controller/UploadedFileController.php +++ b/Controller/UploadedFileController.php @@ -18,7 +18,6 @@ use Symfony\Component\HttpFoundation\Request; /** * UploadedFile controller. - * * @Route("/files") * @Security("is_granted('ROLE_FILES_ADMIN')") */ @@ -26,7 +25,6 @@ class UploadedFileController extends Controller { /** * Lists all UploadedFile entities. - * * @Route("/", name="files") * @Method("GET") * @Template() @@ -52,7 +50,6 @@ class UploadedFileController extends Controller /** * Finds and displays a UploadedFile entity. - * * @Route("/{id}", name="files_show") * @Method("GET") * @Template() diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 6db2e0a7..377d3a6e 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -11,7 +11,6 @@ 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} */ class Configuration implements ConfigurationInterface diff --git a/Entity/Repository/UploadedFileRepository.php b/Entity/Repository/UploadedFileRepository.php index eb98e6f6..42d2f9db 100644 --- a/Entity/Repository/UploadedFileRepository.php +++ b/Entity/Repository/UploadedFileRepository.php @@ -23,7 +23,8 @@ use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** - * Description of UploadedFileRepository. + * Class UploadedFileRepository + * @package Irstea\FileUploadBundle\Entity\Repository */ class UploadedFileRepository extends EntityRepository implements FileManagerInterface { @@ -55,6 +56,14 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte $this->eventDispatcher = $eventDispatcher; } + /** + * @param string $filename + * @param int $size + * @param string $mimeType + * @param null $lastModified + * + * @return UploadedFile + */ public function create($filename, $size, $mimeType, $lastModified = null) { $file = new UploadedFile(); @@ -81,6 +90,11 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte return $file; } + /** + * @param UploadedFileInterface $original + * + * @return UploadedFile + */ public function duplicate(UploadedFileInterface $original) { if (!$original->isValid()) { @@ -115,6 +129,9 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte return $new; } + /** + * @param UploadedFileInterface $file + */ public function delete(UploadedFileInterface $file) { $this->_em->remove($file); @@ -123,18 +140,26 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte $this->log(LogLevel::INFO, 'File deleted', ['file' => $file]); } + /** + * @param string $uuid + * + * @return null + */ public function get($uuid) { if (!$uuid) { 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); } + /** + * @param UploadedFileInterface $file + */ public function completed(UploadedFileInterface $file) { $path = $file->getPath(); @@ -175,6 +200,9 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte } } + /** + * @return array + */ public function findGarbage() { $files = $this->findBy(['etat' => [UploadedFileInterface::ETAT_EN_COURS, UploadedFileInterface::ETAT_ORPHELIN]]); @@ -192,6 +220,9 @@ class UploadedFileRepository extends EntityRepository implements FileManagerInte ); } + /** + * @return array + */ public function findFilesToValidate() { return $this->findBy(['etat' => [UploadedFileInterface::ETAT_ORPHELIN, UploadedFileInterface::ETAT_NORMAL]]); diff --git a/Entity/UploadedFile.php b/Entity/UploadedFile.php index d40d37c8..5dd9797a 100644 --- a/Entity/UploadedFile.php +++ b/Entity/UploadedFile.php @@ -26,7 +26,10 @@ 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; public const ORPHAN_PREFIX = 'orphan/'; @@ -34,21 +37,18 @@ 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,63 +60,54 @@ class UploadedFile implements UploadedFileInterface /** * @ORM\Column(type="string", length=255, nullable=true) - * * @var string */ private $mimeType = null; /** * @ORM\Column(type="integer", nullable=true) - * * @var int */ private $size = null; /** * @ORM\Column(type="string", length=64, nullable=true) - * * @var string */ private $checksum = null; /** * @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 = null; /** * @ORM\Column(type="string", length=256, nullable=true) - * * @var string */ private $description = null; @@ -277,7 +268,7 @@ class UploadedFile implements UploadedFileInterface self::ETAT_REJETE, ] )) { - 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 @@ -347,7 +338,6 @@ class UploadedFile implements UploadedFileInterface * @param Filesystem $filesystem * * @return self - * * @internal */ public function setFilesystem(Filesystem $filesystem) @@ -493,13 +483,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) @@ -508,10 +498,10 @@ class UploadedFile implements UploadedFileInterface } /** Wrapper de feof + * * @param resource $filehandle * * @return bool - * * @internal */ protected function feof($filehandle) @@ -520,11 +510,11 @@ class UploadedFile implements UploadedFileInterface } /** Wrapper de fread + * * @param resource $filehandle * @param int $maxlen * * @return int|bool - * * @internal */ protected function fread($filehandle, $maxlen = -1) @@ -533,11 +523,11 @@ class UploadedFile implements UploadedFileInterface } /** Wrapper de fwrite + * * @param resource $filehandle * @param int $maxlen * * @return int|bool - * * @internal */ protected function fwrite($filehandle, $maxlen = -1) @@ -546,10 +536,10 @@ class UploadedFile implements UploadedFileInterface } /** Vérifie si un chemin est "safe". + * * @param string $path * * @return bool - * * @internal */ public static function isSafePath($path) @@ -693,7 +683,6 @@ class UploadedFile implements UploadedFileInterface /** * Met à jour le chemin réel du fichier. - * * @ORM\PostLoad * @ORM\PostPersist * @ORM\PostUpdate @@ -705,7 +694,6 @@ class UploadedFile implements UploadedFileInterface /** * {@inheritdoc} - * * Ne compare que la taille et la somme de contrôle : il existe une très faible probabilité que deux fichiers de * même taille et même checksum soient différents. */ diff --git a/Http/UploadedFileResponse.php b/Http/UploadedFileResponse.php index 6a4d140e..10c0e13a 100644 --- a/Http/UploadedFileResponse.php +++ b/Http/UploadedFileResponse.php @@ -14,7 +14,6 @@ use Symfony\Component\HttpFoundation\Response; /** * Description of UploadedFileResponse. - * * Très, très, fortement inspiré de Symfony\Component\HttpFoundation\UploadedFileResponse. */ class UploadedFileResponse extends Response @@ -78,11 +77,10 @@ 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) @@ -102,7 +100,6 @@ class UploadedFileResponse extends Response /** * Gets the file. - * * @return UploadedFileInterface The file to stream */ public function getFile() @@ -167,13 +164,13 @@ class UploadedFileResponse extends Response list($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) { @@ -216,7 +213,6 @@ class UploadedFileResponse extends Response /** * {@inheritdoc} - * * @throws LogicException when the content is not null */ public function setContent($content) @@ -228,7 +224,6 @@ class UploadedFileResponse extends Response /** * {@inheritdoc} - * * @return false */ public function getContent() diff --git a/Listener/UploadedFileListener.php b/Listener/UploadedFileListener.php index cce11d12..05e5a72e 100644 --- a/Listener/UploadedFileListener.php +++ b/Listener/UploadedFileListener.php @@ -35,6 +35,7 @@ class UploadedFileListener } /** Passe le filesystem à l'entité. + * * @param UploadedFileInterface $file * @param LifecycleEventArgs $event */ @@ -44,6 +45,7 @@ class UploadedFileListener } /** Renomme le fichier disque lorsque l'on change l'attribut 'path'. + * * @param UploadedFileInterface $file * @param LifecycleEventArgs $event */ @@ -59,6 +61,7 @@ class UploadedFileListener } /** Enregistre le chemin du fichier à supprimer. + * * @param UploadedFileInterface $file * @param LifecycleEventArgs $event */ @@ -68,6 +71,7 @@ class UploadedFileListener } /** Supprime le fichier correspondant à l'UploadedFileInterface supprimé. + * * @param UploadedFileInterface $file * @param LifecycleEventArgs $event */ diff --git a/Model/FileManagerInterface.php b/Model/FileManagerInterface.php index dba07e9c..9890d3ef 100644 --- a/Model/FileManagerInterface.php +++ b/Model/FileManagerInterface.php @@ -10,16 +10,15 @@ use Symfony\Component\Validator\Exception\InvalidArgumentException; /** * Gestionnaire de fichier uploadé. - * * Cette interface est le point d'entrée obligatoire pour toute manipulation de fichiers uploadés. */ 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); @@ -33,7 +32,6 @@ 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); @@ -45,9 +43,7 @@ interface FileManagerInterface * @param UploadedFileInterface $original * * @throws InvalidArgumentException le fichier original est invalide - * * @return UploadedFileInterface - * * @api */ public function duplicate(UploadedFileInterface $original); @@ -73,16 +69,13 @@ 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(); diff --git a/Model/UploadedFileInterface.php b/Model/UploadedFileInterface.php index c248f7fc..a4c26cbe 100644 --- a/Model/UploadedFileInterface.php +++ b/Model/UploadedFileInterface.php @@ -9,7 +9,6 @@ namespace Irstea\FileUploadBundle\Model; use DateTime; /** Un fichier uploadé. - * */ interface UploadedFileInterface { @@ -20,42 +19,36 @@ 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(); @@ -66,14 +59,12 @@ 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(); @@ -82,21 +73,18 @@ 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(); @@ -107,18 +95,16 @@ 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); @@ -129,14 +115,12 @@ interface UploadedFileInterface * @param string $mimeType * * @return UploadedFileInterface - * * @api */ public function setMimeType($mimeType); /** Retourne le type MIME enregistré. * @return string - * * @api */ public function getMimeType(); @@ -147,14 +131,12 @@ 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(); @@ -165,101 +147,93 @@ 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(); @@ -267,42 +241,37 @@ 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 @@ -310,43 +279,38 @@ 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(); @@ -357,7 +321,6 @@ interface UploadedFileInterface * @param UploadedFileInterface $other * * @return bool true si les deux fichiers ont le même contenu - * * @api */ public function hasSameContent(UploadedFileInterface $other); diff --git a/Tests/Listener/UploadedFileListenerTest.php b/Tests/Listener/UploadedFileListenerTest.php index dbf5822d..f73abcfb 100644 --- a/Tests/Listener/UploadedFileListenerTest.php +++ b/Tests/Listener/UploadedFileListenerTest.php @@ -78,7 +78,6 @@ class UploadedFileListenerTest extends PHPUnit_Framework_TestCase /** * @covers \Irstea\FileUploadBundle\Listener\UploadedFileListener::postLoad - * * @todo Implement testPostLoad(). */ public function testPostLoad() diff --git a/Twig/FileUploadExtension.php b/Twig/FileUploadExtension.php index 428ff0d1..3f3dcc38 100644 --- a/Twig/FileUploadExtension.php +++ b/Twig/FileUploadExtension.php @@ -95,7 +95,6 @@ class FileUploadExtension extends Twig_Extension /** Genère un tag HTML pour représenter le fichier. * Inclut un lien sécurisé qui permet de télécharger le fichier, mais uniquement à l'utilisateur qui a affiché la page. - * * Usage : `{{ irstea_uploaded_file(file) }}` * * @param Twig_Environment $env @@ -135,7 +134,6 @@ class FileUploadExtension extends Twig_Extension * @param string $mimeType type MIME * * @return string un tag <i></i> avec les classes Font-Awesome - * * @uses \MimeTypeIcon::getMimeTypeIcon */ public function formatFileIcon($mimeType) @@ -154,7 +152,6 @@ class FileUploadExtension extends Twig_Extension * @param string $locale Langue * * @return string - * * @uses \NumberFormatter */ public function formatFileSize($context, $size, $precision = null, $locale = null) -- GitLab