ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅
π ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ° bia/page-bundle Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΠ°ΠΉΡΠ° β
π Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ β
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ β
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π΄Π»Ρ bia Π°Π΄ΠΌΠΈΠ½-ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠΏΡΠ°Π²Π»ΡΡΡ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ β
- PHP: Π²Π΅ΡΡΠΈΠΈ 8.1 ΠΈΠ»ΠΈ Π²ΡΡΠ΅
- composer ΠΏΠ°ΠΊΠ΅ΡΡ:
- bia/admin-bundle: Π²Π΅ΡΡΠΈΡ
dev-masterΠ Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ - doctrine/doctrine-bundle: Π²Π΅ΡΡΠΈΡ
^2.7 - symfony-cmf/routing-bundle: Π²Π΅ΡΡΠΈΡ
3.1.* - symfony/framework-bundle: Π²Π΅ΡΡΠΈΡ
6.4.* - symfony/uid: Π²Π΅ΡΡΠΈΡ
6.2.*
- bia/admin-bundle: Π²Π΅ΡΡΠΈΡ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° β
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² composer.json:
json
{
"repositories": [
{
"type": "git",
"url": "https://gitlab.srvdev.ru/bia-cms/bundles/page-bundle.git"
}
]
}ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
bash
$ composer require bia/page-bundleΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π² config/bundles.php Π²Π°ΡΠ΅Π³ΠΎ Symfony ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
php
return [
// ...
Bia\PageBundle\BiaPageBundle::class => ['all' => true],
];ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ β
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΡΡΡ, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² config/routes.php:
php
$routes->import('@BiaPageBundle/Resources/config/routing.yml');Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ
bash
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrateΠ‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Ρ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡ, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Shared Π±Π»ΠΎΠΊΠΎΠ²:
bash
php bin/console menu:generateΠ‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΠΈ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡ, ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², Shared Π±Π»ΠΎΠΊΠΎΠ²:
bash
php bin/console roles:generateΠ€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» β
Π‘ΡΡΠ°Π½ΠΈΡΡ β
Π‘ΡΡΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌΠΎΠΉ (ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ BaseVersioningEntityInterface), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π΄Ρ (prod, test).
Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠ² Π±Π΅Π· Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Π² ΠΊΠΎΠ΄, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ sitemap.xml Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ°Π½ΠΈΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
Π¨Π°Π±Π»ΠΎΠ½Ρ β
Π¨Π°Π±Π»ΠΎΠ½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΡΡΡΠ½ΠΎΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ html/css/js Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΡΠ°Π½ΠΈΡ Π±Π΅Π· Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Π² ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΡΠ°Π±Π»ΠΎΠ½Π° β
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ templates.yml ΠΈ Π² ΠΌΠ°ΡΡΠΈΠ² templates ΡΠΊΠ°Π·Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈ ΠΏΡΡΡ ΠΊ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ MockTemplate ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ:
yaml
templates:
- title: 'MockTemplate'
description: 'MockTemplate'
path: '@BiaPage/mock.html.twig'ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΎΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ, ΡΠ°Π±Π»ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½Π°.
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π° β
html
<html>
<head>
<title>{{ seo.title }}</title>
<meta name="description" content="{{ seo.description }}">
<meta name="keywords" content="{{ seo.keywords }}">
{{ bia_render_template_head|raw }}
<style>
.page-bundle-container .page-bundle-area {
border: 1px solid #000000;
}
{{ bia_render_template_css|raw }}
</style>
</head>
<body>
{{ bia_render_template_html|raw }}
<script>
{{ bia_render_template_js|raw }}
</script>
</body>
</html>ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² twig ΡΠ°Π±Π»ΠΎΠ½Π΅: β
seo.title- ΡΠ΅ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΠΌΠ΅ΡΠ°-Π΄Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ Π±Π»ΠΎΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠ΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡBlockSeoInterfacebia_render_template_head- ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ head ΠΈΠ· ΡΡΡΠ½ΠΎΡΡΠΈTemplate. ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ HTMLbia_render_template_css- ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ css ΠΈΠ· ΡΡΡΠ½ΠΎΡΡΠΈTemplate. ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ HTMLbia_render_template_html- ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ html ΠΈΠ· ΡΡΡΠ½ΠΎΡΡΠΈTemplate. ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ HTMLbia_render_template_js- ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»Ρ js ΠΈΠ· ΡΡΡΠ½ΠΎΡΡΠΈTemplate. ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΡ HTML
Π€ΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π² twig ΡΠ°Π±Π»ΠΎΠ½Π΅: β
bia_page_render_blocks_area- ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ° Π²Ρ ΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ°Π±Π»ΠΎΠ½Π΅ ΡΠ΅ΡΠ΅Π· Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.bia_page_render_block- ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠ°, Π½Π° Π²Ρ ΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡPageBlockDTOgetAvailableSites- ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°ΠΉΡΠΎΠ² (Site[])getCurrentSite- ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΡ (Site)getCurrentAlias- ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π°Π»ΠΈΠ°Ρ (Alias)getCurrentPageState- ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ (PageState)isCurrentSiteProduction- ΡΡΠ½ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΡ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ΠΎΠΌ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ
BlockMetadata β
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅:
ΠΠ»Π°ΡΡ BlockMetadata ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ BlockMetadataInterface ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
Π±Π»ΠΎΠΊΠ°. ΠΠ΅ΡΠ°-Π΄Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΈΠΊΠΎΠ½ΠΊΡ, ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² Π² Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.
ΠΠ΅ΡΠΎΠ΄Ρ:
getCode(): Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ°.getName(): Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΌΡ Π±Π»ΠΎΠΊΠ°.getIcon(): Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠΊΠΎΠ½ΠΊΡ Π±Π»ΠΎΠΊΠ°.getBundle(): Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π±Π°Π½Π΄Π» Π±Π»ΠΎΠΊΠ°.jsonSerialize(): ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π² JSON.
BreadcrumbsBlock.php β
BreadcrumbsBlock - ΠΊΠ»Π°ΡΡ Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π»Π΅Π±Π½ΡΡ ΠΊΡΠΎΡΠ΅ΠΊ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ . ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±Π»ΠΎΠΊΠ° ΠΈ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π΅Π³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
BlockSeoInterface.php β
BlockSeoInterface - ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ SEO-Π΄Π°Π½Π½ΡΠ΅. ΠΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ SEO-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π±Π»ΠΎΠΊΠ°.
TextBlock.php ΠΈ HtmlBlock.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΠΈ HTML Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΠΈΠ»ΠΈ HTML ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠ½ΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΡΡ ΠΎΡ AbstractBlock ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
AbstractBlock.php ΠΈ TwigBlock.php β
AbstractBlock - Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π»Ρ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. TwigBlock - ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Twig ΡΠ°Π±Π»ΠΎΠ½Ρ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
BlockInterface.php β
BlockInterface - ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±Π»ΠΎΠΊ.
PageCRUDController.php ΠΈ SharedBlockCRUDController.php β
ΠΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ CRUD-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ². ΠΠ½ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΈ Π±Π»ΠΎΠΊΠΎΠ².
BlockCompilerPass.php β
BlockCompilerPass - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π² BlockAggregator ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΡΠ»ΡΠΆΠ± Π² Symfony.
TemplateDTO.php, TemplateAreaDTO.php ΠΈ TemplateLayoutDTO.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ (DTO), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°Π±Π»ΠΎΠ½Π°ΠΌΠΈ, ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΌΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ.
PageBlockDTO.php ΠΈ PageSeoDTO.php β
PageBlockDTO - DTO Π΄Π»Ρ Π±Π»ΠΎΠΊΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±Π»ΠΎΠΊΠ΅, ΡΠ°ΠΊΡΡ ΠΊΠ°ΠΊ ID, ΠΊΠΎΠ΄, Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ. PageSeoDTO - DTO Π΄Π»Ρ SEO-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
SharedBlock.php ΠΈ Template.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ Doctrine Π΄Π»Ρ ΠΎΠ±ΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ². ΠΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ .
SiteCreationSubscriber.php β
SiteCreationSubscriber - ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ Doctrine, ΠΊΠΎΡΠΎΡΡΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ.
PageSharedBlock.php ΠΈ PageState.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡ. ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡ.
Page.php β
Page - ΡΡΡΠ½ΠΎΡΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΡΡΠ°Π½ΠΈΡΡ, Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡΠΌΠΈ.
BlockEditFormType.php ΠΈ BlockCreateFormType.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π»ΠΎΠΊΠΎΠ². ΠΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ FormMapper Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΡΠΎΡΠΌΡ.
BiaCodeEditorType.php ΠΈ BiaTemplateGridType.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠΈΠΏΡ ΡΠΎΡΠΌ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅ΡΠΎΠΊ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π² Π°Π΄ΠΌΠΈΠ½-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
PageRouter.php β
PageRouter - ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° RouterInterface, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΈ URL.
BlockDebugHelper.php β
BlockDebugHelper - ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
BlockAggregator.php ΠΈ BlockResolver.php β
BlockAggregator - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ. BlockResolver - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΡΠ°Π΅Ρ Π±Π»ΠΎΠΊΠΈ ΠΏΠΎ ΠΈΡ ΠΊΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΡΠ»ΡΠΆΠ±.
BlockProcessor.php ΠΈ PageComposeHelper.php β
ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅.
PageProcessor.php ΠΈ TemplateProcessor.php β
PageProcessor - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ΅Π½Π΄Π΅ΡΠΈΡ Π΅Ρ ΡΠ΅ΡΠ΅Π· TemplateProcessor, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Twig.
TemplateAggregator.php ΠΈ GlobalVariables.php β
TemplateAggregator - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. GlobalVariables - ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Twig ΡΠ°Π±Π»ΠΎΠ½Π°Ρ .
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β
ΠΡΠΎΡ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Π² Symfony ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ . ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΡ ΠΈ Π³ΠΈΠ±ΠΊΠΈΡ ΡΡΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· Π°Π΄ΠΌΠΈΠ½-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.