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.
// Code fehlt noch
Dieser Code erzeugt folgende Ausgabe
--AlvineBoundaryb06bfd1d
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <0.urn:uuid:0600b9ab-97da-42f5-f9ee-06945301a276>
Erster Inhalt
--AlvineBoundaryb06bfd1d
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
Content-ID: <1.urn:uuid:0600b9ab-97da-42f5-f9ee-06945301a276>
Zweiter Inhalt
--AlvineBoundaryb06bfd1d--