-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
[DoctrineBridge] add new DatePointType Doctrine type
#59900
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
DatePointType Doctrine type
DatePointType Doctrine typeDatePointType Doctrine type
|
I can't understand the psalm failures, any help will be appreciated. |
Yes, we avoid the |
|
I fixed the return types. The unit test failures seem unrelated. |
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Outdated
Show resolved
Hide resolved
...ony/Bridge/Doctrine/Tests/DependencyInjection/CompilerPass/RegisterDatePointTypePassTest.php
Show resolved
Hide resolved
...ony/Bridge/Doctrine/Tests/DependencyInjection/CompilerPass/RegisterDatePointTypePassTest.php
Outdated
Show resolved
Hide resolved
6bc479d to
4608390
Compare
|
Note for the DoctrineBundle integration: in addition to adding the type to the DBAL Types registry, this new type should be associated to the |
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Outdated
Show resolved
Hide resolved
src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterDatePointTypePass.php
Outdated
Show resolved
Hide resolved
|
Thank you @garak. |
…Type` and `TimeType` (wkania) This PR was merged into the 7.4 branch. Discussion ---------- [Form] Add `input=date_point` to `DateTimeType`, `DateType` and `TimeType` | Q | A | ------------- | --- | Branch? | 7.4 | Bug fix? | no | New feature? | yes | Deprecations? | no | Issues | | License | MIT Based on [datetime_immutable](https://symfony.com/blog/new-in-symfony-4-1-added-support-for-immutable-dates-in-forms). After [DatePointType](#59900) and [DatePointDateType](#60237), it would be great to use Forms without needing to transform values into the DatePoint type manually. ``` use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\Extension\Core\Type\DateTimeType; use Symfony\Component\Form\Extension\Core\Type\TimeType; use Symfony\Component\Form\Extension\Core\Type\BirthdayType; $builder->add('from', DateType::class, [ 'input' => 'date_point', ]); $builder->add('from', DateTimeType::class, [ 'input' => 'date_point', ]); $builder->add('from', TimeType::class, [ 'input' => 'date_point', ]); $builder->add('from', BirthdayType::class, [ 'input' => 'date_point', ]); ``` Alternative: Make symfony/clock a hard requirement and refactor the existing DateTimeImmutableToDateTimeTransformer to return a DatePoint instead. This should not introduce any breaking changes. Commits ------- f1160d6 [Form] Add input=date_point to DateTimeType, DateType and TimeType
…Type` and `TimeType` (wkania) This PR was merged into the 7.4 branch. Discussion ---------- [Form] Add `input=date_point` to `DateTimeType`, `DateType` and `TimeType` | Q | A | ------------- | --- | Branch? | 7.4 | Bug fix? | no | New feature? | yes | Deprecations? | no | Issues | | License | MIT Based on [datetime_immutable](https://symfony.com/blog/new-in-symfony-4-1-added-support-for-immutable-dates-in-forms). After [DatePointType](symfony/symfony#59900) and [DatePointDateType](symfony/symfony#60237), it would be great to use Forms without needing to transform values into the DatePoint type manually. ``` use Symfony\Component\Form\Extension\Core\Type\DateType; use Symfony\Component\Form\Extension\Core\Type\DateTimeType; use Symfony\Component\Form\Extension\Core\Type\TimeType; use Symfony\Component\Form\Extension\Core\Type\BirthdayType; $builder->add('from', DateType::class, [ 'input' => 'date_point', ]); $builder->add('from', DateTimeType::class, [ 'input' => 'date_point', ]); $builder->add('from', TimeType::class, [ 'input' => 'date_point', ]); $builder->add('from', BirthdayType::class, [ 'input' => 'date_point', ]); ``` Alternative: Make symfony/clock a hard requirement and refactor the existing DateTimeImmutableToDateTimeTransformer to return a DatePoint instead. This should not introduce any breaking changes. Commits ------- f1160d6617f [Form] Add input=date_point to DateTimeType, DateType and TimeType
…Type` Doctrine type (wkania) This PR was merged into the 7.4 branch. Discussion ---------- [DoctrineBridge] Add new `DayPointType` and `TimePointType` Doctrine type | Q | A | ------------- | --- | Branch | 7.4 | Bug fix | no | New feature | yes | Deprecations | no | License | MIT Doctrine provides both [date_immutable](https://www.doctrine-project.org/projects/doctrine-dbal/en/4.2/reference/types.html#date-immutable) and [datetime_immutable](https://www.doctrine-project.org/projects/doctrine-dbal/en/4.2/reference/types.html#datetime-immutable) types. Restricting the conversion of DatePoint only to datetime_immutable is problematic. New version: Previous [pull request](#59900). ```yaml doctrine: dbal: types: date_point: Symfony\Bridge\Doctrine\Types\DatePointType day_point: Symfony\Bridge\Doctrine\Types\DayPointType time_point: Symfony\Bridge\Doctrine\Types\TimePointType ``` ```php #[ORM\Column(type: 'date_point')] public DatePoint $createdAt; #[ORM\Column(type: 'day_point')] public DatePoint $birthday; #[ORM\Column(type: 'time_point')] public DatePoint $openAt; ``` Old version: Therefore, I propose renaming the current DatePointType to DateTimePointType, and introducing a new DatePointType. Previous [pull request](#59900). If this pull request is to be merged, it should be included in version 7.3 to avoid any breaking changes in the future. ```yaml doctrine: dbal: types: date_point: Symfony\Bridge\Doctrine\Types\DatePointType datetime_point: Symfony\Bridge\Doctrine\Types\DateTimePointType ``` ```php #[ORM\Column(type: 'date_point')] public DatePoint $birthday; #[ORM\Column(type: 'datetime_point')] public DatePoint $createdAt; Commits ------- 7f383ef [DoctrineBridge] add new DayPointType and TimePointType Doctrine type
Add a new DoctrineType for the DatePoint class.
Please take a look at the issue mentioned above for more details.