Download the PHP package andanteproject/period-bundle without Composer
On this page you can find all versions of the php package andanteproject/period-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andanteproject/period-bundle
More information about andanteproject/period-bundle
Files in andanteproject/period-bundle
Package period-bundle
Short Description A Symfony Bundle to integrate thephpleague/period into Doctrine and Symfony Form
License MIT
Informations about the package period-bundle
Period Bundle
Symfony Bundle - AndanteProject
A Symfony Bundle to integrate thephpleague/period into Doctrine and Symfony Form.
Requirements
Symfony 5.4-6.x and PHP 8.0.
Install
Via Composer:
Features
- Persist
Period
,Duration
andSequence
on your DB; - Persist
Period
as a JSON field or a doctrine embeddable object effortless (and it is allowed to benull
!!). - Doctrine DQL functions.
- Use
Period
in Symfony Forms its Form Type; - Works like magic ✨.
Basic usage
After install, make sure you have the bundle registered in your symfony bundles list (config/bundles.php
):
This should have been done automagically if you are using Symfony Flex. Otherwise, just register it by yourself.
Doctrine Mapping
The bundle is going to register period
, duration
and sequence
doctrine types to allow you to map Period
, Duration
and Sequence
objects to the database.
These types are going to create a JSON
field on your database. If you want Period
to have a column for startDate
and a separate column for endDate
, check the Embeddable mapping down below.
Embeddable Period Mapping
This is going to create 3 different columns on your database like period_start_date
, period_end_date
and period_boundary_type
instead of a JSON field. If you want to use some different names for yout mapping, check
the configuration of this bundle. ⚠️ PLEASE NOTE: Doctrine v2 does not allow
Embedded Classes to be null
. It's a feature expected in Doctrine v3. But, with some magic under the hood, this
bundle allows you to use nullable
Period
anyway. 👍
Doctrine DQL Functions
No matter the kind of mapping you are using for your Period (type or embedded), you can use these DQL functions to access Period properties:
PERIOD_START_DATE()
to accessperiod.startDate
, likePERIOD_START_DATE(meeting.period)
;PERIOD_END_DATE()
to accessperiod.endDate
, likePERIOD_END_DATE(meeting.period)
;PERIOD_BOUNDARY_TYPE()
to accessperiod.boundaryType
, likePERIOD_BOUNDARY_TYPE(meeting.period)
.
Period Form Type
Use Andante\PeriodBundle\Form\PeriodType
as a Form like you are used to. This bundle is shipped with no form theme, so
it's up to you to build your form theme.
PeriodType Options
default_boundary_type
type: string
default: [)
, allowed values: [)
, (]
, ()
, []
which boundary type to be used if none has been selected via boundary_type_choice
.
boundary_type_choice
type: bool
default: false
Whether to include or not a BoundaryTypeChoiceType
to let the user to choice the BoundaryType. This is false
by
default. To change which boundary type should be use to create the Period
, check out default_boundary_type
option.
start_date_child_name
type: string
default: start
How form child handling startDate
property should be called.
end_date_child_name
type: string
default: end
How form child handling endDate
property should be called.
boundary_type_child_name
type: string
default: boundary
How form child handling boundaryType
property should be called.
start_date_form_type
type: string
default: Symfony\Component\Form\Extension\Core\Type\DateTimeType
Which form type to be used for startDate
property. You can replace it with something custom.
end_date_form_type
type: string
default: Symfony\Component\Form\Extension\Core\Type\DateTimeType
Which form type to be used for endDate
property. You can replace it with something custom.
start_date_options
type: array
default: []
Additional options to be used for the startDate form child.
end_date_options
type: array
default: []
Additional options to be used for the endDate form child.
boundary_type_options
type: array
default: []
Additional options to be used for the boundaryType form child.
allow_null
type: bool
default: true
Additional options to be used for the boundaryType form child.
Configuration (completely optional)
This bundle is build thinking how to save you time and follow best practices as close as possible.
This means you can even ignore to have a andante_period.yml
config file in your application.
However, for whatever reason, use the bundle configuration to change most of the behaviors as your needs.
Built with love ❤️ by AndanteProject team.
All versions of period-bundle with dependencies
symfony/framework-bundle Version ^5.4 || ^6.0
league/period Version ^4.0
doctrine/doctrine-bundle Version ^2.0
symfony/property-access Version ^5.4 || ^6.0
symfony/form Version ^5.4 || ^6.0
symfony/validator Version ^5.4 || ^6.0