PHP là ngôn ngữ kịch bản máy chủ và là công cụ mạnh mẽ để tạo các trang Web động và tương tác
PHP là một giải pháp thay thế được sử dụng rộng rãi, miễn phí và hiệu quả cho các đối thủ cạnh tranh như ASP của Microsoft
Bắt đầu học PHP ngay bây giờ »Học dễ dàng với "PHP Tryit"
Với trình chỉnh sửa "PHP Tryit" trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã PHP và nhấp vào nút để xem kết quả
Thí dụ
echo "Tập lệnh PHP đầu tiên của tôi. ";
?>
Nhấp vào nút "Tự dùng thử" để xem nó hoạt động như thế nào
Bài tập PHP
Kiểm tra bản thân với các bài tập
Tập thể dục
Chèn phần còn thiếu của mã bên dưới để xuất "Xin chào thế giới"
Cung cấp câu trả lời "
Ví dụ PHP
Tìm hiểu bằng các ví dụ. Hướng dẫn này bổ sung tất cả các giải thích với các ví dụ rõ ràng
Xem tất cả các ví dụ về PHP
Bài kiểm tra PHP
Học bằng cách làm bài kiểm tra. Bài kiểm tra này sẽ cung cấp cho bạn tín hiệu về mức độ bạn biết hoặc không biết về PHP
Bắt đầu bài kiểm tra PHP
Việc học của tôi
Theo dõi tiến trình của bạn với chương trình "Học tập của tôi" miễn phí tại W3Schools
Đăng nhập vào tài khoản của bạn và bắt đầu kiếm điểm
Đây là một tính năng tùy chọn. Bạn có thể học W3Schools mà không cần sử dụng My Learning
Tài liệu tham khảo PHP
Tài liệu tham khảo PHP của W3Schools chứa các danh mục khác nhau của tất cả các hàm, từ khóa và hằng số PHP, cùng với các ví dụ
Cấu trúc điều khiển là gì?
Thực thi mã có thể được nhóm thành các danh mục như bên dưới- Tuần tự – quy trình này liên quan đến việc thực thi tất cả các mã theo thứ tự chúng được viết
- Quyết định – quyết định này liên quan đến việc đưa ra lựa chọn trước một số tùy chọn. Mã được thực thi phụ thuộc vào giá trị của điều kiện
PHP NẾU Khác
Nếu… thì. khác là cấu trúc điều khiển đơn giản nhất. Nó đánh giá các điều kiện bằng logic Boolean Khi nào thì sử dụng if… then… other- Bạn có một khối mã chỉ được thực thi nếu một điều kiện nhất định là đúng
- Bạn có hai lựa chọn, và bạn phải chọn một
- If… then… other if… được sử dụng khi bạn phải chọn nhiều hơn hai tùy chọn và bạn phải chọn một hoặc nhiều tùy chọn
- “nếu [điều kiện là đúng]” là cấu trúc điều khiển
- “khối một” là mã sẽ được thực thi nếu điều kiện là đúng
- {…else…} là phương án dự phòng nếu điều kiện sai
- “khối hai” là khối mã được thực thi nếu điều kiện sai
$second_number]{ echo "$first_number is greater than $second_number"; }else{ echo "$second_number is greater than $first_number"; } ?>Đầu ra.
21 is greater than 7
Trường hợp chuyển đổi PHP
Switch…case tương tự như cấu trúc điều khiển if then…else. Nó chỉ thực thi một khối mã duy nhất tùy thuộc vào giá trị của điều kiện. Nếu không có điều kiện nào được đáp ứng thì khối mã mặc định sẽ được thực thi. Nó có cú pháp cơ bản sau. NƠI ĐÂY,- “switch[…]{…}” là mã khối cấu trúc điều khiển
- “giá trị trường hợp. case…” là các khối mã được thực thi tùy thuộc vào giá trị của điều kiện
- "mặc định. ” là khối mã sẽ được thực thi khi không có giá trị nào khớp với điều kiện
ladies night, take her out for dinnerTóm tắt
- Các cấu trúc điều khiển được sử dụng để điều khiển việc thực hiện chương trình
- nếu thì. khác là khi bạn có nhiều khối mã định tuyến để thực thi tùy thuộc vào giá trị của điều kiện
- Trường hợp chuyển đổi… được sử dụng khi bạn có một số mã khối và bạn chỉ phải thực thi một trong số chúng tùy thuộc vào giá trị của trường hợp đã đặt
Biết rằng Unit Test quan trọng và mang lại nhiều lợi ích là thế nhưng việc áp dụng, thực hiện như thế nào cho đúng và hiệu quả là một điều không hề dễ dàng
Bài viết này là bài đầu tiên trong chuỗi bài hướng dẫn thực thi Unit Test trong PHP, được dịch từ blog của tác giả Juan Treminio. Đây có thể là hướng dẫn chi tiết nhất mà tôi đọc được. Bài dịch có một số cập nhật về phiên bản của PHP và PHPUnit so với blog của tác giả. Dưới đây là liên kết đến các phần khác của hướng dẫn [sẽ cập nhật liên kết khi viết xong]
- Bài kiểm tra đơn vị PHP 101. Giới thiệu về PHPUnit
- Bài kiểm tra đơn vị PHP 201. Làm quen với Test case, Assertions và nhà cung cấp dữ liệu
- Bài kiểm tra đơn vị PHP 301. Kiểm tra các phương thức Protected/Private
- Kiểm tra đơn vị PHP 401. Create report Coverage Reports and only number CRAP
- Kiểm tra đơn vị PHP 501. Sử dụng Mock Objects, Stub Methods và Dependency Injection
- Kiểm tra đơn vị PHP 601. Mock Methods và Constructor Overriding
Loạt bài này sẽ giới thiệu cho bạn các khái niệm cơ bản về thử nghiệm. Nó sẽ cho bạn biết vì sao việc sử dụng
composer require --dev phpunit/phpunit ^6.2
4 là không tốt, tại sao composer require --dev phpunit/phpunit ^6.2
5 tuyệt vời, sự khác biệt giữa composer require --dev phpunit/phpunit ^6.2
6 và composer require --dev phpunit/phpunit ^6.2
7 và làm thế nào để yêu cái thanh màu đỏ, xanh ấyTôi cũng sẽ đề cập một chút đến Phát triển dựa trên thử nghiệm [TDD] nhưng sẽ không tập trung nhiều vào nó vì tôi nghĩ rằng để mã của bạn trở nên có thể kiểm tra được và làm sao để kiểm tra nó một cách chính xác đã là một thử nghiệm đầy đủ
Bài viết sẽ không nói nhiều về công việc tại sao bạn nên viết thử nghiệm, tại sao thử nghiệm là cần thiết và những lợi ích của thử nghiệm. Nếu bạn không muốn biết thông tin về những điều đó, tôi khuyên bạn nên đọc cuốn sách Các giải pháp trong thế giới thực để phát triển các ứng dụng và khung công tác PHP chất lượng cao của Sebastian Bergmann và ghé thăm blog của bạn thân tôi Chris Hartjes, blog của Lập trình viên Grumpy, . Ngoài ra, trên Viblo cũng đã có rất nhiều bài viết trên bàn về Unit Test, các bạn rất nên đọc qua
- Tản mạn về Kiểm tra
- Vai trò của Unit Test
- Viết bài kiểm tra đơn vị tuyệt vời
Before when started
Bài viết giả sử bạn đã cài đặt PHP. Tôi rất khuyến khích bạn nên sử dụng một máy ảo dành riêng cho môi trường phát triển thay vì thiết lập nó ngay trên hệ thống điều hành của bạn. Bạn có thể đọc qua bài viết Thiết lập máy ảo Debian, Từng bước, hướng dẫn từng bước sử dụng Virtual Box để thiết lập PHP và máy chủ web trên Debian, hoặc tham khảo các bài viết trên Viblo về sử dụng Docker để tạo môi trường
Chúng ta cũng sẽ sử dụng dòng lệnh để chạy PHPUnit. Nếu bạn đang làm quen với việc làm mọi thứ trên giao diện GUI, thì đây cũng là khoảng thời gian để bạn làm quen với Terminal
Cài đặt PHPUNIT
PHPUnit 6. 2 yêu cầu PHP 7 và các thư viện
composer require --dev phpunit/phpunit ^6.2
8, composer require --dev phpunit/phpunit ^6.2
9 và mbstring, thường được cài đặt mặc định khi cài đặt PHP. Check traping by wayphp -r 'print_r[get_loaded_extensions[]];'
Nếu chưa có, hãy cài đặt thêm vào, vd đối với Ubuntu ^16. 04
21 is greater than 70
Tính năng tạo báo cáo Bảo hiểm mã yêu cầu Xdebug [hướng dẫn cài đặt, bài viết giới thiệu của tác giả] [phiên bản 2. 5. 0 hoặc mới hơn] và thư viện
21 is greater than 710 [đã có sẵn khi cài đặt PHP]
Cách đơn giản nhất là cài đặt thông qua Composer. Nếu bạn không biết Composer là gì hay cách sử dụng nó thì bạn nên đọc bài viết, Composer Namespaces trong 5 phút. Nó giới thiệu bạn với Composer nói chung và cách sử dụng PSR-0 cho việc tải tự động
Cài đặt
composer require --dev phpunit/phpunit ^6.2
Chạy PHPUnit
Sau khi cài đặt xong, hãy chú ý đến tệp
21 is greater than 711. Đây là file dùng để thực thi PHPUnit. Run command.
21 is greater than 711, it will show all the options help.
Cấu trúc dự án
Do chúng ta đang sử dụng Composer nên sẽ cần cấu trúc dự án một chút để nó hoạt động với autoloader. Mã nguồn của tệp sẽ được ghi vào thư mục
21 is greater than 713 với không gian tên là
21 is greater than 714 và các bài kiểm tra đơn vị sẽ được ghi vào thư mục
21 is greater than 715 với không gian tên là
21 is greater than 716
Cập nhật tệp
21 is greater than 717 của bạn như sau
21 is greater than 71
Sau đó run command to update autoloader
ladies night, take her out for dinner1
Như vậy cấu trúc project của chúng ta như sau
ladies night, take her out for dinner2
Cấu hình file phpunit. xml
Bạn có thể sử dụng các tùy chọn trong dòng lệnh để cấu hình cho phpunit tuy nhiên có 1 cách đơn giản hơn đó là sử dụng tệp cấu hình
21 is greater than 718
Trong thư mục gốc
21 is greater than 719 tạo tệp
21 is greater than 718
ladies night, take her out for dinner6
Đây là tệp cấu hình đơn giản nhất, tuy nhiên có 2 điểm quan trọng
ladies night, take her out for dinner
11 làm cho kết quả kiểm tra được bôi trơn màuladies night, take her out for dinner
12 cho PHPUnit biết nơi lưu các bài kiểm tra tệp
CÔNG ƯỚC
Trong loạt bài viết này sẽ có một số quy ước giúp bạn sử dụng PHPUnit dễ dàng hơn, mặc dù có một số quy ước là không bắt buộc
Constructor and name file
Quy ước đầu tiên là về cấu trúc tệp và tên tệp. Các bài kiểm tra tệp nên ánh xạ với mã nguồn tệp tương ứng trong từng thư mục và tên tệp nên được đặt giống với tệp mã nguồn cộng thêm từ
ladies night, take her out for dinner13 ở sau. Ví dụ, nếu chúng ta có mã nguồn tệp như sau
composer require --dev phpunit/phpunit ^6.2
0Thì các file tests nên được tổ chức như sau
composer require --dev phpunit/phpunit ^6.2
1Tên lớp
Tên lớp phải khớp hoàn toàn với tên tệp, điều này cũng nên áp dụng với các mã nguồn tệp khác
Tên phương pháp [thử nghiệm]
Các phương thức trong các lớp kiểm tra nên được bắt đầu với từ
ladies night, take her out for dinner14 [mặc dù bạn có thể sử dụng chú thích
ladies night, take her out for dinner15 nhưng nên viết hệ thống nhất theo 1 loại cho đồng bộ]. Tên phương thức nên có tính mô tả cái gì sẽ được kiểm tra trong phương thức đó và cũng nên bao gồm tên phương thức đang được kiểm tra. Tên phương thức không cần phải rút ngắn hoặc viết tắt
Ví dụ, bạn đang kiểm tra phương thức có tên là
ladies night, take her out for dinner16 và bạn muốn kiểm tra trường hợp mật khẩu khớp với tài khoản, bạn nên đặt tên phương thức trong tệp kiểm tra là
ladies night, take her out for dinner17
Dòng dài là một lợi ích khi kiểm tra, bởi vì khi bạn có 1 trường hợp kiểm tra không thành công và bạn sẽ có rất nhiều trường hợp kiểm tra không thành công, bạn sẽ thấy phương pháp được đặt tên là gì và biết chính xác trường hợp nào đang bị lỗi
Phương thức công khai
PHPUnit could not run the method test at
ladies night, take her out for dinner18 or
ladies night, take her out for dinner19, they must be
ladies night, take her out for dinner20. Do đó, đối với các phương pháp thử nghiệm hoặc các phương pháp trợ giúp [không hạn chế phương pháp nhà cung cấp dữ liệu phải ở định dạng
ladies night, take her out for dinner20. Mục đích của chúng ta là viết test thôi nên không cần phải lo lắng về tính đóng gói
Mở rộng PHPUnit
Các bài kiểm tra trên lớp phải là lớp con cháu của lớp
ladies night, take her out for dinner22
Bài kiểm tra đơn vị đầu tiên
Bài kiểm tra đơn vị đầu tiên của chúng tôi sẽ rút ngắn và ngừng ngu ngốc
ladies night, take her out for dinner23.
composer require --dev phpunit/phpunit ^6.2
2Không có gì đặc biệt cả, chỉ là bạn thấy các quy ước được áp dụng như thế nào thôi
Để thử cho biết, bạn muốn chắc chắn một điều rằng nó có bằng đúng hay không [không hạn chế 1 hàm nào đó có trả về đúng hay không]. Các xác nhận là một trong những phương thức cơ bản được sử dụng trong bài kiểm tra đơn vị và tôi sẽ đề cập đến nó xuyên suốt trong loạt bài này
Còn bây giờ, bạn hãy tạo 1 method tên là
ladies night, take her out for dinner24. Ngu lắm phải không
21 is greater than 700
Tiếp theo là đến đoạn mã kiểm tra. Giờ chỉ đơn giản thôi như thế này thôi, chưa cần nghĩ sâu sắc quá
21 is greater than 701
quán Đạt Green
Từ thư mục gốc của dự án, chạy PHPUnit.
ladies night, take her out for dinner25
Vâng, bạn sẽ thấy được cái thanh màu xanh ấy, nó biểu thị tất cả các trường hợp thử nghiệm đã được thông qua. Tuy nhiên cũng không chăm chỉ làm sao để ra được cái màu xanh ấy, không phải viết code thôi để pass mà mục đích ở đây là
ladies night, take her out for dinner26
Bạn đã chạy 1 file test, 1 test case trong đó có 1 khẳng định
Kết luận
Qua bài này, bạn đã cài đặt được PHPUnit, thiết lập một số cấu hình và chạy thử nghiệm đơn vị [siêu ngu] đầu tiên