| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- namespace Sabre\VObject;
- use Sabre\Xml;
- /**
- * iCalendar/vCard/jCal/jCard/xCal/xCard writer object.
- *
- * This object provides a few (static) convenience methods to quickly access
- * the serializers.
- *
- * @copyright Copyright (C) fruux GmbH (https://fruux.com/)
- * @author Ivan Enderlin
- * @license http://sabre.io/license/ Modified BSD License
- */
- class Writer
- {
- /**
- * Serializes a vCard or iCalendar object.
- *
- * @return string
- */
- public static function write(Component $component)
- {
- return $component->serialize();
- }
- /**
- * Serializes a jCal or jCard object.
- *
- * @param int $options
- *
- * @return string
- */
- public static function writeJson(Component $component, $options = 0)
- {
- return json_encode($component, $options);
- }
- /**
- * Serializes a xCal or xCard object.
- *
- * @return string
- */
- public static function writeXml(Component $component)
- {
- $writer = new Xml\Writer();
- $writer->openMemory();
- $writer->setIndent(true);
- $writer->startDocument('1.0', 'utf-8');
- if ($component instanceof Component\VCalendar) {
- $writer->startElement('icalendar');
- $writer->writeAttribute('xmlns', Parser\XML::XCAL_NAMESPACE);
- } else {
- $writer->startElement('vcards');
- $writer->writeAttribute('xmlns', Parser\XML::XCARD_NAMESPACE);
- }
- $component->xmlSerialize($writer);
- $writer->endElement();
- return $writer->outputMemory();
- }
- }
|