Skip to content

omnibase/notary API reference

Floor
Prepared structure · Omnibase
Version
main
Verified for real
Its README does not say
Licence
MIT
composer require omnibase/notary:dev-main

Read from the package's own PHP files at the commit a8f661ba1e78: its namespaces, classes, interfaces and enums, their public constants, properties and methods with their PHPDoc, and the options its factories take. Nothing of it is run.

Base\Notary

  • NotaryBundle class

    The notarial regime, on omnibase/office: what a notary's office site owes to its professional rules, written as checks the back office runs - the regulated tariff and the discounts displayed, the consumer mediator of the notariat, e-mail addresses ending in notaires.fr, the site declared to the chamber, wording free of comparison - and its own pages: the fields of practice, the tariff, the mediation, the client's space. No online payment: the bundle has none.

    3 methods

Base\Notary\Admin\Settings

  • NotarySettingsSection class

    The settings' notarial section: what the legal notice and the tariff page print and only the office knows - the structure that holds the office, its chamber and the day the site was declared to it, the discounts, the fees for what the tariff does not cover. The compliance widget reads the same.

    3 methods

Base\Notary\Compliance

  • BrandBlockCheck class

    The profession's graphic charter and its brand block: the site keeps to "la charte graphique [...] et le plan de nommage arrêtés par le Conseil supérieur du notariat et publiés sur le portail intranet de la profession" (règlement professionnel du notariat, art. 14.4), and the brand block with the NOTAIRES DE FRANCE logo is put "sur tous les supports de communication" (art. 14.5). Neither can be read from outside the profession's intranet: the office says in the settings that it has applied them, and until then the back office reminds it.

    2 methods

  • ChamberDeclarationCheck class

    "L'office notarial qui ouvre un site internet, y propose ses services ou ouvre ou modifie une ou plusieurs pages web destinées aux mêmes fins [...] doit en informer sans délai la chambre des notaires dont il dépend" (règlement professionnel du notariat, art. 14.4). The settings keep which chamber and the day it was told.

    2 methods

  • IdentificationCheck class

    The office can be identified: "Tout document destiné à la correspondance ou à la communication du notaire doit mentionner les éléments permettant de l'identifier" (règlement professionnel du notariat, art. 14.1), and a member of a regulated profession names on its site its professional title, the body it is registered with and the rules that apply to it (loi n° 2004-575 du 21 juin 2004, art. 19). The legal notice prints the structure that holds the office, its address, its chamber.

    2 methods

  • MediatorCheck class

    "Le notaire doit faire connaître par tous moyens lisibles et appropriés la possibilité pour le client d'avoir recours au médiateur de la consommation du notariat en cas de différend entre eux et en indiquer les coordonnées" (règlement professionnel du notariat, art. 25.1). The page /mediation prints them: a name, and an address or a site.

    2 methods

  • ProfessionalEmailCheck class

    The office's e-mail addresses end with notaires.fr (règlement professionnel du notariat, art. 16.3): the address each office shows to the public, and the one the site writes to clients from.

    2 methods

  • TariffDisplayCheck class

    The tariff is displayed on the site (code de commerce, art. L. 444-4: the notaries post the tariffs they practise in their office and on their website), and with it the discounts the office grants, by category of deeds and by band - or that it grants none. The page /tarifs links to the official text; the office types its discounts in the settings. Past the period of the order in force, the reference is to be brought up to date.

    2 methods

  • WordingCheck class

    What the office wrote for the public - the fields of practice, the team's biographies, its fees - read again for comparison, disparagement and the superlatives of advertising (Base\Notary\Guard\Wording says on which texts this rests). A warning names where and what.

    2 methods

Base\Notary\Controller\Admin\Crud

