Класс File
Класс File в Laravel предоставляет удобный интерфейс
для работы с файловой системой. Все методы класса являются
статическими и позволяют выполнять такие операции, как
чтение, запись, копирование, перемещение, удаление файлов,
а также работу с директориями. Класс использует компонент
Symfony Finder для расширенных операций поиска файлов.
Методы класса возвращают различные типы данных в зависимости
от выполняемой операции: строки, булевы значения, массивы
или объекты.
Синтаксис
<?php
use Illuminate\Support\Facades\File;
File::methodName($arguments);
?>
Пример
Давайте получим содержимое файла в виде строки с помощью
метода get:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = base_path('composer.json');
$content = File::get($path);
echo $content;
}
}
?>
Результат выполнения кода:
"{\n \"name\": \"laravel/laravel\",\n \"type\": \"project\",\n ...
Пример
Давайте проверим существование файла с помощью метода
exists:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = storage_path('logs/laravel.log');
$exists = File::exists($path);
if ($exists) {
echo "File exists";
} else {
echo "File not found";
}
}
}
?>
Результат выполнения кода:
"File exists"
Пример
Давайте запишем данные в файл методом put:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = storage_path('app/data.txt');
$data = "Hello, Laravel!";
$bytes = File::put($path, $data);
echo "Written $bytes bytes";
}
}
?>
Результат выполнения кода:
"Written 16 bytes"
Пример
Давайте скопируем файл с помощью метода copy:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$source = storage_path('app/data.txt');
$destination = storage_path('app/data_backup.txt');
$copied = File::copy($source, $destination);
if ($copied) {
echo "File copied successfully";
}
}
}
?>
Результат выполнения кода:
"File copied successfully"
Пример
Давайте удалим файл методом delete:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = storage_path('app/data_backup.txt');
$deleted = File::delete($path);
if ($deleted) {
echo "File deleted successfully";
}
}
}
?>
Результат выполнения кода:
"File deleted successfully"
Пример
Давайте получим массив всех файлов в директории с помощью
метода files:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = storage_path('app');
$files = File::files($path);
foreach ($files as $file) {
echo $file->getFilename() . "\n";
}
}
}
?>
Результат выполнения кода:
"data.txt"
"data_backup.txt"
"logs.txt"
Пример
Давайте создадим директорию методом makeDirectory:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\File;
class FileController extends Controller
{
public function index()
{
$path = storage_path('app/new_folder');
$created = File::makeDirectory($path, 0755, true);
if ($created) {
echo "Directory created successfully";
}
}
}
?>
Результат выполнения кода:
"Directory created successfully"