glavweb / framework-bundle
Framework helpers for Glavweb projects (DQL, makers, utils)
Package info
github.com/glavweb/GlavwebFrameworkBundle
Type:symfony-bundle
pkg:composer/glavweb/framework-bundle
Requires
- php: >=8.4
- doctrine/orm: ^3.3
- glavweb/extra-bundle: ^1.0
- symfony/http-kernel: ^8.0
- symfony/security-bundle: ^8.0
- symfony/validator: ^8.0
- twig/twig: ^3.0
Requires (Dev)
None
Suggests
- gedmo/doctrine-extensions: Required when using SortablePositionTrait
- symfony/maker-bundle: Required for make:manager and make:repository
Provides
None
Conflicts
None
Replaces
None
README
Верхний слой Glavweb-приложения: DQL, DBAL, utils, маркеры сущностей, make:manager / make:repository.
Нижние бандлы (admin, extra, uploader, datagrid, data-schema) не зависят от этого пакета; api-bundle — зависит.
User
Сущность User, токены, менеджеры — в проекте. Бандл даёт только контракт:
use Glavweb\FrameworkBundle\Entity\UserEntityInterface; // getId(), isEnabled() + Symfony UserInterface
UserEntityInterface — цель doctrine.orm.resolve_target_entities, поэтому общие traits могут ссылаться на пользователя,
не зная проектного класса:
# config/packages/glavweb_framework.yaml glavweb_framework: user_class: App\Entity\User\User # default check_user_listener: true # default; разлогин заблокированного (isEnabled() === false) на kernel.response
Archivable + archivedBy
use Glavweb\FrameworkBundle\Entity\ArchivedByAware; use Glavweb\FrameworkBundle\Entity\ArchivedByAwareTrait; class Article implements ArchivedByAware // extends Archivable { use ArchivedByAwareTrait; // archivedAt + archivedBy → UserEntityInterface → user_class }
Только дата без автора: Archivable + ArchivableTrait.
ArchiveManager::archive() проставляет archivedBy, если сущность instanceof ArchivedByAware.