MB: Was ist __( ) für eine Translations-Funktion?

Beitrag lesen

moin,

ich habe diese funktion __() schon in Tutorials gesehen ohne "Standart" Frameworks wie Wordpress oder CakePHP.

Der Tutor hat diese Funktion verwendet um Texte in andere Sprachen umzuwanden. Zuerst hat er den Source fest gelegt z.B. de.php:

return [
    'test' => 'Beispieltext'
];

Hier die Übersetzer Klasse Lang.class.php:

<?php

class Lang {

    protected static $data;

    public function load( string $lang_code ) {
        $lang_file_path = ROOT . DS . 'lang' . DS . strtolower( $lang_code ) . '.php';
        if( file_exists( $lang_file_path ) ) {
            self::$data = include( $lang_file_path );
        } else {
            throw new Exception( 'lang file not found: ' . $lang_file_path );
        }
    }
    
    public static function get( string $key, string $default_value ) : string {
        return isset( self::$data[ strtolower( $key ) ] )
           ? self::$data[ strtolower( $key ) ]
           : $default_value;
    }
    
}

Er hat diese Klasse in einer App aufgerufen Lang::load( 'de' ); und im HTML-Code intern den PHP-Code ausgegeben mit <?=__( 'lng.test' )?>

Ich habe keinen blassen schimmer wie im HTML-Code __( 'test' ) da Beispieltext raus gekommen ist. Natürlich ghabe ich es auch versucht ging aber sehr schief

Fatal error:  Uncaught Error: Call to undefined function __()

Auch all ich den Code vom Tutor auf das minimalste reduziert habe klappts auch nicht 😕. Erst als ich dann die Namespaces hinter den eigentliche Klasse geschrieben habe und die Methode get mit diesem Parameter 'test' aufgerufen habe funktioniert es wie erwartet.

Was hat das mit dere Funktion __( ) aufsich? Ist das von PHP vordefinierte Funktion? Wie kann man diese Funktion richtig nutzen?

lg