HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/www/printmanager/vendor/anourvalar/eloquent-serialize/src/Service.php
<?php

namespace AnourValar\EloquentSerialize;

use Illuminate\Database\Eloquent\Relations\Relation;

class Service
{
    use \AnourValar\EloquentSerialize\Grammars\ModelGrammar;
    use \AnourValar\EloquentSerialize\Grammars\EloquentBuilderGrammar;
    use \AnourValar\EloquentSerialize\Grammars\QueryBuilderGrammar;

    /**
     * Pack
     *
     * @param \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Relations\Relation $builder
     * @return string
     * @throws \RuntimeException
     */
    public function serialize(\Illuminate\Database\Eloquent\Builder|Relation $builder): string
    {
        if (
            $builder instanceof \Illuminate\Database\Eloquent\Relations\HasOne
            || $builder instanceof \Illuminate\Database\Eloquent\Relations\HasMany
            || $builder instanceof \Illuminate\Database\Eloquent\Relations\BelongsTo // as well as MorphTo
            || $builder instanceof \Illuminate\Database\Eloquent\Relations\MorphOne
        ) {
            $builder = $builder->getQuery(); // chaperone/inverse is not supported!
        }

        if ($builder instanceof Relation) {
            throw new \RuntimeException(get_class($builder) . ' cannot be packed.');
        }

        $package = $this->pack($builder);

        return serialize($package); // important!
    }

    /**
     * Unpack
     *
     * @param mixed $package
     * @throws \LogicException
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public function unserialize($package): \Illuminate\Database\Eloquent\Builder
    {
        // Prepare data
        if (is_string($package)) {
            $package = unserialize($package);
        }
        if (! ($package instanceof Package)) {
            throw new \LogicException('Incorrect argument.');
        }

        // Unpack
        return $this->unpack($package);
    }
}