PHP code example of atournayre / historique-bundle
1. Go to this page and download the library: Download atournayre/historique-bundle 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/ */
atournayre / historique-bundle example snippets
// app/AppKernel.php
// ...
class AppKernel extends Kernel
{
// ...
public function registerBundles()
{
$bundles = array(
// ...
new \Atournayre\Bundle\HistoriqueBundle\HistoriqueBundle(),
// ...
);
}
// ...
}
namespace App\Model;
use Atournayre\Bundle\HistoriqueBundle\Entity\History as BaseHistory;
use Atournayre\Bundle\HistoriqueBundle\EventSubscriber\HistoryEventSubscriber;
use Atournayre\Bundle\HistoriqueBundle\Interfaces\History as HistoryInterface;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\EntityListeners([HistoryEventSubscriber::class])]
class History extends BaseHistory implements HistoryInterface
{
// It is recommended not to extend this entity!
}
use Atournayre\Bundle\HistoriqueBundle\Traits\HistorycableInterface;
use Atournayre\Bundle\HistoriqueBundle\Traits\HistorycableTrait;
class YourEntity implements HistorycableInterface
{
//...
use HistorycableTrait;
//...
}
namespace App\Factory;
use App\Entity\Utilisateur;
use Atournayre\Bundle\HistoriqueBundle\DTO\HistoryDTO;
use Atournayre\Bundle\HistoriqueBundle\Exception\HistoriqueException;
use Atournayre\Bundle\HistoriqueBundle\Factory\AbstractFactory;
use Atournayre\Bundle\HistoriqueBundle\Interfaces\History;
use Symfony\Component\Security\Core\User\UserInterface;
class YourEntityHistoryFactory extends AbstractFactory
{
/**
* @throws HistoriqueException
*/
public function create(array $changeSet): ?History
{
// Create how many methods you want for each node in your change set.
$this->user($changeSet);
// You must call this method (it will convert $changeSet and create the History entity).
return parent::createHistory();
}
// This method implement how information are stored when a user is changed.
private function user(array $changeSet): void
{
/** @var UserInterface[]|null $currentChangeSet */
$currentChangeSet = $changeSet['user'] ?? null;
if (is_null($currentChangeSet)) return;
$this->changeSet->set('user', HistoryDTOFactory::createFromChangeSet(
'New username',
$currentChangeSet,
fn (Utilisateur $utilisateur) => $utilisateur?->getUsername()
));
}
}
use Doctrine\Common\Collections\Criteria;
$yourEntity = ...
// Get all the history (the most recent first)
$allPreviousValues = $yourEntity->getEntityChangeSet();
$allPreviousValues = $yourEntity->getEntityChangeSetAsArray();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.