ibrostudio / laravel-file-data-manager
Laravel 文件数据管理包
v1.0.0
2022-06-19 05:41 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 03:58:06 UTC
README
一个小工具,用于读取、更改或添加文件中的数据。
目前,它支持以下文件类型
- .json 文件
- .php 文件
- .js 文件
安装
您可以通过 composer 安装此包
composer require ibrostudio/laravel-file-data-manager
使用方法
有 3 种可链式调用的方法,按照以下顺序调用:load > manipulation > result
- 加载
- load(string $file)
- 操作
- findValue(string $key)
- findArray(string $key)
- findRegex(string $regex)
- replaceValue(string $key, mixed $value)
- addArrayValue(string $key, mixed $value)
- addRegexValue(string $regex, string $value)
- 结果
- 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)。有关更多信息,请参阅 许可文件