Base\Notary\Controller\Client

  • NotaryController class

    The notarial regime's public pages: the fields of practice, the tariff (regulated: the page explains it and links to the official text, with the office's discounts and its fees for what the tariff does not cover), and the consumer mediator of the notariat.

    5 methods

  • RequestController class

    Asking for a first appointment without an account: an office's clients are invited, so someone new could not go through omnibase/office's booking pages, which ask to sign in. The request becomes an appointment of the office in request mode (no time yet: the office fixes it), under the name, the e-mail and the phone given; the few words are kept encrypted, as every reason is.

    1 method

  • SpaceController class

    The client's space: the appointments to come, the documents the office sent and those the client deposited - in the encrypted vault, never by e-mail.

    1 method

Base\Notary\Demo

  • NotaryDemoAccounts class

    The demonstration accounts of a notary's office (glitchr/omnibase's `demo` environment): one for each role this bundle and omnibase/office know. The roles of the office come from three groups, as in a real one - "Notaires" (ROLE_NOTARY), "Clercs" (ROLE_CLERK) and "Accueil" (ROLE_STAFF), the first two ROLE_STAFF through the application's role hierarchy; "etude" is the office's administrator.

    1 method · 4 constants

Base\Notary\DependencyInjection

Base\Notary\Entity

  • Area class

    A field of practice of the office (family, real estate, businesses...): what it covers, the deeds it gives rise to, who of the team follows it.

    6 methods

Base\Notary\Form

  • AppointmentRequestType class

    omnibase/office's form for a first appointment asked without an account, with this regime's labels (@notary.request.*). Kept for whoever builds the form by this name; the regime's own page gives the prefix itself.

    1 method

Base\Notary\Form\Model

Base\Notary\Guard

  • EmailDomain class

    "L'adresse de messagerie professionnelle sortante du notaire se termine par « .notaires.fr », afin d'éviter toute confusion dans l'esprit du public" (règlement professionnel du notariat, art. 16.3, approved by the order of 29 January 2024).

    1 method

  • Wording class

    Words a notary's communication must not carry: comparison with colleagues, disparagement, the superlatives of advertising. The texts: the notary's communication keeps to "la dignité, la loyauté, la confraternité, la délicatesse ; la neutralité, l'impartialité et l'objectivité" (règlement professionnel, art. 14.1), abstains from "toute démarche à caractère publicitaire" (art. 14.2), and a personalised solicitation or an online offer of services "ne peut pas inclure d'éléments comparatifs ou dénigrants" (decree n° 73-1202 of 28 December 1973 as amended by decree n° 2019-257 of 29 March 2019).

    3 methods · 1 constant

Base\Notary\Repository

  • AreaRepository class

    The finders are omnibase/office's (findActive(), findOneActiveBySlug(), findForMember()).

    1 method

Base\Notary\Security

  • OfficeAudience class

    Who of the office reads a client's document, beyond the client and whoever sent it (the voter's own business):

    2 methods

Base\Notary\Service

  • Record class

    What only the office knows and the back office's settings keep: the structure that holds the office, its chamber, the day the site was declared to it, the discounts it practises, its fees for what the tariff does not cover. Read without ever failing a page: a settings table not there yet answers nothing.

    9 methods · 7 constants

