PHP code example of sk / object-to-string

1. Go to this page and download the library: Download sk/object-to-string library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

sk / object-to-string example snippets




use SK\ObjectToString\Metadata\Driver\AnnotationDriver;
use SK\ObjectToString\Metadata\Driver\XmlDriver;
use SK\ObjectToString\Metadata\Driver\YamlDriver;
use SK\ObjectToString\Metadata\Driver\PhpDriver;
use SK\ObjectToString\ObjectToString;
use Doctrine\Common\Annotations\AnnotationReader;
use Metadata\Driver\FileLocator;
use Metadata\Driver\DriverChain;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;

$fileLocator = new FileLocator(array('' => realpath('/path/to/config')));
$driverChain = new DriverChain([
    new AnnotationDriver(new AnnotationReader()),
    new XmlDriver($fileLocator),
    new YamlDriver($fileLocator),
    new PhpDriver($fileLocator),
]);

$metadataFactory =new \Metadata\MetadataFactory($driverChain);

$expressionLanguage = new ExpressionLanguage();

$objectToString = new ObjectToString($metadataFactory, $expressionLanguage);



use SK\ObjectToString\Metadata\Driver\AnnotationDriver;
use SK\ObjectToString\ObjectToString;
use Doctrine\Common\Annotations\AnnotationReader;
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;

$metadataFactory =new \Metadata\MetadataFactory(new AnnotationDriver(new AnnotationReader()));

$expressionLanguage = new ExpressionLanguage();

$objectToString = new ObjectToString($metadataFactory, $expressionLanguage);




namespace Acme\Model;

use SK\ObjectToString\Annotation\ObjectToString;

/**
 * Class Email
 *
 * @ObjectToString(name="name", format="name", params={"name": "name"})
 * @ObjectToString(name="email", format="email", params={"email": "email"})
 * @ObjectToString(name="email_alternative", format="email", params={"email": "emailAlternative"})
 * @ObjectToString(name="full_email", format="name ~ ' <' ~ email ~ '>'", params={"email": "email", "name": "name"})
 * @ObjectToString(name="full_email_alternative", format="name ~ ' <' ~ email ~ '>'", params={"email": "emailAlternative", "name": "name"})
 * @ObjectToString(name="full_email_validated", format="_this.getName() ~ (_this.isValidated() ? ' (validated)') ~' <' ~ _this.getEmail() ~ '>'")
 */
class Email
{

    /**
     * @var string
     */
    private $email;

    /**
     * @var string
     */
    private $emailAlternative;

    /**
     * @var string
     */
    private $name;
    
    /**
     * @var bool
     */
    private $validated = false;
    
    /**
     * Email constructor.
     *
     * @param string $email
     * @param string $emailAlternative
     * @param string $name
     */
    public function __construct($name = null, $email = null, $emailAlternative = null)
    {
        $this->email = $email;
        $this->emailAlternative = $emailAlternative;
        $this->name = $name;
    }

    /**
     * @return string
     */
    public function getEmail()
    {
        return $this->email;
    }

    /**
     * @param string $email
     *
     * @return Email
     */
    public function setEmail($email)
    {
        $this->email = $email;

        return $this;
    }

    /**
     * @return string
     */
    public function getEmailAlternative()
    {
        return $this->emailAlternative;
    }

    /**
     * @param string $emailAlternative
     *
     * @return Email
     */
    public function setEmailAlternative($emailAlternative)
    {
        $this->emailAlternative = $emailAlternative;

        return $this;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param string $name
     *
     * @return Email
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * @param bool $validated
     *
     * @return Email
     */
    public function setValidated($validated)
    {
        $this->validated = $validated;

        return $this;
    }
}


// file: /path/to/config/Acme.Model.Email.php

$metadata = new \SK\ObjectToString\Metadata\ClassMetadata(
    \Acme\Model\Email::class
);
$metadata->addToString('name', 'name', array('name' => 'name'));
$metadata->addToString('email', 'email', array('email' => 'email'));
$metadata->addToString('email_alternative', 'email', array('email' => 'emailAlternative'));
$metadata->addToString('full_email', 'name ~ \' <\' ~ email ~ \'>\'', array('email' => 'email', 'name' => 'name'));
$metadata->addToString(
    'full_email_alternative',
    'name ~ \' <\' ~ email ~ \'>\'',
    array('email' => 'emailAlternative', 'name' => 'name')
);

return $metadata;



$email = new \Acme\Model\Email('John Doe', '[email protected]', '[email protected]');

echo $objectToString->generate('name', $email) . "\n";
echo $objectToString->generate('email', $email) . "\n";
echo $objectToString->generate('email_alternative', $email) . "\n";
echo $objectToString->generate('full_email', $email) . "\n";
echo $objectToString->generate('full_email_alternative', $email) . "\n";
echo $objectToString->generate('full_email_validated', $email) . "\n";
$email->setValidated(true);
echo $objectToString->generate('full_email_validated', $email) . "\n";