Không gian tên chung PHP
Thư viện này cung cấp một không gian tên cho các hàm được gọi trên toàn cầu, như các hàm tích hợp PHP Show Điều này nghe có vẻ kỳ lạ, vì vậy hãy để tôi giới thiệu một ví dụ để cho thấy những gì nó có thể làm Ví dụHãy tưởng tượng rằng bạn có một ứng dụng sử dụng composer require rogervila/global-namespace0 Hãy xây dựng lớp học đó class App { public function run() { $result = rand(0, 1); if ($result == 0) { // do something when $result is 0 } else { // do something else when $result is 1 } } } Nếu bạn tạo một bài kiểm tra để xác nhận kết quả, bạn sẽ tìm thấy nút chặn. Làm cách nào chúng tôi có thể mô phỏng rand() để buộc nó trả về 0 hoặc 1?. Gói này cung cấp một giải pháp cho câu hỏi này Đầu tiên, yêu cầu gói này trên ứng dụng của bạn composer require rogervila/global-namespace Bây giờ, hãy cập nhật ứng dụng của bạn thành tiền tố composer require rogervila/global-namespace1 với không gian tên chung composer require rogervila/global-namespace2 sẽ chỉ gọi hàm PHP tích hợp để hành vi ứng dụng của bạn sẽ không thay đổi use PHP\PHP; class App { public function run() { $result = PHP::rand(0, 1); //... } } Điều này hoạt động như mong đợi nhưng vẫn chưa hoàn toàn có thể kiểm tra được vì phần phụ thuộc composer require rogervila/global-namespace3 được mã hóa cứng và không thể giả lập Hãy thêm nó vào hàm tạo để chúng ta có thể sử dụng bất kỳ triển khai composer require rogervila/global-namespace3 nào ________số 8_______ Đẹp. Giờ đây, bạn có thể mô phỏng composer require rogervila/global-namespace1 bằng Mockery và xác nhận mã ứng dụng final class AppTest extends \PHPUnit\Framework\TestCase { public function test_rand_returns_one() { // Create a mock of the package class $php = Mockery::mock(\PHP\PHP::class); // Define its return value $php->shouldReceive('rand') ->once() ->andReturn(1); // Now rand() always returns 1 $this->assertEquals( 1, $php::rand() ); // Create the instance with the mocked PHP implementation $app = new App($php); // Do your application assertions here // ... } }
VềThư viện này gọi bất kỳ chức năng toàn cầu nào, không chỉ những chức năng được tích hợp sẵn use PHP\PHP; // PHP Built-in functions PHP::http_build_query(['foo' => 'bar']); // returns 'foo=bar' PHP::json_encode(['foo' => 'bar']); // returns '{"foo": "bar"}' PHP::json_decode('{"foo": "bar"}'); // return ['foo' => 'bar'] // etc... // For WordPress projects PHP::wp_redirect('/') // redirects to home // etc... // Literaly, any function, built-in or not, could be listed here Lớp trợ giúpNếu bạn không muốn sử dụng Mockery hoặc nếu bạn đang làm việc trên môi trường thử nghiệm không phù hợp với nó, bạn có thể sử dụng một số lớp trợ giúp đi kèm với gói này Không gian tên toàn cầu nghĩa là gì?Không gian tên chung là liên kết các hệ thống tệp từ bất kỳ số lượng thiết bị lưu trữ tệp nào , chẳng hạn như các máy chủ sử dụng NFS (hệ thống tệp mạng) .
Toàn cầu có nghĩa là gì trong PHP?Biến toàn cục đề cập đến bất kỳ biến nào được xác định bên ngoài hàm . Các biến toàn cục có thể được truy cập từ bất kỳ phần nào của tập lệnh i. e. bên trong và bên ngoài chức năng. Vì vậy, một biến toàn cục có thể được khai báo giống như các biến khác nhưng nó phải được khai báo bên ngoài định nghĩa hàm.
Không gian tên PHP là gì?Không gian tên là khối mã được gắn nhãn phân cấp chứa mã PHP thông thường . Một không gian tên có thể chứa mã PHP hợp lệ. Không gian tên ảnh hưởng đến các loại mã sau. các lớp (bao gồm tóm tắt và đặc điểm), giao diện, chức năng và hằng số. Không gian tên được khai báo bằng cách sử dụng từ khóa không gian tên.
Làm cách nào để gọi một không gian tên trong PHP?Không gian tên được khai báo ở đầu tệp bằng cách sử dụng từ khóa không gian tên. . cú pháp. Khai báo một không gian tên gọi là Html. . cú pháp. Khai báo một không gian tên có tên là Html bên trong một không gian tên có tên là Code. . Ví dụ. Sử dụng các lớp từ không gian tên Html. . Thí dụ. . Thí dụ. . Ví dụ |