Skip to content

Commit 0676922

Browse files
committed
feat: FileTreeBuilder - quick create files and tree dirs
1 parent 6625fc9 commit 0676922

File tree

4 files changed

+1786
-2
lines changed

4 files changed

+1786
-2
lines changed

README.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Some useful file system util for php
1212
- directory operation
1313
- file modify watcher
1414
- files finder
15+
- file tree builder
1516

1617
## Install
1718

@@ -26,7 +27,7 @@ composer require toolkit/fsutil
2627
### File Finder
2728

2829
```php
29-
use Toolkit\FsUtil\FileFinder;
30+
use Toolkit\FsUtil\Extra\FileFinder;
3031

3132
$finder = FileFinder::create()
3233
->files()
@@ -43,10 +44,43 @@ foreach ($finder as $file) {
4344
}
4445
```
4546

47+
### File Tree Builder
48+
49+
`FileTreeBuilder` - can be quickly create dirs and files, copy dir and files.
50+
51+
```php
52+
use Toolkit\FsUtil\Extra\FileTreeBuilder;
53+
54+
$ftb = FileTreeBuilder::new()
55+
->setWorkdir($workDir)
56+
->setShowMsg(true);
57+
58+
$ftb->copyDir('/path/to/dir', './') // copy dir to $workDir
59+
->copy('/tplDir/some.file', 'new-file.txt') // copy file to $workDir/new-file.txt
60+
// make new dir $workDir/new-dir
61+
->dir('new-dir', function (FileTreeBuilder $ftb) {
62+
$ftb->file('sub-file.txt') // create file on $workDir/new-dir
63+
->dirs('sub-dir1', 'sub-dir2'); // make dirs on $workDir/new-dir
64+
})
65+
->file('new-file1.md', 'contents'); // create file on $workDir
66+
```
67+
68+
Will create file tree like:
69+
70+
```text
71+
./
72+
|-- new-file.txt
73+
|-- new-dir/
74+
|-- sub-file.txt
75+
|-- sub-dir1/
76+
|-- sub-dir2/
77+
|-- new-file1.md
78+
```
79+
4680
### Modify Watcher
4781

4882
```php
49-
use Toolkit\FsUtil\ModifyWatcher;
83+
use Toolkit\FsUtil\Extra\ModifyWatcher;
5084

5185
$w = new ModifyWatcher();
5286
$ret = $w

0 commit comments

Comments
 (0)