nulib/php/src_base/file.php

87 lines
1.7 KiB
PHP
Raw Normal View History

2024-04-25 17:46:18 +04:00
<?php
namespace nulib;
use nulib\file\base\FileReader;
use nulib\file\base\FileWriter;
use nulib\file\base\MemoryStream;
use nulib\file\base\SharedFile;
use nulib\file\base\TempStream;
use nulib\file\base\TmpfileWriter;
/**
* Class file: outils pour gérer les fichiers
*/
class file {
static function reader($input, ?callable $func=null): FileReader {
$file = new FileReader($input);
if ($func !== null) {
try {
$func($file);
} finally {
$file->close();
}
}
return $file;
}
static function writer($output, ?string $mode=null, ?callable $func=null): FileWriter {
$file = new FileWriter($output, $mode);
if ($func !== null) {
try {
$func($file);
} finally {
$file->close();
}
}
return $file;
}
static function shared($file, ?callable $func=null): SharedFile {
$file = new SharedFile($file);
if ($func !== null) {
try {
$func($file);
} finally {
$file ->close();
}
}
return $file;
}
static function tmpwriter($destdir=null, ?callable $func=null): TmpfileWriter {
$file = new TmpfileWriter($destdir);
if ($func !== null) {
try {
$func($file);
} finally {
$file->close();
}
}
return $file;
}
static function memory(?callable $func=null): MemoryStream {
$file = new MemoryStream();
if ($func !== null) {
try {
$func($file);
} finally {
$file->close();
}
}
return $file;
}
static function temp(?callable $func=null): TempStream {
$file = new TempStream();
if ($func !== null) {
try {
$func($file);
} finally {
$file->close();
}
}
return $file;
}
}