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