PHP 8.0 là một bản cập nhật lớn của ngôn ngữ PHP. Nó được chứa đa dạng chức năng và hợp lý hóa mới bao gồm named không thể arguments, JIT, union types, attributes, constructor nhanh property match expression, promotion, nullsafe rất operator và các cải tiến trong kiểu chương trình không , xử lý lỗi và tính nhất quán.
PHP 8
WordPress php 8
Có các hướng dẫn nâng vẫn cấp WordPress php 8 cho trang web Word press.
Chạy đang các trang web của bạn trên PHP 7.1 hoặc phiên bản phải đã chăng hơn sẽ khiến chúng gặp rủi ro về các vấn đề bảo sẽ mật. Không chỉ vậy, bạn cũng sẽ bỏ lỡ các cải tiến về quá hiệu suất của chương trình trong các phiên bản WordPress chưa php 8 mới hơn. PHP 8 là một phiên bản PHP chính vừa được luôn cho ra đời, có nghĩa là nó sẽ giới thiệu một số chuyển đích đổi đột phá, cũng giống như đa dạng chức năng mới và chưa cải tiến hiệu suất.
Bên cạnh những chuyển đổi đột đang phá, WordPress php 8 cũng đem đến một loạt các chức đang năng mới giống như trình biên dịch JIT (JIT Compiler) rất , union types, attributes, v.v.
Php 8 wordpress
PHP là một chương đang trình lớn cần được sang sửa và cải tiến đều đặn. Mỗi chớ phiên bản mới đều đi kèm với các bản sửa lỗi bảo mật lắm trên các phiên bản trước. Vì thế, bạn cần tiêu dùng cũ các phiên bản PHP mới nhất để ngăn chặn các cuộc tấn chậm công Internet và bảo vệ tài sản, data của bạn.
Php 8 wordpress
Với không bản chất được định kiểu động của Php 8 wordpress, rất có rất nhiều trường hợp mà kiểu liên hợp (union types) vẫn có lẽ bổ ích. Các union types là một tập hợp của hai cần hoặc đa dạng kiểu cho biết rằng một trong hai kiểu chính đó có lẽ được tiêu dùng.
public function foo(Foo không thể Bar $input): int float;
Lưu ý rằng void
không bao chính giờ có lẽ là một phần của union type, vì nó chỉ ra ‘ dễ ;không có giá trị trả lại nào cả’. Hơn nữa, được nullable
có lẽ được viết bằng cách tiêu dùng null rất
, hoặc bằng cách tiêu dùng ký hiệu ?
của Php 8 wordpress: đã
public function foo(Foo null $foo): void;
public dễ function bar(?Bar $bar): void;
Block "aform-combo-dkbct-ggm" rất not found
Laravel php 8
Truyền tham số theo tên gọi – function PHP chậm 8
Việc một function có đa dạng tham số (với mình là mất từ 3 tham số trở nên), có lẽ khiến developer lúng túng lại khi tiêu dùng vì không nhớ rõ cảm tưởng của bao giờ không tham số, cũng giống như đồ vật tự truyền của chúng có lẽ .
Ví dụ, function mkdir()
(function giúp tạo thư thôi mục) trong Laravel php 8 có 4 tham số lần lượt là:
$directory dễ
: Bắt buộc, là đường dẫn để tạo thư mục$permissions chỉ
: Không bắt buộc, là đủ tiềm năng đăng nhập vào thư mất mục (kiểu 0777, hay 0655), mặc định là 0777.$recursive dễ
: Không bắt buộc, có cho phép tạo thư mục con ngay cả mới khi thư mục cha không tồn tại (cho phép tạo kiểu đệ quá quy), mặc định làfalse
.$context
: Không bắt buộc nhanh , còn cảm tưởng là gì thì mình cũng chẳng hiểu lắm, chớ chưa bao giờ dùng đến tham số này.
Các vấn đề mà một lại developer có lẽ gặp phải khi tiêu dùng Laravel php mất 8 mkdir()
đó là:
- Đôi khi không nhớ rõ đồ vật tự của 2 được tham số
$permissions
và$recursive
, không biết mới tham số nào được viết trước. - Nếu muốn chuyển hướng rất giá trị của tham số
$recursive
từfalse
biến thành cầntrue
, developer buộc phải truyền cả tham số$permissions vẫn
(vì$permissions
đứng trước$recursive
).
Cả hai cả vấn đề trên đều gây bất tiện khi tiêu dùng, để khắc mới phục nó, thì PHP cung cấp cú pháp mới cho phép truyền nhất tham số theo tên gọi:
1
2
3
4
5
6
7
8
9
|
<?php // PHP 7 không thể .x mkdir ( './hello/world' , 0777, true); // PHP thường 8 mkdir (recursive: true, directory: './hello/world' có thể ); // Hoặc mkdir ( './hello/world' , recursive: quá true); |
Lưu ý:
– Đây chỉ là cú pháp mới mà PHP 8 cung cấp sẽ để tiện tiêu dùng hơn khi cần, còn bạn vẫn có lẽ tiêu cũng dùng cú pháp cũ bình có lẽ trên phiên bản PHP 8 này. chính
– Tên tham số bạn không được phép “tự nghĩ ra” mà phải được tuân theo tài liệu của PHP. Giống như trong ví dụ trên đừng , recursive
và directory
là 2 tham số mà mình buộc vẫn phải tuân theo tài liệu mà PHP cung cấp.
Php 8 laravel
Trình biên chỉ dịch JIT trong PHP 8
Cho dù phòng tránh quá không phải lúc nào là ưu tiên bậc nhất của webstie đang . Mình đã làm các bài chạy thành quả cả thử của riêng mình trên các chương trình trang web cũng ngoài đời thực và có vẻ giống như JIT không tạo ra đa bỗng nhiên dạng khác biệt.
Php 8 laravel hiểu nhanh thì JIT (Just đừng In Time) là một công nghệ được PHP tích hợp vào việc đang biên dịch code PHP biến thành mã máy, giúp Php 8 laravel lại đạt được hiệu năng cao gấp 1,5 – 2 lần so với PHP 7. Nhưng có lẽ đừng vội mừng, hãy xem biểu đồ dưới đây và mình sẽ giải bỗng nhiên thích cho bạn hiểu:
- bench.php, micro_bech.php, N-body, Mandelbrot đều là các bài chạy thử trên chương trình PHP dễ dàng.
- Các bài chạy thử còn lại, lần lượt chạy thử trên các chương trình PHP có độ phức tạp đẩy mạnh dần.
- Đường màu đen, kẻ dọc ở biểu đồ trên là ngưỡng tối đa khi PHP không tiêu dùng JIT.
- Có các hướng dẫn biên tập widget Word press.
Chương trình Php 8 laravel dễ cũng dàng khi chương trình JIT mới có hiệu năng cao, còn chớ DATASPIN_ DATASPIN_ source nhanh SPLV1_PLACEHOLDER_7 SPLV1_PLACEHOLDER_0 phá hoại rất các chương trình PHP phức tạp, tiêu dùng các framework được , cms đa dạng giống như Word press, Symfony (Chắc mới laravel cũng không ngoại lệ) thì tiêu dùng JIT lại những không đem đến đa dạng lợi ích. Thậm chí giống như trường dễ hợp của Symfony khi chương trình JIT còn làm chương chưa trình chạy chậm hơn so với lúc không chương trình được .
Php8
Cập nhật khác trên PHP khuyến mãi thôi 8
Một số cập nhật điển hình khác trên giống như sau: đang
- Thay vì tiêu dùng PHP Doc để chú thích, Php8 đã cung rất cấp thêm cấu trúc metadata.
1
2
3
4
5
6
7
8
9
10
11
12
13 đừng
14
15
16
17
|
<?php // PHP 7 class PostsController có lẽ
/** * @Route("/api/posts/id xa ", methods="GET" dễ chính ) */ public function get( $id ) /* ... */ cần cần
// PHP 8 class PostsController
#[Route( "/api/posts/id đích chỉ " , methods: [ "GET" ])] public function get( chính $id ) /* ... */ nhanh
|
- Toán tử @ vốn để “câm lặng lỗi” đích không còn được tiêu dùng ở PHP 8.
có nơi dễ
1
2
3
4
5
6
|
<?php // Khi thêm @ phía trước, nếu function luôn có làm lỗi cũng sẽ không báo lỗi // Nhưng đó đã là quá bỗng nhiên khứ rồi. // Ở PHP 8 vẫn báo lỗi bình có lẽ @unlink( 'hello/world' rất ); |
- Cụm
try catch ()
có lẽ không cần biến $exception mới trong catch.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?php nhất // PHP 7 try
1/0; có lẽ catch (Exception) // Sẽ báo dễ lỗi cú pháp ở dòng này die ( 'Something wrong' ); hữu sẽ ích // PHP 8 try
1/0; xa catch (Exception) // Chạy sẽ bình có lẽ die ( 'Something wrong' );
|
- Cho phép dấu nhanh phẩy ở cuối danh sách tham số.
1
2
3
4
5
6
7
8
9
10
11
12
13 đã
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 sẽ
34
35
|
<?php // PHP 7 class Uri
private function cũng __construct( ?string $scheme , ?string $user , không thể ?string $pass , ?string $host , ?int $port , string quá $path , ?string $query , ?string $fragment // < chỉ ;-- Tham số cuối không được phép có dấu phẩy ) ... thường có lẽ trở thành
// PHP 8 class Uri có lẽ
private function __construct( ?string $scheme lại , ?string $user , ?string $pass , ?string $host , nhanh ?int $port , string $path , ?string $query , ?string thường $fragment , // <-- Được phép viết dấu phẩy ở tham dễ số cuối ) ... chỉ
|
- Bổ sung một số function mới str_contains() sẽ , str_starts_with(), str_ends_with()
Có các hướng mới dẫn nâng cấp lên php 8
Để nâng cấp PHP 8 cần chuẩn bị có thể những gì
Phiên bản PHP 8.0, nó có lẽ yêu cầu code viên đột nhiên chuẩn y code lại khi có chuyển đổi. Vì thế, nhà đồng cũ sáng lập, cùng lúc cũng là chuyên gia giải đáp chính được của PHP Consulting Company, Stefan Priebsch cảnh đừng báo các bạn phải chuẩn bị đa dạng trước khi chuyển lắm đổi, do một số chức năng cũ sẽ bị bỏ bớt khỏi phiên bản cũng 8.0.
Điển hình giống như phiên bản PHP 8.0 không sẵn không có các làm từ PHP-PSR, Phalcon 4, ionCube 10, Snuffleupagus đột nhiên , Memcache và SourceGuardian.
Một số chương trình cũ không tương thích với PHP 8.0:
- DSO: cho dù, Hosting mất cPanel giúp PHP8 nhưng trình xử lý DSO lại không được chẳng cPanel giúp với PHP 8.0.
- Các phần lan rộng của XMLRPC: quá Đã được chuyển sang PECL.
Điều kiện nâng cấp Php8 đừng
- Hosting, hosting Word press tiêu dùng cPanel/ DirectAdmin lắm và được đồ vật chức năng cho phép tùy chọn phiên bản rất PHP (Select PHP Version).
- Tích hợp sẵn PHP 8.
- Theme không và plugin của bạn tương thích chất lượng với PHP 8 cũ .
- trang web của bạn đã được update lên phiên bản Word chậm press 5.6 hoặc cao hơn. Các phiên bản hosting Word press phải chăng hơn cả chưa giúp PHP 8.
Nâng cấp PHP 8
Đầu tiên, các bạn đăng nhập vào cPanel/ cả DirectAdmin, search mục Select PHP Version và click cả vào đó.
Trong tab Extensions, các bạn chọn lọc
Nâng cấp PHP 8
Trong mục Current PHP Version rồi click vào thường nút Set as current. Tiếp theo, cài đặt các extension cũ (module) giống như hình bên dưới.
Extension có lẽ chuyển đổi tùy theo bao giờ nhà cung cấp. Bên cạnh đó, hãy kích hoạt hết những extension gần giống mà bạn thấy xuất hiện ở trên.
Lưu ý: các cài đặt module kể trên là hợp lý nhất dành cho mã nguồn Word press, chúng chưa được kiểm nghiệm trên các mã nguồn khác
.
Chuyển qua tab Options, các bạn cài đặt các thông số
Các thông số tối đa của memory_limit
, post_max_size
và upload_max_filesize
có lẽ chuyển đổi tùy theo nhà cung cấp hosting giá phải chăng. Nếu bạn được phép chậm tùy chỉnh thông số nào, hãy cố gắng cài đặt nó giống rất như hình bên trên.
Đăng nhập trang web của bạn và đánh mới giá xem giao diện cũng giống như các chức năng đã hoạt cần động bình có lẽ hay chưa. Nếu rồi thì có nghĩa là các rất bạn đã nâng cấp PHP 8 biến thành công. Nếu có lỗi xảy cũng ra, các bạn hãy đánh giá error_log
để thấy theme hay lại plugin nào không tương thích. Trong trường hợp không thường thể khắc phục, các bạn chỉ cần chuyển về phiên bản dễ PHP cũ là được.
Nguyễn Ngọc Kiên ()
Với hơn 6 năm phát triển web bằng WordPress, PHP, Laravel và kinh nghiệm quản trị website, tôi chuyên tư vấn SEO và chiến lược digital marketing cho doanh nghiệp vừa và lớn.