new lang\container() - Object
__construct ([$mixed $context = null[, $bool $sort = false]])
$context |
optional; kommagetrennter String (z. B. 'de-DE,de;q=0.9,en;q=0.8'), Array von Sprachcodes/Strings, new lang()-Objekt, bestehender lang\container oder null; default ist null |
$sort |
optional; bei true werden die Sprachen nach Qualitätsfaktor (weight) absteigend sortiert; default ist false |
initialisiert einen neuen Container für Sprachen; implementiert \Countable, \IteratorAggregate und \ArrayAccess zur flexiblen Handhabung wie ein natives PHP-Array
$container = new lang\container('de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7' ) ; // Accept-Language-Header
$fromArray = new lang\container(['de' , 'en' ]) ;
$sorted = new lang\container('en;q=0.5,de;q=0.9' , true) ;
$container[] = 'it' ; // Hinzufügen via ArrayAccess
__toString ()
gibt die enthaltenen Sprachen als kommagetrennten string in der Form eines HTTP Accept-Language-Headers zurück
$container = new lang\container('de,en' ) ;
echo $container ; // Ausgabe: 'de,en'
__invoke ()
ermöglicht den Aufruf des Objekts als Funktion (
$container()); gibt den kommagetrennten String direkt per echo aus und liefert true zurück
$container = new lang\container('de,en' ) ;
$container() ; // Direkte Ausgabe: 'de,en'
__debugInfo ()
$container = new lang\container('de,en' ) ;
var_dump($container) ;
count ()
gibt die Anzahl der enthaltenen Sprachen als integer zurück; implementiert \Countable (ermöglicht auch
count($container))
$container = new lang\container('de,en,fr' ) ;
echo $container->count() ; // 3
echo count($container) ; // 3
getIterator ()
implementiert \IteratorAggregate; gibt ein new ArrayIterator-Objekt zurück, wodurch der Container direkt mit
foreach durchlaufen werden kann
$container = new lang\container('de,en' ) ;
foreach ($container as $lang) {
echo $lang->code ;
}
Element-Zugriff & Prüfung
getLang ()
sucht bevorzugt nach der konfigurierten Standard-Sprache (lang::getDefault(), z. B. 'de') und gibt diese als new lang()-Instanz zurück; falls nicht vorhanden, wird das erste Element geliefert; bei leerem Container null
$container = new lang\container('en,de,fr' ) ;
$pref = $container->getLang() ; // Liefert bevorzugt 'de' (Standard-Sprache)
firstLang ()
liefert das erste Sprachelement des Containers als new lang()-Objekt (z. B. die Sprache mit der höchsten Priorität nach einer Sortierung); bei leerem Container null
$container = new lang\container('en;q=0.5,de;q=0.9' , true) ;
$first = $container->firstLang() ;
echo $first->code ; // 'de' (höchste Gewichtung)
containLang ($mixed $item[, $bool $strict = false])
$item |
Sprachcode (z. B. 'de', 'de-DE'), Sprachstring oder new lang()-Objekt; Pflicht |
$strict |
optional; bei true muss der vollständige localCode exakt übereinstimmen; default ist false |
prüft, ob die angegebene Sprache im Container existiert; bei
$strict = false genügt die Übereinstimmung des Basis-Sprachcodes; gibt true zurück, andernfalls false
$container = new lang\container('de,en-US' ) ;
$container->containLang('de' ) ; // true
$container->containLang('de-DE' ) ; // true (Basis-Code 'de' stimmt überein)
$container->containLang('de-DE' , true) ; // false (strikt: 'de-DE' ist nicht explizit enthalten)
$container->containLang('en-US' , true) ; // true
empty ()
prüft, ob der Container keine Sprachen enthält; gibt true zurück wenn leer, andernfalls false
$container = new lang\container() ;
$container->empty() ; // true
Manipulation & Export
add ([$mixed $context = null[, $bool $sort = false[, $bool $frontPosition = false]]])
$context |
optional; kommagetrennter String, Array, new lang()-Objekt oder lang\container; default ist null |
$sort |
optional; bei true wird die Liste nach dem Hinzufügen nach Gewichtung sortiert; default ist false |
$frontPosition |
optional; bei true werden die neuen Elemente am Anfang des Containers eingefügt; default ist false |
fügt neue Sprachen zum Container hinzu (ungültige Sprachen werden übersprungen); gibt bei Erfolg true zurück, andernfalls false
$container = new lang\container('de' ) ;
$container->add(['en' , 'it' ]) ;
$container->add('fr' , false, true) ; // An erster Position voranstellen
sort ()
sortiert die enthaltenen Sprachen absteigend nach ihrem Qualitätsfaktor (weight), sodass die höchste Priorität am Anfang steht; gibt true zurück
$container = new lang\container('en;q=0.5,de;q=0.9' ) ;
$container->sort() ;
echo $container ; // 'de;q=0.9,en;q=0.5'
toLangCodeArray ([$bool $unique = false[, $bool $localCode = false]])
$unique |
optional; bei true werden Duplikate herausgefiltert; default ist false |
$localCode |
optional; bei true wird der lokale Code inklusive Länderkennung (z. B. 'de-DE') exportiert, sonst nur der Basiscode ('de'); default ist false |
exportiert alle enthaltenen Sprachen als einfaches array von Sprachcodes
$container = new lang\container('de-DE,de,en-US' ) ;
$container->toLangCodeArray(true) ; // ['de', 'en']
$container->toLangCodeArray(true, true) ; // ['de-DE', 'de', 'en-US']