Bài viết được dịch từ trang web Sitepoint
PHP 7, phiên bản tiếp theo của ngôn ngữ lập trình phổ biến nhất thế giới, đã được phát hành. Chúng tôi rất muốn bắn pháo hoa và nâng ly ăn mừng với sức mạnh mới của mình (nghiêm túc mà nói, ngôn ngữ này giờ đây thực sự lớn, cả về chức năng lẫn hiệu suất), nhưng chúng tôi chắc là phần còn lại của Internet sẽ làm điều này cho chúng ta. Thay vào đó, chúng tôi sẽ tập trung vào việc biên soạn một danh sách (luôn luôn được cập nhật) các tài nguyên để bắt đầu với phiên bản 7 - các bài viết mô tả những điểm mới, những cuốn sách giúp bạn thành thạo nó, và nhiều hơn thế nữa. Nào hãy cùng bắt đầu nhé!
Điều gì đã xảy ra với PHP 6?
Khi nói đến phiên bản lớn tiếp theo là 7 trong khi chúng ta đang phát triển trên phiên bản 5+ cho đến nay, nhiều người tự hỏi điều gì đã xảy ra với phiên bản 6. Đó là một câu chuyện dài, do đó, để tránh bối rối khi điều này được đưa ra, đây là một số cuộc thảo luận và bài viết thú vị mà bạn nên đọc:
- https://philsturgeon.uk/php/2014/07/23/neverending-muppet-debate-of-php-6-v-php-7/
- https://wiki.php.net/rfc/php6
- https://news.ycombinator.com/item?id=8786919
Nói ngắn gọn, các vấn đề unicode mà đáng lẽ phải được giải quyết trong phiên bản 6 cuối cùng đã thất bại, vì phát sinh quá nhiều phức tạp. Họ quyết định rằng phiên bản 6 đã quá hư hỏng để giữ cho nó sống, và việc chuyển lên phiên bản PHP 7 đã được thực hiện.
Những tính năng mới
Chúng tôi đã nói về các tính năng mới một thời gian ngắn trước đây, nhưng đây là một danh sách toàn diện hơn bao gồm các liên kết đến thông tin về chúng - bây giờ là thời điểm để bạn nhảy vào tìm hiểu kỹ càng.
Để tìm hiểu về những gì sắp tới và ảnh hưởng của nó có thể có đối với bạn:
- Danh sách chính thức về các tính năng mới
- Danh sách cực kỳ đầy đủ trên Github
- Loạt bài "What to Expect (những điều mong đợi)"
- PHP7 một cái nhìn thoáng qua
- Bài viết về những tính năng mới của PHP7 trên DigitalOcean
- Bài viết về 5 tính năng ít được biết đến trong PHP 7 của tác giả Colin O’dell, chỉ là một trong loạt bài rất hữu ích của Colin về PHP 7
Nếu bạn thích các video miễn phí, thì 2 trang web này sẽ giúp ích cho bạn:
- Codecourse tại https://www.codecourse.com/library/lessons/php-7-new-features
- Laracasts tại https://laracasts.com/series/php7-up-and-running
Để tìm hiểu về type system, đây có thể là sự thay đổi lớn nhất, và so sánh nó với hack:
- http://www.dmiller.io/blog/2015/4/26/comparing-the-php7-and-hack-type-systems
- https://medium.com/the-white-hat-elephpant/php7-more-strict-but-only-if-you-want-it-to-be-78d6690f2090
Bắt đầu với PHP 7
- Nếu bạn muốn cài đặt PHP 7 trên phiên bản mới nhất của OS X, hãy xem http://php-osx.liip.ch/
- Cuốn sách Jump Start PHP Environment - một cuốn sách bạn thật sự cần, được xem xét và hiệu đính bởi Ross Tuck đáng kính. Đó là một cuốn sách ngắn về những thứ cần bắt đầu trước khi code - học về các requests, responses, máy ảo, và tất cả những điểm quan trọng khác trong việc thiết lập các máy chủ và máy phát triển cục bộ. Cuốn sách này sẽ giúp bạn chuẩn bị để viết code đa nền tảng, và giúp cho người khác có thể tham gia vào team của bạn một cách dễ dàng.
- Khóa học giới thiệu PHP 7 từ Zend (có phí) - rất tốt cho những người đã quen thuộc với PHP 5
- Hướng dẫn chuyển đổi chính thức từ 5.x lên 7
- Bài viết xuất sắc của Erika trên trang DigitalOcean
Rất nhiều công cụ chuyển đổi và kiểm tra tính tương thích có sẵn cho bạn sử dụng:
- PHP7MAR (Migration Assistant Report) sẽ báo cáo bất kỳ sự không nhất quán nào giữa code base hiện tại của bạn và PHP 7, nhờ đó bạn có thể lập kế hoạch và ngân sách để nâng cấp phù hợp.
- php7ize là một công cụ sửa code (code fixer) cố gắng bổ sung thêm những tính năng PHP 7 vào codebase PHP 5 một cách tự động.
- php7cc (Compatibility Checker) sẽ cố gắng làm những điều tương tự như MAR ở trên - bạn hãy so sánh các kết quả đầu ra của chúng để cho thông tin đáng tin cậy nhất.
Cần lưu ý rằng không cái nào trong số các công cụ ở trên có thể thay thế cho một bộ kiểm thử tốt (good test suite) - cách duy nhất để chắc chắn 100% không còn lỗi sót lại là code của bạn phải pass được qua các test, để có thể dễ dàng kiểm tra và xác nhận quá trình chuyển đổi.
Cuối cùng nhưng không kém phần quan trọng, PHPToday có một danh sách rất tuyệt vời về các cuộc thảo luận mà bạn nên tham khảo tại đây.
Các công cụ, kiểm thử và hosting
Rất nhiều công cụ hữu ích đã nổi lên xung quanh việc phát hành phiên bản mới này:
- PhpStorm, luôn cập nhật nhanh hơn bao giờ hết, đã hỗ trợ PHP 7 đầy đủ.
- Phan là một static analyzer, các tính năng của nó bạn có thể đọc ở đây. Chúng tôi sẽ có một hướng dẫn đầy đủ trong thời gian sắp tới, cho những người quan tâm.
- Exakat là một analyzer khác rất hữu ích
- Tuli cũng là một analyzer khác - nhưng tốc độ phát triển của nó có phần chững lại. Nếu bất cứ ai muốn viết một bài để so sánh cả 3 công cụ trên thì hãy cho chúng tôi biết!
- Andrea Faulds đã tung ra một số package PHP 7 độc quyền thú vị mà đảm bảo bạn sẽ muốn xem!
- Một Vagrant box bởi Rasmus Lerdorf là box được sử dụng khi kiểm thử trên nhiều phiên bản PHP, và có thể được tải vềtại đây. Hướng dẫn về cách sử dụng nó ở đây.
- Travis CI đã hỗ trợ PHP 7 đầy đủ. Thiết lập một project để thử nghiệm rất dễ dàng, chỉ cần tạo file
.travis.yml
trông giống như thế này:
language: php
php:
- 5.6
- 7.0
- hhvm
# This triggers builds to run on the new TravisCI infrastructure.
# See: http://docs.travis-ci.com/user/workers/container-based-infrastructure/
sudo: false
matrix:
allow_failures:
- php: 7.0
before_script:
- travis_retry composer self-update
- travis_retry composer install --no-interaction --prefer-source
script:
- phpunit --coverage-text --coverage-clover=coverage.clover
after_script:
- if [[ $TRAVIS_PHP_VERSION != 'hhvm' && $TRAVIS_PHP_VERSION != '7.0' ]]; then php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover; fi
Trên đây là lấy cảm hứng từ PhpLeague skeleton - một skeleton package PHP 7 đã sẵn sàng, vì vậy nếu bạn đang bắt đầu một cái mới, đó là nơi để bạn nên quan tâm.
- Hiện nay, các hosting hỗ trợ PHP 7 khá là thưa thớt, nhưng bạn hãy luôn theo dõi trên trang http://phpversions.info/php-7/ - danh sách các hosting sẽ được cập nhật khi có thông tin mới.
Một số thông tin liên quan
Đối với các tài nguyên để phát triển các extension cho PHP 7 (những thứ này hơi khác với các API extension),http://gophp7.org/gophp7-ext/ vẫn là trang web số một.
Để tham gia cộng đồng và thảo luận về các vấn đề hay tìm sự giúp đỡ, một số kênh sau đây có thể giúp ích cho bạn, sắp xếp theo thứ tự phổ biến:
- Trên IRC, các group ##php
- Đối với những người thích thảo luận dạng diễn đàn, thì subreddit PHP có thể là một nơi mang lại nhiều kiến thức, nhưng nó cũng là một "bãi mìn". Bởi vậy bạn hãy thận trọng.
- Nếu bạn không phải là một fan của thể loại IRC hoặc Reddit, nhưng cũng thích các cuộc thảo luận trực tiếp, thì PHP Slack Channel và chat room StackOverflow PHP có thể phù hợp với bạn.
- Để tham gia vào một user group mà thỉnh thoảng họp mặt offline, thì hãy lướt qua trang web http://php.ug/
Kết luận
Bạn có những nguồn tài nguyên nào khác muốn chia sẻ? Hãy cho chúng tôi biết! Dù cho đó là tài nguyên miễn phí hay có thu phí, thì chúng tôi cũng sẽ xem xét tất cả mọi thứ bạn đề xuất và có khả năng sẽ bổ sung vào bài viết này.
Với sự ra đời của PHP 7, liệu bạn có ý định chuyển đổi các ứng dụng/package của mình trong thời gian tới? Nếu không, thì tại sao? Hãy cho chúng tôi biết suy nghĩ và cảm xúc của bạn trong phần bình luận phía dưới! Và đừng quên một điều rằng - phiên bản mới này sẽ không thể thực hiện được nếu thiếu sự làm việc vất vả của tất cả những core contributor. Tất cả họ có thể không phải lúc nào cũng nhất trí với nhau, nhưng khi họ đã dành nguồn lực và luôn hướng về phía một mục tiêu chung, chỉ bầu trời là giới hạn của họ. Đây là danh sách những contributor đó, bạn hãy gửi cho họ một lời cảm ơn nhé!
Quảng cáo:
Hiện nay ở TechMaster đang cung cấp khóa học "Lập trình PHP 7 qua dự án thực tế". Bạn sẽ không mất quá nhiều thời gian để có thể nắm bắt ngôn ngữ PHP và ứng dụng vào thực tế: xây dựng website, xây dựng service cho ứng dụng di động. Bạn cũng không phải lo lắng về đầu ra khi mà nhu cầu tuyển dụng lập trình viên PHP vẫn luôn rất lớn.
0 nhận xét:
Đăng nhận xét