Base\Notary\Twig

  • NotaryExtension class

    The regime in templates: notary_record() (the structure, the chamber, the discounts typed in the settings), notary_areas(member|null) (the fields of practice, or a member's), notary_mediator(), notary_tariff().

    2 methods

Base\Notary

NotaryBundle class

class NotaryBundle extends AbstractBaseBundle NotaryBundle.php:20

The notarial regime, on omnibase/office: what a notary's office site owes to its professional rules, written as checks the back office runs - the regulated tariff and the discounts displayed, the consumer mediator of the notariat, e-mail addresses ending in notaires.fr, the site declared to the chamber, wording free of comparison - and its own pages: the fields of practice, the tariff, the mediation, the client's space. No online payment: the bundle has none.

Compliance built into the code does not replace the chamber's control.

NotaryBundle::__construct()

public function __construct()

NotaryBundle::getPath()

public function getPath(): string

Modern layout: the class lives in src/, the bundle root is the package root.

NotaryBundle::build()

public function build(ContainerBuilder $container): void

Base\Notary\Admin\Settings

NotarySettingsSection class

final class NotarySettingsSection implements SettingsSectionInterface NotarySettingsSection.php:18

The settings' notarial section: what the legal notice and the tariff page print and only the office knows - the structure that holds the office, its chamber and the day the site was declared to it, the discounts, the fees for what the tariff does not cover. The compliance widget reads the same.

NotarySettingsSection::__construct()

public function __construct(readonly TranslatorInterface $translator)

NotarySettingsSection::getPage()

public function getPage(): string

NotarySettingsSection::getFields()

public function getFields(): array

Base\Notary\Compliance

BrandBlockCheck class

final class BrandBlockCheck implements ComplianceCheckInterface BrandBlockCheck.php:19

The profession's graphic charter and its brand block: the site keeps to "la charte graphique [...] et le plan de nommage arrêtés par le Conseil supérieur du notariat et publiés sur le portail intranet de la profession" (règlement professionnel du notariat, art. 14.4), and the brand block with the NOTAIRES DE FRANCE logo is put "sur tous les supports de communication" (art. 14.5). Neither can be read from outside the profession's intranet: the office says in the settings that it has applied them, and until then the back office reminds it.

BrandBlockCheck::__construct()

public function __construct(readonly Record $record)

BrandBlockCheck::check()

public function check(): ComplianceResult

ChamberDeclarationCheck class

final class ChamberDeclarationCheck implements ComplianceCheckInterface ChamberDeclarationCheck.php:16

"L'office notarial qui ouvre un site internet, y propose ses services ou ouvre ou modifie une ou plusieurs pages web destinées aux mêmes fins [...] doit en informer sans délai la chambre des notaires dont il dépend" (règlement professionnel du notariat, art. 14.4). The settings keep which chamber and the day it was told.

ChamberDeclarationCheck::__construct()

public function __construct(readonly Record $record)

ChamberDeclarationCheck::check()

public function check(): ComplianceResult

IdentificationCheck class

final class IdentificationCheck implements ComplianceCheckInterface IdentificationCheck.php:19

The office can be identified: "Tout document destiné à la correspondance ou à la communication du notaire doit mentionner les éléments permettant de l'identifier" (règlement professionnel du notariat, art. 14.1), and a member of a regulated profession names on its site its professional title, the body it is registered with and the rules that apply to it (loi n° 2004-575 du 21 juin 2004, art. 19). The legal notice prints the structure that holds the office, its address, its chamber.

IdentificationCheck::__construct()

public function __construct(readonly Record $record, readonly OfficeRepository $offices)

IdentificationCheck::check()

public function check(): ComplianceResult

MediatorCheck class

final class MediatorCheck implements ComplianceCheckInterface MediatorCheck.php:16

"Le notaire doit faire connaître par tous moyens lisibles et appropriés la possibilité pour le client d'avoir recours au médiateur de la consommation du notariat en cas de différend entre eux et en indiquer les coordonnées" (règlement professionnel du notariat, art. 25.1). The page /mediation prints them: a name, and an address or a site.

MediatorCheck::__construct()

public function __construct(readonly array $mediator = [])

MediatorCheck::check()

public function check(): ComplianceResult

ProfessionalEmailCheck class

final class ProfessionalEmailCheck implements ComplianceCheckInterface ProfessionalEmailCheck.php:16

The office's e-mail addresses end with notaires.fr (règlement professionnel du notariat, art. 16.3): the address each office shows to the public, and the one the site writes to clients from.

ProfessionalEmailCheck::__construct()

public function __construct(readonly OfficeRepository $offices, readonly ?string $sender = null, readonly string $suffix = 'notaires.fr')

ProfessionalEmailCheck::check()

public function check(): ComplianceResult

TariffDisplayCheck class

final class TariffDisplayCheck implements ComplianceCheckInterface TariffDisplayCheck.php:18

The tariff is displayed on the site (code de commerce, art. L. 444-4: the notaries post the tariffs they practise in their office and on their website), and with it the discounts the office grants, by category of deeds and by band - or that it grants none. The page /tarifs links to the official text; the office types its discounts in the settings. Past the period of the order in force, the reference is to be brought up to date.

TariffDisplayCheck::__construct()

public function __construct(readonly Record $record, readonly array $tariff = [], readonly ?\DateTimeImmutable $today = null)

TariffDisplayCheck::check()

public function check(): ComplianceResult

WordingCheck class

final class WordingCheck implements ComplianceCheckInterface WordingCheck.php:19

What the office wrote for the public - the fields of practice, the team's biographies, its fees - read again for comparison, disparagement and the superlatives of advertising (Base\Notary\Guard\Wording says on which texts this rests). A warning names where and what.

WordingCheck::__construct()

public function __construct(readonly AreaRepository $areas, readonly MemberRepository $members, readonly Record $record, readonly array $extra = [])

WordingCheck::check()

public function check(): ComplianceResult

Base\Notary\Controller\Admin\Crud

AreaCrudController class

class AreaCrudController extends AbstractCrudController AreaCrudController.php:19

The fields of practice as the site shows them.

AreaCrudController::getEntityFqcn()

public static function getEntityFqcn(): string

AreaCrudController::getPreferredIcon()

public static function getPreferredIcon(): ?string

AreaCrudController::configureCrud()

public function configureCrud(Crud $crud): Crud

AreaCrudController::configureActions()

public function configureActions(Actions $actions): Actions

AreaCrudController::configureFields()

public function configureFields(string $pageName): iterable

Base\Notary\Controller\Client

NotaryController class

class NotaryController extends AbstractController NotaryController.php:18

The notarial regime's public pages: the fields of practice, the tariff (regulated: the page explains it and links to the official text, with the office's discounts and its fees for what the tariff does not cover), and the consumer mediator of the notariat.

