ruwork/polyfill-form-dti

Symfony 表单 polyfill,为日期类型添加 input=datetime_immutable。

0.2.1 2018-02-16 15:21 UTC

This package is auto-updated.

Last update: 2024-09-12 07:06:59 UTC


README

GitHub license Travis branch Codecov branch Packagist

此包是我为 pull request 添加 input=datetime_immutable 选项到 Symfony 日期和时间段表单类型的 polyfill。

与 PHP >=5.5 和 Symfony >=2.8 兼容。

如果你使用 Symfony 框架,请查看相应的 ruwork/polyfill-form-dti-bundle

安装

composer require ruwork/polyfill-form-dti

使用

<?php

use Ruwork\PolyfillFormDTI\DTIExtension;
use Ruwork\PolyfillFormDTI\Guesser\DoctrineOrmDTIGuesser;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Forms;

/** @var \Doctrine\Common\Persistence\ManagerRegistry $registry */

$factory = Forms::createFormFactoryBuilder()
    ->addExtension(new DTIExtension())
    // Optionally you can add a Doctrine ORM guesser
    // to guess input=datetime_immutable for Doctrine 2.6 immutable date types. 
    ->addTypeGuesser(new DoctrineOrmDTIGuesser($registry))
    ->getFormFactory();

$form = $factory
    ->createBuilder(FormType::class, [
        'datetime' => new \DateTimeImmutable('1828-09-09 12:00:00'),
        'date' => new \DateTimeImmutable('1860-01-29'),
        'time' => new \DateTimeImmutable('23:59'),
    ])
    ->add('datetime', DateTimeType::class, [
        'input' => 'datetime_immutable',
    ])
    ->add('date', DateType::class, [
        'input' => 'datetime_immutable',
    ])
    ->add('time', TimeType::class, [
        'input' => 'datetime_immutable',
    ])
    ->getForm();

测试

vendor/bin/simple-phpunit