Dấu chấm cung cấp khả năng truy cập dễ dàng vào các mảng dữ liệu bằng ký hiệu dấu chấm một cách nhẹ nhàng và nhanh chóng. Lấy cảm hứng từ Bộ sưu tập Laravel
Dấu chấm triển khai giao diện ArrayAccess của PHP và đối tượng Dấu chấm cũng có thể được sử dụng giống như các mảng thông thường với ký hiệu dấu chấm bổ sung
ví dụ
Với Dấu chấm, bạn có thể thay đổi cú pháp mảng thông thường này
$array['info']['home']['address'] = 'Kings Square'; echo $array['info']['home']['address']; // Kings Square
đến cái này [Đối tượng dấu chấm]
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];
hoặc thậm chí cái này [ArrayAccess]
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];
Cài đặt
Cài đặt phiên bản mới nhất bằng Composer
$ composer require adbario/php-dot-notation
Cách sử dụng
Tạo đối tượng Dấu chấm mới
$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];
Bạn cũng có thể sử dụng hàm trợ giúp để tạo đối tượng
$dot = dot[]; // With existing array $dot = dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = dot[$array, true, "_"];
Tất cả các phương thức không trả về một giá trị cụ thể sẽ trả về đối tượng Dot để xâu chuỗi
$dot = dot[]; $dot->add['user.name', 'John'] ->set['user.email', 'john@example.com'] ->clear[]; // returns empty Dot
phương pháp
Dot có các phương pháp sau
cộng[]
Đặt một cặp khóa/giá trị đã cho nếu khóa chưa tồn tại
$dot->add['user.name', 'John']; // Equivalent vanilla PHP if [!isset[$array['user']['name']]] { $array['user']['name'] = 'John'; }
Nhiều cặp khóa/giá trị
________số 8
tất cả các[]
Trả về tất cả các mục được lưu trữ dưới dạng một mảng
$values = $dot->all[];
thông thoáng[]
Xóa nội dung của một khóa đã cho [đặt một mảng trống]
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];0
Nhiều phím
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];1
Tất cả các mặt hàng được lưu trữ
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];2
đếm[]
Trả về số mục trong một khóa đã cho
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];3
Các mục trong thư mục gốc của đối tượng Dot
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];4
xóa bỏ[]
Xóa khóa đã cho
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];5
Nhiều phím
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];6
làm phẳng[]
Trả về một mảng phẳng với các phím được phân cách bằng một ký tự nhất định [mặc định là ". "]
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];7
được[]
Trả về giá trị của một khóa đã cho
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];8
Trả về một giá trị mặc định đã cho, nếu khóa đã cho không tồn tại
$dot->set['info.home.address', 'Kings Square']; echo $dot->get['info.home.address'];9
có[]
Kiểm tra xem một khóa đã cho có tồn tại không [trả về boolean đúng hoặc sai]
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];0
Nhiều phím
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];1
isEmpty[]
Kiểm tra xem một khóa đã cho có trống không [trả về boolean true hoặc false]
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];2
Nhiều phím
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];3
Kiểm tra toàn bộ đối tượng Dot
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];4
hợp nhất[]
Hợp nhất một mảng đã cho hoặc một đối tượng Dấu chấm khác
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];5
Hợp nhất một mảng đã cho hoặc một đối tượng Dấu chấm khác với khóa đã cho
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];6
hợp nhấtRecursive[]
Kết hợp đệ quy một mảng đã cho hoặc một đối tượng Dot khác
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];7
Kết hợp đệ quy một mảng đã cho hoặc một đối tượng Dot khác với khóa đã cho
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];8
hợp nhấtRecursiveDistinct[]
Kết hợp đệ quy một mảng đã cho hoặc một đối tượng Dot khác. Các khóa trùng lặp sẽ ghi đè lên giá trị trong mảng ban đầu [không giống như , trong đó các khóa trùng lặp được chuyển đổi thành mảng có nhiều giá trị]
$dot['info.home.address'] = 'Kings Square'; echo $dot['info.home.address'];9
Kết hợp đệ quy một mảng đã cho hoặc một đối tượng Dot khác với khóa đã cho. Các khóa trùng lặp ghi đè lên giá trị trong mảng ban đầu
$ composer require adbario/php-dot-notation
0sự lôi kéo[]
Trả về giá trị của một khóa đã cho và xóa khóa đó
$ composer require adbario/php-dot-notation
1Trả về một giá trị mặc định đã cho, nếu khóa đã cho không tồn tại
$ composer require adbario/php-dot-notation
2Trả về tất cả các mục được lưu trữ dưới dạng một mảng và xóa đối tượng Dấu chấm
$ composer require adbario/php-dot-notation
3xô[]
Đẩy một giá trị đã cho vào cuối mảng trong một khóa đã cho
$ composer require adbario/php-dot-notation
4Đẩy một giá trị đã cho đến cuối mảng
$ composer require adbario/php-dot-notation
5thay thế[]
Thay thế các giá trị bằng các giá trị có cùng khóa trong mảng hoặc đối tượng Dấu chấm đã cho
$ composer require adbario/php-dot-notation
6Thay thế các giá trị bằng các giá trị có cùng khóa trong mảng đã cho hoặc đối tượng Dấu chấm bằng khóa đã cho
$ composer require adbario/php-dot-notation
7$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];4 không đệ quy
bố trí[]
Đặt một cặp khóa/giá trị nhất định
$ composer require adbario/php-dot-notation
8Nhiều cặp khóa/giá trị
$ composer require adbario/php-dot-notation
9setArray[]
Thay thế tất cả các mục trong đối tượng Dot bằng một mảng đã cho
$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];0
setReference[]
Thay thế tất cả các mục trong đối tượng Dot bằng một mảng đã cho làm tham chiếu và tất cả các thay đổi trong tương lai đối với Dot sẽ được thực hiện trực tiếp với mảng ban đầu
$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];1
toJson[]
Trả về giá trị của một khóa đã cho dưới dạng JSON
$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];2
Trả về tất cả các mục được lưu trữ dưới dạng JSON
$dot = new \Adbar\Dot; // With existing array $dot = new \Adbar\Dot[$array]; // Or with auto parsing dot notation keys in existing array $dot = new \Adbar\Dot[$array, true]; // You can also set a custom delimiter instead of the default dot [.] $dot = new \Adbar\Dot[$array, false, "_"];3
Đóng góp
Yêu cầu kéo
- Phân nhánh kho lưu trữ Dot
- Tạo một nhánh mới cho mỗi tính năng hoặc cải tiến
- Gửi yêu cầu kéo từ mỗi nhánh tính năng đến 3. chi nhánh x
Điều rất quan trọng là phải tách các tính năng hoặc cải tiến mới thành các nhánh tính năng riêng biệt và gửi yêu cầu kéo cho từng nhánh. Điều này cho phép tôi xem xét và sử dụng các tính năng hoặc cải tiến mới một cách riêng lẻ
Hướng dẫn mẫu
Tất cả các yêu cầu kéo phải tuân theo tiêu chuẩn PSR-12
Kiểm tra đơn vị
Tất cả các yêu cầu kéo phải đi kèm với việc vượt qua các bài kiểm tra đơn vị và bảo hiểm mã hoàn chỉnh. Dot sử dụng PHPUnit để thử nghiệm