NotaryController::__construct()

public function __construct(readonly OfficeRepository $offices, readonly Record $record)

NotaryController::areas()

public function areas(AreaRepository $areas): Response

NotaryController::area()

public function area(string $slug, AreaRepository $areas): Response

NotaryController::tariff()

public function tariff(): Response

NotaryController::mediation()

public function mediation(): Response

RequestController class

class RequestController extends AbstractRequestController RequestController.php:22

Asking for a first appointment without an account: an office's clients are invited, so someone new could not go through omnibase/office's booking pages, which ask to sign in. The request becomes an appointment of the office in request mode (no time yet: the office fixes it), under the name, the e-mail and the phone given; the few words are kept encrypted, as every reason is.

The form, its model and what is done with the request are omnibase/office's (AbstractRequestController, AppointmentRequests); the route, the page and its words are this regime's.

RequestController::request()

public function request(Request $request): Response

SpaceController class

class SpaceController extends AbstractController SpaceController.php:17

The client's space: the appointments to come, the documents the office sent and those the client deposited - in the encrypted vault, never by e-mail.

SpaceController::index()

public function index(AppointmentRepository $appointments, DocumentRepository $documents): Response

Base\Notary\Demo

NotaryDemoAccounts class

final class NotaryDemoAccounts implements DemoAccountProviderInterface NotaryDemoAccounts.php:25

The demonstration accounts of a notary's office (glitchr/omnibase's demo environment): one for each role this bundle and omnibase/office know. The roles of the office come from three groups, as in a real one - "Notaires" (ROLE_NOTARY), "Clercs" (ROLE_CLERK) and "Accueil" (ROLE_STAFF), the first two ROLE_STAFF through the application's role hierarchy; "etude" is the office's administrator.

