ibrostudio/laravel-file-data-manager

v1.0.0 2022-06-19 05:41 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status

一个小工具,用于读取、更改或添加文件中的数据。

目前,它支持以下文件类型

  • .json 文件
  • .php 文件
  • .js 文件

安装

您可以通过 composer 安装此包

composer require ibrostudio/laravel-file-data-manager

使用方法

有 3 种可链式调用的方法,按照以下顺序调用:load > manipulation > result

  1. 加载
  • load(string $file)
  1. 操作
  • findValue(string $key)
  • findArray(string $key)
  • findRegex(string $regex)
  • replaceValue(string $key, mixed $value)
  • addArrayValue(string $key, mixed $value)
  • addRegexValue(string $regex, string $value)
  1. 结果
  • getContent()
  • getValue()
  • write()

示例

  • 处理值
use IBroStudio\FileDataManager\FileDataManager;

$package_name = FileDataManager::load(base_path('composer.json'))
    ->findValue('name')
    ->getValue(); // = 'vendor/currentPackageName'

$package_name = FileDataManager::load(__DIR__ . '/Fixtures/Test.php')
    ->replaceValue('name', 'vendor/newPackageName')
    ->findValue('name')
    ->getValue(); // = 'vendor/newPackageName'
  • 处理数组

Test.php

class Test
{
    protected array $testArray = [
        SomeClass1::class,
        SomeClass2::class,
    ];
}
use IBroStudio\FileDataManager\FileDataManager;

$test = FileDataManager::load('Test.php');

$test
    ->findArray('$testArray')
    ->getValue(); // = ['SomeClass1::class', 'SomeClass2::class']

$test
    ->addArrayValue('$testArray', 'SomeClass3::class')
    ->write();

$test
    ->findArray('$testArray')
    ->getValue(); // = ['SomeClass1::class', 'SomeClass2::class', 'SomeClass3::class']
  • 处理正则表达式

Test.php

use Vendor\Package\Namespace\Class1;

class Test{}
use IBroStudio\FileDataManager\FileDataManager;

FileDataManager::load('Test.php')
    ->addRegexValue('#(use\s(.*?)\;)#s', 'use Vendor\Package\Namespace\Class2;')
    ->write();

$imports = FileDataManager::load('Test.php')
    ->findRegex('#(use\s(.*?)\;)#s')
    ->getValue(); // = ['use Vendor\Package\Namespace\Class1;', 'use Vendor\Package\Namespace\Class2;']

可以链式调用操作方法

use IBroStudio\FileDataManager\FileDataManager;

FileDataManager::load('Test.php')
    ->replaceValue('$testValue', 'tata')
    ->addArrayValue('$testArray1', "'NewValue'")
    ->addArrayValue('$testArray2', 'OtherNewValue::class')
    ->addRegexValue('#(use\s(.*?)\;)#s', 'use Vendor\Package\Namespace\Class2;')
    ->write();

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

有关报告安全漏洞的详细信息,请参阅 我们的安全策略

致谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件