PHP code example of yard / data

1. Go to this page and download the library: Download yard/data 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/ */

    

yard / data example snippets


global $post;
$postData = \Yard\Data\PostData::from($post);

$postData = \Yard\Data\PostData::from(
    [
        'id' => 42,
        'author' => 1,
        'title' => 'Hello, World!',
        'content' => 'This is a test post.',
        'excerpt' => 'This is a test post.',
        'status' => 'publish',
        'date' => '2021-01-01 00:00:00',
        'modified' => '2021-01-01 00:00:00',
        'postType' => 'post',
        'slug'=> 'hello-world',
    ]
);

$model = \Corcel\Model\Post::find(get_the_ID());
$postData = \Yard\Data\PostData::from($model);

namespace App\Data;

use Yard\Data\PostData;

class VacancyData extends PostData
{
}

global $post;
$postData = \App\Data\VacancyData::from($post);

register_post_type('vacancy', [
    'supports' => [
        'data-class' => ['classFQN' => App\Data\KnowledgebaseData::class],
    ],
]);

'post_types' => [
  'vacancy' => App\Data\VacancyData::class,
  'employee' => App\Data\EmployeeData::class,

namespace App\Data;

use Yard\Data\Attributes\Meta;
use Yard\Data\PostData;

class VacancyData extends PostData
{
    #[Meta(metaKey: 'vacancy_email')]
    public string $email;
}

#[Meta]
public string $vacancyEmail;

#[Meta]
public EmployeeData $vacancyEmployee;

namespace App\Data;

use Yard\Data\Attributes\MetaPrefix;
use Yard\Data\Attributes\Meta;
use Yard\Data\PostData;

#[MetaPrefix(prefix: 'vacancy')]
class VacancyData extends PostData
{
    #[Meta]
    public string $email;
}

#[MetaPrefix(prefix: 'vacancy')]
class VacancyData extends PostData
{
    #[Meta]
    public bool $membersOnly;
}

namespace App\Data;

use Illuminate\Support\Collection;
use Yard\Data\Attributes\Terms;
use Yard\Data\PostData;

class VacancyData extends PostData
{
    #[Terms(taxonomy: 'vacancy_location')]
    /** @var Collection<int, TermData> */
    public Collection $locations;
}

#[Terms]
/** @var Collection<int, TermData> */
public Collection $vacancyLocation;

#[Terms]
/** @var Collection<int, TermData> */
public Collection $vacancyLocations;

namespace App\Data;

use Illuminate\Support\Collection;
use Yard\Data\Attributes\TaxonomyPrefix;
use Yard\Data\Attributes\Terms;
use Yard\Data\PostData;

#[TaxonomyPrefix(prefix: 'vacancy')]
class VacancyData extends PostData
{
    #[Terms]
    /** @var Collection<int, TermData> */
    public Collection $locations;
}

$vacancyData->locations->contains('slug',  'amsterdam'); // true
$postData->locations->firstWhere('slug', 'utrecht')->name; // Utrecht
$vacancyData->locations->implode('name', ', '), // Almere, Amsterdam, Utrecht

namespace App\Data;

use Yard\Data\TermData;

class TypeTermData extends TermData {

  #[Meta()]
  public string $icon;
}


namespace App\Data;

use Illuminate\Support\Collection;
use Yard\Data\Attributes\TaxonomyPrefix;
use Yard\Data\Attributes\Terms;
use Yard\Data\PostData;

class VacancyData extends PostData
{
    #[Terms(dataClass: TypeTermData::class)]
    /** @var Collection<int, TypeTermData> */
    public Collection $type;
}

$vacancyTypeIcon = $vacancyData->type->first()?->icon;

$postData->comments()->first()?->authorEmail;

namespace App\Data;

use Yard\Data\CommentData;

class LinkedInCommmentData extends CommentDataData {

  #[Meta()]
  public string $linkedInUserName;
}

$userData = UserData::from(wp_get_current_user());