* * int
* * float
* * string
- * * references
- * * arrays
- * * objects (incl. \Serializable, and classes implementing magic and custom __serialize)
+ * * reference
+ * * array
+ * * object (incl. \Serializable, and classes implementing magic and custom __serialize)
*
* @param mixed $data PHP value(s).
- * @param Serializer|null $serializer Custom serializer.
+ * @param Serializer|array|null $serializer Custom Serializer (options).
* @return string serialized ION data
- * @throws ion\Exception
+ * @throws \ion\Exception
*/
-function serialize(mixed $data, ?Serializer $serializer = null) : string {}
+function serialize(mixed $data, Serializer|array|null $serializer = null) : string {}
/**
* Unserialize ION data (stream) as PHP value(s).
*
- * @param string|resource $data Serialized ION data, either as string buffer or stream,.
+ * @param string|resource $data Serialized ION data, either as string buffer or stream.
+ * @param Unserializer|array|null $unserializer Custom Unserializer (options).
* @return mixed unserialized PHP values
- * @throws ion\Exception
+ * @throws \ion\Exception
*/
-function unserialize($data, ?Unserializer $unserializer = null) : mixed {}
+function unserialize($data, Unserializer|array|null $unserializer = null) : mixed {}
/**
* Serializer interface, used to customize ion\serialize()'s behavior.
*/
interface Serializer {
- public function serialize(mixed $data) : string;
+ public function serialize(mixed $data, \ion\Writer|\ion\Writer\Options|array|null $writer = null) : mixed;
}
/**
* Unserializer interface, used to customize ion\unserialize()'s behavior.
*/
interface Unserializer {
- /** @param string|resource $data */
+ /** @param \ion\Reader|string|resource $data */
public function unserialize($data) : mixed;
}
/**
* An ION Timestamp.
- * @see https://amzn.github.io/ion-docs/docs/spec.html#timestamp the ION sepc's timestamp definintion
+ * @see https://amzn.github.io/ion-docs/docs/spec.html#timestamp the ION spec's timestamp definition
* @see https://php.net/date PHP's date documentation
*/
class Timestamp extends \DateTime {
* @param Timestamp\Precision|int $precision The timestamp's precision.
* @param Timestamp\Format|string|null $format The timestamp's format.
* @param string|null $datetime The timestamp's value.
- * @param \DateTimeZone|null $timezone The timestamp's timezone.
+ * @param \DateTimeZone|string|null $timezone The timestamp's timezone.
*/
public function __construct(
Timestamp\Precision|int $precision,
Timestamp\Format|string|null $format = null,
?string $datetime = null,
- ?\DateTimeZone $timezone = null,
+ \DateTimeZone|string|null $timezone = null,
) {}
public function __toString() : string {}
namespace ion\Symbol;
/**
- * The import location (referring to a shared table= of a symbol.
+ * The import location (referring to a shared table) of a symbol.
*/
class ImportLocation {
/**
namespace ion\Reader\Buffer;
/**
- * ION string buffer reader.
+ * ION buffer reader.
*/
class Reader extends \ion\Reader\Reader implements \ion\Reader\Buffer {
/**
* Create a new string buffer reader.
*
* @param string $buffer The buffer to read from.
- * @param \ion\Reader\Options|null $options Reader options.
+ * @param \ion\Reader\Options|array|null $options Reader options.
*/
public function __construct(
string $buffer,
- ?\ion\Reader\Options $options = null,
+ \ion\Reader\Options|array|null $options = null,
) {}
public function getBuffer() : string {}
* Create a new stream reader.
*
* @param resource $stream The stream to read from.
- * @param \ion\Reader\Options|null $options Reader options.
+ * @param \ion\Reader\Options|array|null $options Reader options.
*/
public function __construct(
$stream,
- ?\ion\Reader\Options $options = null,
+ \ion\Reader\Options|array|null $options = null,
) {}
/**
/**
* Create a new buffer writer.
*
- * @param \ion\Writer\Options|null $options Writer options.
+ * @param \ion\Writer\Options|array|null $options Writer options.
*/
public function __construct(
- ?\ion\Writer\Options $options = null,
+ \ion\Writer\Options|array|null $options = null,
) {}
public function getBuffer() : string {}
* Create a new stream writer.
*
* @param resource $stream The stream to write to.
- * @param \ion\Writer\Options|null $options Writer options.
+ * @param \ion\Writer\Options|array|null $options Writer options.
*/
public function __construct(
$stream,
- ?\ion\Writer\Options $options = null,
+ \ion\Writer\Options|array|null $options = null,
) {}
/**
* @return resource
}
namespace ion\Serializer;
-
/**
- * Specialization of the serializer for PHP.
+ * Serializer implementation
*/
-class PHP implements \ion\Serializer {
+class Serializer implements \ion\Serializer {
/**
- * Create a new PHP ION serializer.
+ * Create a new ION serializer.
*/
public function __construct(
- /**
- * Writer options.
- */
- public readonly ?\ion\Writer\Options $writerOptions = null,
/**
* Whether to write the top level array as multiple ION sequences.
*/
public readonly ?string $callCustomSerialize = null,
) {}
- public function serialize(mixed $data) : string {}
+ public function serialize(mixed $data, \ion\Writer|\ion\Writer\Options|array|null $writer = null) : mixed {}
}
namespace ion\Unserializer;
/**
- * Specialization of the unserializer for PHP.
+ * Unserializer implementation
*/
-class PHP implements \ion\Unserializer {
+class Unserializer implements \ion\Unserializer {
/**
- * Create a new ION PHP unserializer.
+ * Create a new ION unserializer.
*/
public function __construct(
- /**
- * Reader options.
- */
- public readonly ?\ion\Reader\Options $readerOptions = null,
/**
* Whether to continue reading multiple ION sequences after the first one.
*/
public readonly ?string $callCustomUnserialize = null,
){}
- /** @param string|resource $data */
+ /** @param \ion\Reader|string|resource $data */
public function unserialize($data) : mixed {}
}