1. Go to this page and download the library: Download yeast/loafpan 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/ */
yeast / loafpan example snippets
$config = json_decode($json, true);
$loafpan = new Loafpan($loafpanCacheDirectory);
// Don't forget to annotate your class.
$configClass = $loafpan->expand(MyConfig::class, $config);
// The first argument of `Unit` is the description of the object
// This is used in the JSON Schema generation
#[Unit("This is a very nice sandwich")]
class Sandwich {
// A custom field name can be given with the `name` parameter
#[Field(name: "title")]
public string $name = "";
// since PHP has no native support for generics or typed arrays (yet)
// one can override the type, and use list<T> to define the actual type
#[Field("The toppings of this sandwich", type: 'list<Yeast\Demo\Topping>')]
public array $toppings = [];
}
#[Unit("What goes on the bread stays on the bread")]
class Topping {
private function __construct(private bool $wet = false) {}
#[Expander]
public static function fromName(string $name) {
return new static($name === 'water' ? true : false);
}
}
$sandwich = new Sandwich();
$sandwich->name = "Soggy sandwich";
$sandwich->toppings = [
Topping::fromString("water"),
Topping::fromString("2 pounds of lead")
];
$loafpan = new Loafpan($yourLoafpanCacheDirectory);
/** @var Sandwich $sandwich */
$sandwich = $loafpan->expand(Sandwich::class, [
"title" => "Soggy sandwich",
"toppings" => [
"water",
"2 pounds of lead"
]
]);
echo "I have a sandwich called " . $sandwich->name . " the topping:\n";
foreach ($sandwich->toppping as $topping) {
echo " - " . ($topping->wet ? 'wet' : 'not wet') . "\n";
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.