Change SonataPageBundle entities (#1809)

This commit is contained in:
Erison Silva
2025-09-22 07:37:33 +02:00
committed by GitHub
parent e7dc2a8d35
commit c961a3509c
9 changed files with 173 additions and 2 deletions

View File

@@ -1,12 +1,12 @@
* Your Page is almost ready:
1. Generate a migration for Sonata Page Database <info>php bin/console doctrine:migrations:diff</info>
1. Generate a migration for Sonata Page Database <info>bin/console doctrine:migrations:diff</info>
<comment>
If you use Doctrine Attribute Reference, You must change Sonata Entities generated in Entity folder.
You can check more details at https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/attributes-reference.html
You can also use Rector to refactor, check more details at https://getrector.org/blog/how-to-upgrade-annotations-to-attributes
</comment>
2. Apply the migration generated <info>php bin/console doctrine:migrations:migrate --no-interaction</info>
2. Apply the migration generated <info>bin/console doctrine:migrations:migrate --no-interaction</info>
3. Create your first site: <info>bin/console sonata:page:create-site --enabled --name=localhost --locale=- --host=localhost --relativePath=- --enabledFrom=now --enabledTo=- --default</info>
<comment>After you generate your site, You will see few commands to execute to have your Site ready.</comment>

View File

@@ -0,0 +1,76 @@
sonata_block:
default_contexts: [sonata_page_bundle]
sonata_admin:
assets:
extra_javascripts:
- bundles/sonatapage/app.js
extra_stylesheets:
- bundles/sonatapage/app.css
# https://docs.sonata-project.org/projects/SonataPageBundle/en/4.x/reference/advanced_configuration/
sonata_page:
multisite: host
use_streamed_response: false
router_auto_register:
enabled: true
priority: 150
ignore_route_patterns:
- ^(.*)admin(.*) # ignore admin route, ie route containing 'admin'
- ^_(.*) # ignore symfony routes
ignore_routes:
- sonata_page_cache_esi
- sonata_page_cache_ssi
- sonata_page_js_sync_cache
- sonata_page_js_async_cache
- sonata_cache_esi
- sonata_cache_ssi
- sonata_cache_js_async
- sonata_cache_js_sync
- sonata_cache_apc
ignore_uri_patterns:
- ^/admin\/ # ignore admin route, ie route containing 'admin'
#https://docs.sonata-project.org/projects/SonataPageBundle/en/4.x/reference/page_composer/
default_template: default
templates:
default:
path: '@SonataPage/layout.html.twig'
name: 'default'
containers:
header:
name: Header
content_top:
name: Top content
content:
name: Main content
content_bottom:
name: Bottom content
footer:
name: Footer
matrix:
layout: |
HHHHHHHH
HHHHHHHH
TTTTTTTT
TTTTTTTT
CCCCCCCC
CCCCCCCC
BBBBBBBB
BBBBBBBB
FFFFFFFF
FFFFFFFF
mapping:
H: header
T: content_top
C: content
B: content_bottom
F: footer
direct_publication: '%kernel.debug%'
catch_exceptions:
not_found: [404] # render 404 page with "not_found" key (name generated: _page_internal_error_{key})
fatal: [500] # so you can use the same page for different http errors or specify specific page for each error

View File

@@ -0,0 +1,3 @@
sonata_page_exceptions:
resource: '@SonataPageBundle/Resources/config/routing/exceptions.xml'
prefix: /

View File

@@ -0,0 +1,9 @@
{
"bundles": {
"Sonata\\PageBundle\\SonataPageBundle": ["all"]
},
"copy-from-recipe": {
"config/": "%CONFIG_DIR%/",
"src/": "%SRC_DIR%/"
}
}

View File

@@ -0,0 +1,7 @@
* Your Page is almost ready:
1. Generate a migration for Sonata Page Database <info>php bin/console doctrine:migrations:diff</info>
2. Apply the migration generated <info>php bin/console doctrine:migrations:migrate --no-interaction</info>
3. Create your first site: <info>bin/console sonata:page:create-site --enabled --name=localhost --locale=- --host=localhost --relativePath=- --enabledFrom=now --enabledTo=- --default</info>
<comment>Now you can create your first page at <info>/admin</info></comment>
* <fg=blue>Documentation</> <comment>https://docs.sonata-project.org/projects/SonataPageBundle/en/4.x/</comment>

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Sonata\PageBundle\Entity\BaseBlock;
#[ORM\Entity]
#[ORM\Table(name: 'page__block')]
class SonataPageBlock extends BaseBlock
{
#[ORM\Id]
#[ORM\Column(type: Types::INTEGER)]
#[ORM\GeneratedValue]
protected $id;
}

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Sonata\PageBundle\Entity\BasePage;
#[ORM\Entity]
#[ORM\Table(name: 'page__page')]
class SonataPagePage extends BasePage
{
#[ORM\Id]
#[ORM\Column(type: Types::INTEGER)]
#[ORM\GeneratedValue]
protected $id;
}

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Sonata\PageBundle\Entity\BaseSite;
#[ORM\Entity]
#[ORM\Table(name: 'page__site')]
class SonataPageSite extends BaseSite
{
#[ORM\Id]
#[ORM\Column(type: Types::INTEGER)]
#[ORM\GeneratedValue]
protected $id;
}

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Sonata\PageBundle\Entity\BaseSnapshot;
#[ORM\Entity]
#[ORM\Table(name: 'page__snapshot')]
class SonataPageSnapshot extends BaseSnapshot
{
#[ORM\Id]
#[ORM\Column(type: Types::INTEGER)]
#[ORM\GeneratedValue]
protected $id;
}