date: 01:28 18/02/2022 coded by Ducnt ducconit@gmail.com
composer require dnt/json
use DNT\Json\Json;
$json = Json::make(string $path, bool $ensure = false, int $mode = 0755, $recursive = true);
// hoặc
$json = new Json(string $path, bool $ensure = false, int $mode = 0755, $recursive = true);
- $path: đường dẫn đến file. Một đường dẫn hợp lệ là 1 đường dẫn đến 1 file có quyền đọc và ghi file
- $ensure: nếu
true
: file không tồn tại thì sẽ khởi tạo. Nếufalse
file không tồn tại sẽ ném ra exceptionFileNotFoundException
- $mode: quyền truy cập
- $recursive: nếu đường dẫn là xâu của nhiều thư mục thì có cho phép tạo các thư mục đó không
Khi khởi tạo thì ngay lập tức sẽ tìm đến $path
để đọc nó và convert
qua array
// đặt đường dẫn mới
public function setPath(string $path): Jsonable;
// lấy đường dẫn hiện hành
public function getPath(): string;
// lấy thuộc tính - nếu null hoặc không tồn tại thì sẽ lấy $default - $default có thể là 1 callable
public function get(string $key, mixed $default = null): mixed;
// chuyển sang dạng json
public function toJson(int $flag = JSON_FORCE_OBJECT): string;
// kiểm tra thuộc tính tồn tại không
public function has($offset): bool;
// đặt giữ liệu mới
public function setAttributes(array $attributes = []): Jsonable;
// lấy tất cả thuộc tính
public function all(): array;
// lưu các thay đổi vào file
public function save(): bool;
- Ngoài ra có thể sử dụng:
use DNT\Json\Json;
$json=Json::make($path);
// Lấy thuộc tính tương tự $json->get('foo');
$json->foo;
// đặt giá trị mới tương tự $json->set('foo','bar');
$json->foo = 'bar';
// sử dụng anonymous function
$json->foo = function() {
return 'bar';
};
// hoặc
$json->set('foo',function(){
return 'bar';
});
// cũng có thể dùng callback để lấy giá trị mặc định
$json->get('foo',function(){
return 'bar';
});
composer test