b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / jms / serializer / src / JMS / Serializer / Util /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/jms/serializer/src/JMS/Serializer/Util/Writer.php
Size2.52 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified22-Feb-2020 21:59
Last accessed23-Aug-2025 11:01
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

namespace JMS\Serializer\Util;

use JMS\Serializer\Exception\RuntimeException;

/**
* A writer implementation.
*
* This may be used to simplify writing well-formatted code.
*
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*/
class Writer
{
public $indentationSpaces = 4;
public $indentationLevel = 0;
public $content = '';
public $changeCount = 0;

private $changes = array();

public function indent()
{
$this->indentationLevel += 1;

return $this;
}

public function outdent()
{
$this->indentationLevel -= 1;

if ($this->indentationLevel < 0) {
throw new RuntimeException('The identation level cannot be less than zero.');
}

return $this;
}

/**
* @param string $content
*
* @return Writer
*/
public function writeln($content)
{
$this->write($content . "\n");

return $this;
}

public function revert()
{
$change = array_pop($this->changes);
$this->changeCount -= 1;
$this->content = substr($this->content, 0, -1 * \strlen($change));
}

/**
* @param string $content
*
* @return Writer
*/
public function write($content)
{
$addition = '';

$lines = explode("\n", $content);
for ($i = 0, $c = \count($lines); $i < $c; $i++) {
if ($this->indentationLevel > 0
&& !empty($lines[$i])
&& ((empty($addition) && "\n" === substr($this->content, -1)) || "\n" === substr($addition, -1))
) {
$addition .= str_repeat(' ', $this->indentationLevel * $this->indentationSpaces);
}

$addition .= $lines[$i];

if ($i + 1 < $c) {
$addition .= "\n";
}
}

$this->content .= $addition;
$this->changes[] = $addition;
$this->changeCount += 1;

return $this;
}

public function rtrim($preserveNewLines = true)
{
if (!$preserveNewLines) {
$this->content = rtrim($this->content);

return $this;
}

$addNl = "\n" === substr($this->content, -1);
$this->content = rtrim($this->content);

if ($addNl) {
$this->content .= "\n";
}

return $this;
}

public function reset()
{
$this->content = '';
$this->indentationLevel = 0;

return $this;
}

public function getContent()
{
return $this->content;
}
}