The wait is almost over, and PHP 8.4 is just around the corner! Let's dive into the exciting new features and changes that have been announced so far.
Table of contents:
Get ready to upgrade on November 21, 2024! Before the official release, PHP 8.4 will go through a 6-month pre-release phase, featuring Alphas, Betas, Release Candidates, and finally, the official launch.
Inspired by languages like Kotlin, C#, and Swift, property hooks are set to revolutionize the way you code. With two syntax variants, reminiscent of short and multi-line closures, you'll be able to:
class User implements Named
{
private bool $isModified = false;
public function __construct(private string $first, private string $last) {}
public string $fullName {
// Override the "read" action with arbitrary logic.
get => $this->first . " " . $this->last;
// Override the "write" action with arbitrary logic.
set {
[$this->first, $this->last] = explode(' ', $value, 2);
$this->isModified = true;
}
}
}
Property hooks will simplify your code by eliminating boilerplate property getters and setters, allowing you to define access and updates with ease.
Also, you can define property hooks in interfaces so you can make sure that each implementation follow the same rules.
interface Named
{
// Objects implementing this interface must have a readable
// $fullName property. That could be satisfied with a traditional
// property or a property with a "get" hook.
public string $fullName { get; }
}
Here you can find more info about Property Hooks in the official RFC page.
Goodbye Unnecessary Parentheses. PHP 8.4 is bringing another game-changer to the table: no more wrapping new
invocations in parentheses to chain methods! This means you can ditch the extra syntax and make your code more concise and readable.
Take a look at this example:
// Before PHP 8.4
$name = (new MyClass())->execute();
// With PHP 8.4
$name = new MyClass()->execute();
Not only does this update simplify your code, but it also works seamlessly with properties, static methods, and constants.
new MyClass()::CONSTANT, // string(8) "constant"
new MyClass()::$staticProperty, // string(14) "staticProperty"
new MyClass()::staticMethod(), // string(12) "staticMethod"
new MyClass()->property, // string(8) "property"
new MyClass()->method(), // string(6) "method"
new MyClass()(), // string(8) "__invoke"
This small but significant change will make a huge difference in your coding experience.
In PHP we already have the \DOMDocument
class. This was used to parse HTML code but it was not fully compatible with HTML5 code.
Now, the new \Dom\HTMLDocument
is fully compatible with HTML5 and the new default way to go.
$doc = \Dom\HTMLDocument::createFromString($contents);
The previous class still available, but I think there is no reason to still using it.
Do you own a company or need help with your Laravel project? I can help you with that. Check the plans and let me know if you have any questions.
Get 1 month free with yearly plan during checkout.
$ 3 ,995
/m
What's included:
$ 5 ,995
/m
What's included:
Ok, just book a call now.
Good question! For starters, the annual cost of a full-time senior-level developer now exceeds $100,000, plus benefits (and good luck finding one available).
Aside from that, you may not always have enough work to keep them busy at all times, so you're stuck paying for time you aren't able to utilize.
With the monthly plan, you can pause and resume your subscription as often as you need to ensure you're only paying your developer when you have work available for them.
No, once subscribed you're able to request as many things as you'd like, and they will be delivered one by one.
Delivery will always be fast without compromising quality. Very complex requests will be divided into smaller products for continuous delivery.
Always, before starting to work, we can make a planning so that you know, before starting, when each change will be delivered.
You'll work directly with me, the founder and only person behind DeveloperJoy.
We understand you may not have enough work to fill up entire month. Perhaps you only have one or two requests at the moment. That's where pausing your subscription comes in handy.
Billing cycles are based on 31 day period. Let's say you sign up and use the service for 21 days, and then decide to pause your subscription. This means that the billing cycle will be paused and you'll have 10 days of service remaining to be used anytime in the future
I had experience making products with PHP, Go, and JavaScript/TypeScript.
Also I feel really comfortable working with WordPress, Laravel, Symfony, Vue.js, React, Svelte, and more.
Mail me and we will see how best to collaborate.
You can make this request by email, sharing a task board with me or, depending on your plan, by call or Slack.
That's fine. You can pause your subscription when finished and return when you have additional requests needs. There's no need to let the remainder of your subscription go to waste.
Due to the high quality nature of the work, there will be no refunds issued.