An application's fixtures take them from Base\Demo\DemoAccountFactory ($accounts->account('notaire', $manager)) and attach what makes them worth signing in as: a member of the team and an agenda to the notary, a request and documents in the vault to the client. An office without one of these roles leaves it out: base.demo.exclude.

Registered when the installed glitchr/omnibase has the demo environment (config/services.php).

const NOTARIES = 'Notaires'
const CLERKS = 'Clercs'
const RECEPTION = 'Accueil'
const CLIENTS = 'Clients'

NotaryDemoAccounts::getDemoAccounts()

public function getDemoAccounts(): iterable

Base\Notary\DependencyInjection

NotaryConfiguration class

class NotaryConfiguration extends AbstractBaseConfiguration NotaryConfiguration.php:8

NotaryConfiguration::getConfigTreeBuilder()

public function getConfigTreeBuilder(): TreeBuilder

NotaryExtension class

class NotaryExtension extends AbstractBaseExtension implements PrependExtensionInterface NotaryExtension.php:12

NotaryExtension::getConfiguration()

public function getConfiguration(array $config, ContainerBuilder $container): NotaryConfiguration

NotaryExtension::prepend()

public function prepend(ContainerBuilder $container): void

The office's pages in the notarial regime's words: the contact form's warning (nothing confidential here: the client's space is for that), the menu of the client's space, where the e-mails send the client.

NotaryExtension::load()

public function load(array $configs, ContainerBuilder $container): void

Base\Notary\Entity

Area class

class Area extends Area Area.php:19

A field of practice of the office (family, real estate, businesses...): what it covers, the deeds it gives rise to, who of the team follows it.

Information for the public - its wording is checked against comparison (Base\Notary\Compliance\WordingCheck).

The fields and the methods common to the regimes are omnibase/office's (Base\Office\Entity\Area); the deeds and the table are the notaries'.

Area::getDeeds()

public function getDeeds(): array

Area::setDeeds()

public function setDeeds(?array $deeds): self

Area::getDeedsText()

public function getDeedsText(): string

The deeds, one a line: what the back office's form edits.

Area::setDeedsText()

public function setDeedsText(?string $text): self

Area::getItems()

public function getItems(): array

What omnibase/office's Area calls the list.

Area::setItems()

public function setItems(?array $items): static

Base\Notary\Form

AppointmentRequestType class

class AppointmentRequestType extends AppointmentRequestType AppointmentRequestType.php:12

omnibase/office's form for a first appointment asked without an account, with this regime's labels (@notary.request.*). Kept for whoever builds the form by this name; the regime's own page gives the prefix itself.

AppointmentRequestType::configureOptions()

public function configureOptions(OptionsResolver $resolver): void

Base\Notary\Form\Model

AppointmentRequest class

class AppointmentRequest extends AppointmentRequest AppointmentRequest.php:8

the model is omnibase/office's: Base\Office\Form\Model\AppointmentRequest

Base\Notary\Guard

EmailDomain class

final class EmailDomain EmailDomain.php:15

"L'adresse de messagerie professionnelle sortante du notaire se termine par « .notaires.fr », afin d'éviter toute confusion dans l'esprit du public" (règlement professionnel du notariat, art. 16.3, approved by the order of 29 January 2024).

The host of the address is notaires.fr itself (prenom.nom@notaires.fr) or one of its subdomains (@paris.notaires.fr); a look-alike (@notaires.fr.example, @mes-notaires.fr) is not.

EmailDomain::isNotarial()

public static function isNotarial(?string $email, string $suffix = 'notaires.fr'): bool

Wording class

final class Wording Wording.php:25

