Convert 

\nn\t3::Convert() 

Konvertieren von Arrays zu Models, Models zu JSONs, Arrays zu ObjectStorages, Hex-Farben zu RGB und vieles mehr, was irgendwie mit Konvertieren von Dingen zu tun hat.

Overview of Methods 

\nn\t3::Convert()->toArray($obj = NULL, $depth = 3); 

Konvertiert ein Model in ein Array Alias zu nnt3::Obj()->toArray();

Bei Memory-Problemen wegen Rekursionen: Max-Tiefe angebenen!

\nn\t3::Convert($model)->toArray(2);
\nn\t3::Convert($model)->toArray();      => ['uid'=>1, 'title'=>'Beispiel', ...]
Copied!

| @return array

| ➜ Go to source code of Convert::toArray()

\nn\t3::Convert()->toBytes(); 

Konvertiert eine für Menschen lesbare Angabe von Bytes/Megabytes in einen Byte-Integer. Extrem tolerant, was Leerzeichen, Groß/Klein-Schreibung und Kommas statt Punkten angeht.

\nn\t3::Convert('1M')->toBytes();  // -> 1048576
\nn\t3::Convert('1 MB')->toBytes();    // -> 1048576
\nn\t3::Convert('1kb')->toBytes(); // -> 1024
\nn\t3::Convert('1,5kb')->toBytes();   // -> 1024
\nn\t3::Convert('1.5Gb')->toBytes();   // -> 1610612736
Copied!

Für den umgekehrten Weg (Bytes zu menschenlesbarer Schreibweise wie 1024 -> 1kb) gibt es einen praktischen Fluid ViewHelper im Core:

{fileSize->f:format.bytes()}
Copied!

| @return integer

| ➜ Go to source code of Convert::toBytes()

\nn\t3::Convert()->toFileReference(); 

Konvertiert ein \TYPO3\CMS\Core\Resource\FileReference (oder seine uid) in eine \TYPO3\CMS\Extbase\Domain\Model\FileReference

\nn\t3::Convert( $input )->toFileReference() => \TYPO3\CMS\Extbase\Domain\Model\FileReference
Copied!
@param $input Kann \TYPO3\CMS\Core\Resource\FileReference oder uid davon sein
@return \TYPO3\CMS\Extbase\Domain\Model\FileReference

| ➜ Go to source code of Convert::toFileReference()

\nn\t3::Convert()->toIso(); 

Konvertiert (normalisiert) einen String zu ISO-8859-1

\nn\t3::Convert('äöü')->toIso();
Copied!

| @return string

| ➜ Go to source code of Convert::toIso()

\nn\t3::Convert()->toJson($obj = NULL, $depth = 3); 

Konvertiert ein Model in ein JSON

\nn\t3::Convert($model)->toJson()        => ['uid'=>1, 'title'=>'Beispiel', ...]
Copied!

| @return array

| ➜ Go to source code of Convert::toJson()

\nn\t3::Convert()->toLanguage($sysLanguageUid = NULL); 

Konvertiert eine Sprach-ID (z.B. '0', '1') in das zweistellige Sprachkürzel (z.B. 'de', 'en')

// Sprach-ID 0 -> 'de'
\nn\t3::Convert(0)->toLanguage();
Copied!
@param int $sysLanguageUid
@return string

| ➜ Go to source code of Convert::toLanguage()

\nn\t3::Convert()->toLanguageId($languageCode = NULL); 

Konvertiert ein zweistelliges Sprachkürzel (z.B. 'de', 'en') in die Sprach-ID (z.B. '0', '1')

// Sprach-ID 0 -> 'de'
\nn\t3::Convert('de')->toLanguageId();
Copied!
@param int $sysLanguageUid
@return string

| ➜ Go to source code of Convert::toLanguageId()

\nn\t3::Convert()->toModel($className = NULL, $parentModel = NULL); 

Konvertiert ein Array in ein Model.

\nn\t3::Convert($array)->toModel( \Nng\Model\Name::class )       => \Nng\Model\Name
Copied!

Kann auch automatisch FileReferences erzeugen. In diesem Bespiel wird ein neues Model des Typs \Nng\Model\Name erzeugt und danach in der Datenbank persistiert. Das Feld falMedia ist eine ObjectStorage mit FileReferences. Die FileReferences werden automatisch erzeugt!

$data = [
    'pid' => 6,
    'title' => 'Neuer Datensatz',
    'description' => 'Der Text',
    'falMedia' => [
        ['title'=>'Bild 1', 'publicUrl'=>'fileadmin/_tests/5e505e6b6143a.jpg'],
        ['title'=>'Bild 2', 'publicUrl'=>'fileadmin/_tests/5e505fbf5d3dd.jpg'],
        ['title'=>'Bild 3', 'publicUrl'=>'fileadmin/_tests/5e505f435061e.jpg'],
    ]
];
$newModel = \nn\t3::Convert( $data )->toModel( \Nng\Model\Name::class );
$modelRepository->add( $newModel );
\nn\t3::Db()->persistAll();
Copied!

Beispiel: Aus einem Array einen News-Model erzeugen:

$entry = [
    'pid'             => 12,
    'title'           => 'News-Titel',
    'description' => '<p>Meine News</p>',
    'falMedia'        => [['publicUrl' => 'fileadmin/bild.jpg', 'title'=>'Bild'], ...],
    'categories'  => [1, 2]
];
$model = \nn\t3::Convert( $entry )->toModel( \GeorgRinger\News\Domain\Model\News::class );
$newsRepository->add( $model );
\nn\t3::Db()->persistAll();
Copied!

Hinweis Um ein bereits existierendes Model mit Daten aus einem Array zu aktualisieren gibt es die Methode $updatedModel = \nn\t3::Obj( $prevModel )->merge( $data );

| @return mixed

| ➜ Go to source code of Convert::toModel()

\nn\t3::Convert()->toObjectStorage($obj = NULL, $childType = NULL); 

Konvertiert etwas in eine ObjectStorage

\nn\t3::Convert($something)->toObjectStorage()
\nn\t3::Convert($something)->toObjectStorage( \My\Child\Type::class )

\nn\t3::Convert()->toObjectStorage([['uid'=>1], ['uid'=>2], ...], \My\Child\Type::class )
\nn\t3::Convert()->toObjectStorage([1, 2, ...], \My\Child\Type::class )
Copied!

| @return ObjectStorage

| ➜ Go to source code of Convert::toObjectStorage()

\nn\t3::Convert()->toRGB(); 

Konvertiert einen Farbwert in ein anderes Zahlenformat

\nn\t3::Convert('#ff6600')->toRGB();   // -> 255,128,0
Copied!

| @return string

| ➜ Go to source code of Convert::toRGB()

\nn\t3::Convert()->toSysCategories(); 

Konvertiert eine Liste in eine ObjectStorage mit SysCategory

Noch nicht implementiert!
Copied!

| @return ObjectStorage

| ➜ Go to source code of Convert::toSysCategories()

\nn\t3::Convert()->toUTF8(); 

Konvertiert (normalisiert) einen String zu UTF-8

\nn\t3::Convert('äöü')->toUTF8();
Copied!

| @return string

| ➜ Go to source code of Convert::toUTF8()

Methods