定制 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

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固