Marcus OlssonFrilansande webbutvecklare

PHP 8.1 och PHP Foundation

Här i dagarna släpps PHP 8.1. Som vanligt med dessa releaser så finns det alltid dem som är bättre än mig själv att förklara nyheterna, jag rekommenderar starkt att kika på PHP Watch och Brent Roose på stitcher.io för att få sig en bild kring vad som är nytt.

I korthet så är det mest "quality of life improvements" och i vissa fall något bättre prestanda. Men – det finns i alla fall en sak jag har experimenterat med och sett fram emot.

Enums

Äntligen får PHP stöd för enumerations/enums som en del av språket, tidigare har man fått lösa det genom t.ex. konstanter (eller använda externa paket, så som spatie/enums).

<?php

class Roles {
    const ADMIN = 'admin';
    const STANDARD = 'standard';
}

// UserRoles::ADMIN

Men nu funkar de alltså som en egen typ av klass

<?php

enum Role {
    case Admin;
    case Standard;
}

Man kan också ge dem ett värde:

<?php

enum Role {
    case Admin = 'admin';
    case Standard = 'standard';
}

Och i sin tur kan en enum även ha egna funktioner:

<?php

enum Role {
    case Admin = 'admin';
    case Standard = 'standard';

    public function labelColor(): string
    {
        return match($this)
        {
            Role::Admin => 'red',
            Role::Standard => 'green',
        };
    }
}

echo(Role::Admin->labelColor())
// "red"

$admin = Role::Admin;
echo($admin->labelColor())
// "red"

Med enums får man då även fördelen när man type-hintar, t.ex:

<?php

class User {
    public function __construct(string $name, Role $role = Role::Standard) {
        echo($role->value);
    }
}

// 👍
$user = new User('Marcus Olsson', Role::Admin);
// 'admin'

// 👎
$user = new User('Marcus Olsson', 'standard');
// Uncaught TypeError

PHP Foundation

Tidigare i veckan utannonserade JetBrains (utvecklarna bakom bl.a. PHP Storm och otaliga andra språkspecifika IDE:er) initiativet PHP Foundation.

Syftet är möjliggöra för utvecklare att arbeta på och utveckla PHP som språk, både på heltid eller deltid och bli kompenserad för det. I nuläget sker nämligen mycket av utvecklingen idéellt eller under arbetstid hos de företagen som har möjlighet att låta anställda jobba deltid på projektet.

Detta gör såklart PHP till ett ganska utsatt språk – trots att PHP driver runt 80% av alla webbplatser på ett sätt eller annat – särskilt nu i samband med att den kanske allra mest framstående utvecklaren Nikita Popov har lämnat projektet för att fokusera på annat.

Redan från start finns stora backare med, t.ex. Automattic (förvaltarna av Wordpress), Laravel, Symfony och tidigare nämnda JetBrains. Snart har en halv miljon kronor samlats in till fonden och vi håller tummarna för att detta ger PHP möjligheten att fortsätta växa och vara ett säkert språk att använda för webben.


Kategorier

PHP Webbutveckling

Tidigare inlägg
These parents built a school app. Then the city called the cops

Relaterade inlägg
l5-very-basic-auth – nu över en halv miljon nedladdningar
PHP Insights v2.0
These parents built a school app. Then the city called the cops

🏠 Tillbaka till artiklarna