Words a notary's communication must not carry: comparison with colleagues, disparagement, the superlatives of advertising. The texts: the notary's communication keeps to "la dignité, la loyauté, la confraternité, la délicatesse ; la neutralité, l'impartialité et l'objectivité" (règlement professionnel, art. 14.1), abstains from "toute démarche à caractère publicitaire" (art. 14.2), and a personalised solicitation or an online offer of services "ne peut pas inclure d'éléments comparatifs ou dénigrants" (decree n° 73-1202 of 28 December 1973 as amended by decree n° 2019-257 of 29 March 2019).

A list of expressions is a help to the person who writes, not a judge: what it finds is shown as a warning, and what it does not find is not thereby allowed.

The expressions themselves are omnibase/office's (Base\Office\Guard\Wording), common to the regulated practices.

const PATTERNS = []

What is the notaries' alone: nothing so far.

Wording::scan()

public static function scan(?string $text, array $extra = []): array
$extra

expressions of the site's own, matched as they are written (case and accents apart)

Returns

what was found, by its label

Wording::isClean()

public static function isClean(?string $text, array $extra = []): bool

Wording::plain()

public static function plain(string $text): string

Lowered, without accents nor tags, typographic apostrophes and spaces made plain.

Base\Notary\Repository

AreaRepository class

class AreaRepository extends AreaRepository AreaRepository.php:13

The finders are omnibase/office's (findActive(), findOneActiveBySlug(), findForMember()).

AreaRepository::__construct()

public function __construct(ManagerRegistry $registry)

Base\Notary\Security

OfficeAudience class

final class OfficeAudience implements AudienceResolverInterface OfficeAudience.php:23

Who of the office reads a client's document, beyond the client and whoever sent it (the voter's own business):

  • the notaries and the clerks, who draw up the deeds, see and read it;
  • the rest of the staff (the reception) sees that it exists and what it is called, and reads only what is not marked confidential;
  • nobody else: neither another client, nor the site's administrators as such.

Only its sender withdraws a document.

OfficeAudience::__construct()

public function __construct(readonly RoleHierarchyInterface $roles, readonly string $notaryRole = 'ROLE_NOTARY', readonly string $clerkRole = 'ROLE_CLERK', readonly string $staffRole = 'ROLE_STAFF')

OfficeAudience::decide()

public function decide(string $attribute, Document $document, UserInterface $user): ?bool

Base\Notary\Service

Record class

class Record Record.php:14

What only the office knows and the back office's settings keep: the structure that holds the office, its chamber, the day the site was declared to it, the discounts it practises, its fees for what the tariff does not cover. Read without ever failing a page: a settings table not there yet answers nothing.

const HOLDER = 'notary.office.holder'
const CRPCEN = 'notary.office.crpcen'
const CHAMBER = 'notary.chamber.name'
const DECLARED_AT = 'notary.chamber.declared_at'
const BRAND = 'notary.brand.applied'
const DISCOUNTS = 'notary.tariff.discounts'
const FEES = 'notary.tariff.fees'

Record::__construct()

public function __construct(readonly SettingBagInterface $settings)

Record::get()

public function get(string $path): ?string

Record::getHolder()

public function getHolder(): ?string

Record::getCrpcen()

public function getCrpcen(): ?string

Record::getChamber()

public function getChamber(): ?string

Record::getDiscounts()

public function getDiscounts(): ?string

Record::getFees()

public function getFees(): ?string

Record::getDeclaredAt()

public function getDeclaredAt(): ?\DateTimeImmutable

The day the site was declared to the chamber, when what was typed is a date.

Record::isBrandApplied()

public function isBrandApplied(): bool

Base\Notary\Twig

NotaryExtension class

class NotaryExtension extends AbstractExtension NotaryExtension.php:18

The regime in templates: notary_record() (the structure, the chamber, the discounts typed in the settings), notary_areas(member|null) (the fields of practice, or a member's), notary_mediator(), notary_tariff().

NotaryExtension::__construct()

public function __construct(readonly Record $record, readonly AreaRepository $areas, readonly array $mediator = [], readonly array $tariff = [])

NotaryExtension::getFunctions()

public function getFunctions(): array