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--