MediaTypes

Die Klasse \Alvine\Types\MediaTypes definiert einen Inhaltstyp nach der MIME-Spezifikation. Es kann entweder der Type und Subtype getrennt oder als ein Parameter übergeben werden.

Eine Liste der gültigen Mimetypes ist hier zu finden.

Der optionale Parameter $quality legt eine Gewichtung des Medientyps zu anderen Mediatype fest. Weitere Parameter können zum Beispiel der DOM-Level bei HTML sein.

// Neuer Multipart-Typ
$form=new Alvine\Types\Mime\Multipart();

$uuid=(string) \Alvine\Util\UUID::generateFromRandom();
$href='cid:1.urn:uuid:'.$uuid;

$part1Part=new \Alvine\Types\Mime\Text((string) 'Erster Inhalt');

// Header des Part1 Elements 
$part1Header=(new \Alvine\Net\Http\RequestHeader())
    ->setValue('Content-Type', 'application/xop+xml; charset=UTF-8; type="text/xml"')
    ->setValue('Content-Transfer-Encoding', 'binary')
    ->setValue('Content-ID', '<0.urn:uuid:'.$uuid.'>');

$part2Part=new \Alvine\Types\Mime\Text('Zweiter Inhalt');

// Header des Part2 Elements 
$part2Header=(new \Alvine\Net\Http\RequestHeader())->setValue('Content-Type', 'application/octet-stream')
        ->setValue('Content-Transfer-Encoding', 'binary')->setValue('Content-ID', '<1.urn:uuid:'.$uuid.'>');

// Parts hinzufügen 
$form->addPart($part1Part, $part1Header);
$form->addPart($part2Part, $part2Header);
$body=new \Alvine\Net\Http\Body($form);
echo (string) $body;

Für die verschiedenen Haupttypen stehen eigene Klassen zur Verfügung:

  • \Alvine\Types\Mime\Application
  • \Alvine\Types\Mime\Audi
  • \Alvine\Types\Mime\Image
  • \Alvine\Types\Mime\Message
  • \Alvine\Types\Mime\Model
  • \Alvine\Types\Mime\Text
  • \Alvine\Types\Mime\Video

Diese Klassen definieren im wesentlichen die Untertype als Konstanten.

Multipart

Diese Klasse \Alvine\Types\Mime\Multipart bildet einen aus einem oder mehreren Typen zusammengesetzten Inhaltstyp ab.

In dem Beispiel werden unterschiedliche Daten per Multipart-Body an den Server übergeben.


// Neuer Multipart-Typ
$form=new Alvine\Types\Mime\Multipart();

$uuid=(string) \Alvine\Util\UUID::generateFromRandom();
$href='cid:1.urn:uuid:'.$uuid;

$part1Part=new \Alvine\Types\Mime\Text((string) 'Erster Inhalt');

// Header des Part1 Elements 
$part1Header=(new \Alvine\Net\Http\RequestHeader())
    ->setValue('Content-Type', 'application/xop+xml; charset=UTF-8; type="text/xml"')
    ->setValue('Content-Transfer-Encoding', 'binary')
    ->setValue('Content-ID', '<0.urn:uuid:'.$uuid.'>');

$part2Part=new \Alvine\Types\Mime\Text('Zweiter Inhalt');

// Header des Part2 Elements 
$part2Header=(new \Alvine\Net\Http\RequestHeader())->setValue('Content-Type', 'application/octet-stream')
        ->setValue('Content-Transfer-Encoding', 'binary')->setValue('Content-ID', '<1.urn:uuid:'.$uuid.'>');

// Parts hinzufügen 
$form->addPart($part1Part, $part1Header);
$form->addPart($part2Part, $part2Header);
$body=new \Alvine\Net\Http\Body($form);
echo (string) $body;

Dieser Code erzeugt folgende Ausgabe

ddb99214-7572-4862-e22e-0928296ee5af