Ejemplo n.º 1
0
 private function getFileNameIndex(FilePathValue $path, string $fileName, string $extension) : int
 {
     $nameRegex = preg_quote($fileName) . '(_(?P<idx>[0-9]+))?\\.' . preg_quote($extension ?? '');
     $query = $this->executeSql('
           SELECT name
             FROM files
            WHERE path = :path AND name REGEXP :name
         ORDER BY name ASC
     ', ['path' => $path->toString(), 'name' => $nameRegex]);
     if ($query->rowCount() === 0) {
         return 0;
     }
     $max = 0;
     while ($row = $query->fetchColumn()) {
         if ($row === $fileName . '.' . $extension) {
             continue;
         }
         preg_match('#' . $nameRegex . '#', $row, $match);
         $max = max($max, intval($match['idx'], 1));
     }
     return $max + 1;
 }