承接 rollun-com/rollun-files 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rollun-com/rollun-files

最新稳定版本:1.0.2

Composer 安装命令:

composer require rollun-com/rollun-files

包简介

For work with Csv files

README 文档

README

Installation

composer require rollun-com/rollun-files

Опис

Представляє собою бібліотеку для розширеного управління файловою системою, з особливим акцентом на роботу з CSV‑файлами. Його функціональність включає:

Базові файлові операції

  • FileManager:
    Надає методи для створення директорій, рекурсивного видалення файлів та папок, а також для безпечного відкриття, блокування та закриття файлів. Реалізована логіка повторних спроб при доступі до файлів, що забезпечує коректну поведінку в умовах конкурентного доступу.

Розширені можливості роботи з файлами

  • FileObject:
    Наслідує стандартний SplFileObject, доповнюючи його методами для точкової модифікації файлу — вставки, видалення та перезапису окремих рядків, підрахунку рядків, зміни розміру файлу з урахуванням буферизації та перевірки коректності операцій запису/читання.

Спеціалізована робота з CSV‑файлами

  • CsvFileObject:
    Забезпечує зручне читання та запис CSV‑даних, автоматичне визначення заголовків, ітерацію по рядках та коректну обробку спеціальних символів (наприклад, нормалізацію символів переведення рядка).

  • CsvFileObjectWithPrKey:
    Розширює можливості роботи з CSV, передбачаючи наявність первинного ключа (зазвичай у першому стовпці). Дозволяє виконувати пошук, додавання та оновлення рядків за значенням цього ключа.

Підтримка стратегій пошуку та модифікації

  • Патерн «Стратегія»:
    Інтерфейс CsvStrategyInterface та його реалізація, наприклад, CsvBinaryStrategy, реалізують механізм швидкого доступу до рядків CSV‑файлу (на основі бінарного пошуку) за умови, що файл відсортовано за первинним ключем. Це дозволяє ефективно знаходити, вставляти та оновлювати записи.

Таким чином, бібліотека об’єднує функціонал для надійного та ефективного управління звичайними файлами, а також для детальної роботи з CSV‑даними. Він підходить для сценаріїв, де потрібні не лише операції читання/запису файлів, а й складне редагування їх вмісту з забезпеченням безпеки та конкурентного доступу.

Usage

use rollun\files\Csv\CsvFileObjectWithPrKey;

$filename = 'data.csv';
/* 
* id,name,age
* 123,Ivan,25
*/

$csv = new CsvFileObjectWithPrKey(
    $filename,
    ',',
    '"',
    '\\',
    CsvBinaryStrategy::class,
    'id'
);

$row = $csv->getRowById("123"); // 123,Ivan,25

$newRow = [
    "id"   => "456",
    "name" => "John Doe",
    "age"  => "30",
];
$csv->addRow($newRow); // add row to csv
/*
 * id,name,age
 * 123,Ivan,25
 * 456,John Doe,30
 */

$updatedRow = [
    "id"   => "456",
    "name" => "John Smith",
    "age"  => "31",
];
$csv->setRow($updatedRow); // update row with id 456
/*
 * id,name,age
 * 123,Ivan,25
 * 456,John Smith,31
 */

Contributing

docs/contributing.md

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2025-04-03