PHP Classes

File: examples/case-studies/files/cleanup/quota_file_cleaner/quota_file_cleaner-GR.md

Recommend this page to a friend!
  Packages of Christos Drogidis   Ascoos OS   examples/case-studies/files/cleanup/quota_file_cleaner/quota_file_cleaner-GR.md   Download  
File: examples/case-studies/files/cleanup/quota_file_cleaner/quota_file_cleaner-GR.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: Ascoos OS
A PHP Web 5.0 Kernel for decentralized web and IoT
Author: By
Last change:
Date: 8 months ago
Size: 4,732 bytes
 

Contents

Class file image Download

?????????? ??????? ?? ?????? Quota ??? ??????? ??????????????

???? ? ?????? ?????????? ??????? ??? ?? Ascoos OS ?????? ?? ????????? ????? ?????? ??? ???? ??????, ?? ??????? ?? ??????? quota, ?? ?????????? ???????? ??? ?? ???????????? ??????? ?? ??????????.

??????

  • ?????????? ??????? ??????????? ??? 30 ??????
  • ??????? quota ???? ??? ??????????
  • ????????? ????????? (?.?. ???????? ???????, ???????? quota, ?????????? ????????)
  • ??????? ??????? ???????????? ???????
  • ?????????? ???????? ?? JSON

?????? ??????? ??? Ascoos OS

  • TFilesHandler ?????????? ??????? ??? ???????, ???????, ???????????, ??????? ?? ??????
  • TEventHandler ????????? ??? ???????????? ????????? ?? ?????????? logging
  • TArrayAnalysisHandler ??????? ??????????? ????????? ??? ?????????? ??????????? ????????

???? ???????

? ?????? ??????????? ?? ??? ?????? PHP: - quota_file_cleaner.php

???????????? ??? ?? ??????: ????????? ???????, logging, quota check ??? ?????????? ????????.

??????????????

  1. PHP ? 8.2
  2. ????????????? ?? Ascoos OS ? ?? AWES 26

??? ?????????

  1. ????????? ?? ????????? ??? logging ??? ?????? ??????????.
  2. ??????????????? ?? handlers: `TFilesHandler`, `TEventHandler`, `TArrayAnalysisHandler`.
  3. ????????????? ???????? ??? logging.
  4. ????????????? ? ??????? ?????????? (?? ??? ???????).
  5. ????????? ?? ???? ?????????? ?? quota.
  6. ????? ??????? ? ???????? ??????? ??????????? ??? 30 ??????.
  7. ????????????? ?? ??????????? ?????? ??? ?? ?????? ????.
  8. ????????????? ?????????? ???????.
  9. ???????????? ? ??????? ?? JSON.
  10. ??????????? ?? ??????????.

?????????? ??????

$files = new TFilesHandler([], $properties['file']);
$events = new TEventHandler([], $properties);
$analysis = new TArrayAnalysisHandler([], $properties);

$events->register('cleaner', 'file.deleted', fn($file) => $events->logger->log("Deleted file: $file"));
$events->register('cleaner', 'quota.exceeded', fn() => $events->logger->log("Quota exceeded before cleanup"));
$events->register('cleaner', 'report.generated', fn($path) => $events->logger->log("Report saved: $path"));

if ($files->isQuotaExceeded($properties['file']['baseDir'])) {
    $events->trigger('cleaner', 'quota.exceeded');
}

foreach ($files->listFilesAndFolders($properties['file']['baseDir']) as $file) {
    // ... ???????? ??????? ??? logging
}

$analysis->setArray($deletedSizes);
$stats = $analysis->generateStatisticsReport();

$report = [
    'deleted_files' => $deletedFiles,
    'statistics' => $stats
];
$files->writeToFileWithCheck(json_encode($report, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), $reportPath);

??????????? ??????????

{
  "deleted_files": ["temp1.log", "old_cache.tmp", "debug_2023.txt"],
  "statistics": {
    "count": 3,
    "total_size": 124830,
    "average_size": 41610,
    "min_size": 10240,
    "max_size": 92150
  }
}

?????

??????????

???????? ?? ??????????? ?? ?????? ??? ????????? ????? ????? ???????, ??????????? ??????????? ? custom ???????. ????? ?? CONTRIBUTING.md ??? ???????.

????? ??????

???? ? ?????? ?????????? ??? ??? Ascoos General License (AGL). ????? ?? LICENSE.md.