PHP code example of whitedigital-eu / audit-service
1. Go to this page and download the library: Download whitedigital-eu/audit-service 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/ */
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->auditEntityManager('audit')
->defaultEntityManager('default');
};
use WhiteDigital\Audit\Contracts\AuditType;
use WhiteDigital\Audit\Contracts\AuditServiceInterface;
public function __construct(private AuditServiceInterface $audit){}
$this->audit->audit(AuditType::EXCEPTION, 'something happened');
try {
somefunction();
} catch (Exception $exception){
$this->audit->auditException($exception);
}
use Symfony\Config\AuditConfig;
use Symfony\Component\HttpFoundation\Response;
return static function (AuditConfig $config): void {
$config
->excluded()
->responseCodes([
Response::HTTP_NOT_FOUND,
Response::HTTP_METHOD_NOT_ALLOWED,
]);
};
use Symfony\Config\AuditConfig;
use Symfony\Component\HttpFoundation\Response;
return static function (AuditConfig $config): void {
$config
->excluded()
->paths([
'/test',
]);
};
use Symfony\Config\AuditConfig;
use Symfony\Component\HttpFoundation\Response;
return static function (AuditConfig $config): void {
$config
->excluded()
->routes([
'app_test',
]);
};
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->additionalAuditTypes([
'test1',
'test2',
]);
};
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->auditTypeInterfaceNamespace('App\Audit')
->auditTypeInterfaceClassName('AuditType');
};
use WhiteDigital\Audit\Contracts\AuditServiceInterface;
class YourAuditService implements AuditServiceInterface {
public function audit(string $type, string $message, array $data = [], string $class = ''): void
{
}
public function auditException(Throwable $exception, ?string $url = null, string $class = ''): void
{
}
public static function getDefaultPriority(): int
{
return 2;
}
}
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->customConfiguration(true);
};
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->customApiResourcePath('%kernel.project_dir%/src/MyCustomPath')
// or ->customApiResourcePath(null);
};
use App\ApiResource\Admin\AuditResource;
use WhiteDigital\Audit\Entity\Audit;
use WhiteDigital\EntityResourceMapper\Mapper\ClassMapper;
use WhiteDigital\EntityResourceMapper\Mapper\ClassMapperConfiguratorInterface;
final class ClassMapperConfigurator implements ClassMapperConfiguratorInterface
{
public function __invoke(ClassMapper $classMapper): void
{
$classMapper->registerMapping(AuditResource::class, Audit::class);
}
}
use Doctrine\ORM\Mapping as ORM;
use WhiteDigital\Audit\Contracts\AuditEntityInterface;
#[ORM\Entity]
class AuditEntity implements AuditEntityInterface {}
use Doctrine\ORM\Mapping as ORM;
use WhiteDigital\Audit\Model\Audit;
#[ORM\Entity]
class AuditEntity extends Audit {}
use Doctrine\ORM\Mapping as ORM;
use WhiteDigital\Audit\Entity\Audit as BaseAudit;
#[ORM\Entity]
#[ORM\Table('new_audit_table_name')]
class AuditEntity extends BaseAudit {}
use WhiteDigital\Audit\Contracts\AuditType;
use WhiteDigital\Audit\Contracts\AuditServiceInterface;
use App\Entity\AuditEntity; // example
public function __construct(private AuditServiceInterface $audit){}
$this->audit->audit(AuditType::EXTERNAL, 'something happened', [], AuditEntity::class);
$this->audit->audit(AuditType::ETL, 'something happened', class: AuditEntity::class);
try {
somefunction();
} catch (Exception $exception){
$this->audit->auditException($exception, '', AuditEntity::class);
$this->audit->auditException($exception, class: AuditEntity::class);
}
use Symfony\Config\AuditConfig;
return static function (AuditConfig $config): void {
$config
->setDoctrineMappings(false);
};
use WhiteDigital\Audit\EventSubscriber\AuditDoctrineEventSubscriber;
public function __construct(private AuditDoctrineEventSubscriber $subscriber){}
$this->subscriber->setIsEnabled(false);
someFunction();
$this->subscriber->setIsEnabled(true);