Skip to content
Novus Examples
php1.1 KB

PHP — Invoice (enum, class, promoted properties)

A realistic modern-PHP snippet with strict types, a namespace, a backed enum, a final class with constructor-promoted readonly properties, and array_reduce with an arrow function — for testing highlighters, PHPStan, and parsers.

Preview — first 45 linesphp
<?php
// A small invoice model: a backed enum, a final class with typed
// promoted properties, a method, and array_reduce.
declare(strict_types=1);

namespace App\Billing;

enum Status: string
{
    case Draft = 'draft';
    case Sent = 'sent';
    case Paid = 'paid';
}

final class Invoice
{
    /** @var array<int, array{name: string, qty: int, unit: float}> */
    private array $lines = [];

    public function __construct(
        public readonly string $number,
        public Status $status = Status::Draft,
    ) {}

    public function addLine(string $name, int $qty, float $unit): void
    {
        $this->lines[] = ['name' => $name, 'qty' => $qty, 'unit' => $unit];
    }

    public function total(): float
    {
        return array_reduce(
            $this->lines,
            fn(float $sum, array $line): float => $sum + $line['qty'] * $line['unit'],
            0.0,
        );
    }
}

$invoice = new Invoice('INV-0001', Status::Sent);
$invoice->addLine('Design work', 3, 120.0);
$invoice->addLine('Hosting', 12, 8.5);

printf("%s (%s): $%.2f\n", $invoice->number, $invoice->status->value, $invoice->total());

Specifications

Language
PHP
Kind
realistic snippet
Lines
44
Encoding
UTF-8
Line Endings
LF

What is a .php file?

PHP (.php) is a plain-text source file for the PHP language — a dynamically typed, server-side scripting language designed for web development, embeddable in HTML. Modern PHP supports classes, namespaces, type declarations, and closures, and powers a large share of web back-ends and CMS platforms.

How to use this file

Use an example .php file to test syntax highlighters, the PHP interpreter and linters (PHP_CodeSniffer, PHPStan), formatters, and parser or language-detection tooling.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.