1. Go to this page and download the library: Download rekalogika/reconstitutor 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/ */
rekalogika / reconstitutor example snippets
use Rekalogika\Reconstitutor\AbstractClassReconstitutor;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* @extends AbstractClassReconstitutor<Order>
*/
final class OrderReconstitutor extends AbstractClassReconstitutor
{
/**
* The class that this reconstitutor manages. It can also be a super class
* or an interface.
*/
public static function getClass(): string
{
return Order::class;
}
/**
* When the object is being saved, we check if the paymentReceipt has been
* just uploaded. If it is, we save it to a file.
*
* Note: in Symfony, an uploaded file is represented by an instance of
* `UploadedFile`, otherwise it will be a `File` object.
*/
public function onSave(object $order): void
{
$path = sprintf('/tmp/payment_receipt/%s', $order->getId());
$file = $this->get($order, 'paymentReceipt');
if ($file instanceof UploadedFile) {
file_put_contents($path, $file->getContent());
$this->set($order, 'paymentReceipt', new File($path));
}
}
/**
* When the object is being loaded from the database, we check if the
* supposed payment receipt is already saved. If it is, then we load the
* file to the property.
*/
public function onLoad(object $order): void
{
$path = sprintf('/tmp/payment_receipt/%s', $order->getId());
if (file_exists($path)) {
$file = new File($path);
} else {
$file = null;
}
$this->set($order, 'paymentReceipt', $file);
}
/**
* If the order is being removed, we remove the associated payment receipt
* here.
*/
public function onRemove(object $order): void
{
$path = sprintf('/tmp/payment_receipt/%s', $order->getId());
if (file_exists($path)) {
unlink($path);
}
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.