PHP 8.4 (Beta 3) Is Now Available for Testing on SiteGround Servers
PHP 8.4 (Beta 3) Is Now Available for Testing on SiteGround Servers
Table of Contents
We are glad to announce that PHP 8.4 (Beta 3) is now available for testing on all SiteGround servers – way ahead of its scheduled official release date on November 21, 2024. Once again, we are among the first companies to provide PHP 8.4 (Beta 3) for testing on our hosting platform. Thanks to our unique PHP server setup, we are able to offer the latest PHP versions for our clients to test safely on their websites hosted with us.
Discover more about the new features that the latest PHP version brings to the table in the next section.
What’s new in PHP 8.4 (Beta 3)
This latest version introduces some very important new features that will improve the PHP development experience even further. Let’s dive into some of the biggest changes that PHP 8.4 (Beta 3) offers:
Property hooks
One of the new features in PHP 8.4 (Beta 3) includes the ability to define property hooks which will eliminate the need for a lot of boilerplate code. This is one of the biggest changes in PHP history. Property hooks will help remove a lot of getters and setters by allowing each property to define its own get and set hooks. What’s more, an exciting addition is that in PHP 8.4 (Beta 3) property hooks can be defined in interfaces.
We can take this pretty standard class for example:
<?php
declare(strict_types=1);
class Website
{
private $domain;
public function __construct(string $domain) {
$this->domain = $domain;
}
public function getDomain(): string {
return $this->domain;
}
public function setDomain(string $domain): void {
if (strlen($domain) === 0) {
throw new ValueError("Domain must be non-empty");
}
$this->domain = $domain;
}
}
As of PHP8.4 (Beta 3) we can use Property Hooks to achieve the same result with the following syntax:
<?php
declare(strict_types=1);
class Website
{
public string $domain {
set {
if (strlen($value) === 0) {
throw new ValueError("Domain must be non-empty");
}
$this->domain = $value;
}
get => $this->domain;
}
public function __construct(string $domain) {
$this->domain = $domain;
}
}
newwithout additional parentheses
Another new feature that will save lots of boilerplate code is that you don’t have to wrap newly created objects within parentheses anymore in order to be able to chain methods on them.
What’s more, it works not only for methods – you can also chain properties, static methods, constants – basically whatever you want. Bottom line is that the new feature will simplify the syntax and make the code more concise and readable.
Example:
The “class member access on instantiation” feature was introduced in PHP 5.4.0. Since then constants, properties and methods can be accessed on a newly created instance without an intermediate variable, but only if the new expression is wrapped in parentheses:
class Website
{
...
public function getDomain(): string {
return $this->domain;
}
}
// Valid syntax
$myDomain = (new Website('siteground.com'))->getDomain();
// Invalid syntax until PHP8.4
$myDomain = new Website('siteground.com')->getDomain();
New Array functions
Another notable change in PHP is the introduction of several new Array functions. PHP 8.4 introduced several new array functions with callback function:
array_find()
A function that returns the value of the first array element that matched the condition. If none of the elements matched the condition, the function will return `null`.
array_find_key()
Returns the key of the first element for which the callback was true. If none of the elements matched the condition, the function returns `null`.
array_all()
Checks if the callback returns true for all of the array elements
array_any()
Checks the callback returns true for any of the elements of an array.
These new functions make it easier to search and manipulate arrays based on custom conditions which in terms will lead to cleaner and easier to read code.
How to test PHP 8.4 (Beta 3) on SiteGround servers
As a SiteGround client, you can easily test PHP 8.4 (Beta 3) on your website. Simply log in to your Site Tools > Devs > PHP Manager section and you’ll be able to replace the current PHP version used by your site with PHP 8.4 (Beta 3) with a single click.
Please keep in mind that PHP 8.4 (Beta 3) is mostly available for testing purposes and as usual, we strongly advise you not to use it at your production site before its scheduled official release date (November 21, 2024).
If you need to test PHP 8.4 (Beta 3) with your existing site, we recommend that you create a new site for testing and clone your production site into it to test different things. For this purpose, you can use our WordPress Staging tool. While testing, make sure that nothing fails and check your log files to see if any warnings or errors appear. Once you are done testing, you can simply delete that site.
Wrap-up
At SiteGround, we are constantly working to introduce the newest PHP technology ahead of the others. That’s why we are excited to provide our clients with the latest PHP version which brings to the table some big improvements that could significantly enhance the PHP development experience. Take your time to test the new version before the official release date and stay tuned for more updates from the PHP community.