Класс для работы с файлами

Печать RSS
154

Автор
Господин ПЖ
0
Сделал скрипт который предоставляет ООП подход для работы текстовыми данными сохраненными в файловой системе

Структура данных очень похожа на CSV с некоторыми изменения для более быстрой работы

Возможности
Поиск по уникальному ключу
Поиск по любым заданным условиям
Поиск первой записи
Поиск последней записи
Возврат структуры файла
Возврат количества записей в файле
Запись строки в файл с генерацией автоинкрементного ключа
Обновление записей по любым условиям
Удаление записей по любым условиям
Очистка файла

Примеры есть по ссылке https://github.com/visavi/motor
Или вот быстро накиданный пример

$file = __DIR__ . '/tests/data/test.csv';

$fileObject = new Reader($file);

$perPage = 3;
$total = $fileObject->count();

$paginator = new Paginator($perPage, $total);

$messages = $fileObject->reverse()->offset($paginator->offset)->limit($paginator->limit)->get();

if ($messages) {
    foreach ($messages as $message) {
        echo '<div>' . $message['name'] . ' (' . date('Y-m-d H:i', $message['time']) . ')<br>' . $message['title'] . '<br>' . $message['text'] . ' </div><hr>';
    }

    echo $paginator->links();
} else {
    echo 'Сообщений нет';
}

Как думаете может создать мини-движок на этом классе?
P

Пришелец
0
Шелл))

Пришелец
0
Вантуз-мен, да конечно создать мини движок на файлах только visavi

Пришелец
0
Попробовал поставить на опен сервер, ничего себе мини около 7 тонн, значит сразу же ошибка:
Parse error: syntax error, unexpected 'int' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST) in D:\Prog\!-openserver\domains\domen\src\Reader.php on line 19
Автор
Господин ПЖ
0
Отрадий Олегий, php 7.4 надо минимиум, 7 мб наверно это из-за phpunit для покрытия тестами, больше там нет зависимостей

Пришелец
0
Вантуз-мен, папка /vendor/ после установки phpunit весит сама около 7 мб, а все дело только в версии php? тогда придется опен сервер обновлять потому что у меня там php 7.3 самая высокая версия.
Автор
Господин ПЖ
0
Отрадий Олегий, Если обновишься, то запускай composer install --no-dev
Тогда не будут подтягивать пакеты из секции dev в котором как раз phpunit

Пришелец
0
Вантуз-мен, да, отлично все работает, а стесняюсь спросить, а мини движок то на файлах будет? чтоб хоть какая то активность была типа в гостевой написать и потом из гостевой удалить, и так тоже мини? klass так то это самое то что надо.
Автор
Господин ПЖ
0
Отрадий Олегий, да возможно что-то потом сделаю
Сейчас хочу немного доработать, чтобы были доступны такие вызовы типа $reader->find(1)->update(....);
Пока что с этим есть проблемы, надо как-то итератор сбрасывать после find, но чтобы в тоже время и в update - delete он был доступен, а то сейчас есть сделать ->find(1)->where(...)->where(...) то условие передается, а не должно, но в тоже время ->find(1)->update(....) или ->find(1)->delete(); должен работать

Пришелец
0
Вантуз-мен, ничего не понял, но ясно что дело продвигается потихоньку и это радует, а после команды composer install --no-dev при переустановки с нуля это класса папка /vendor/ такая почти может 6.5 мб весит как то так.
Изменил: Отрадий Олегий (11.08.2021 / 18:21)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск