Curadoria das Novas Funcionalidades Adicionadas no Symfony 4.3

Hoje foi lançada a versão 4.3.0 do Symfony! E, como qualquer outro lançamento de versão menor do Symfony, a compatibilidade com versões anteriores aplica-se, significando que você pode atualizar facilmente para essa nova versão sem alterar nada em seu código.

Até o momento, foram escritos vários artigos sobre os excelentes novos recursos da versão 4.3, mas aqui está uma lista com curadoria das mudanças mais relevantes (essa versão tem um total de 270 novas funcionalidades, pequenas e grandes):

Novos Componentes

  • HttpClient fornece métodos poderosos para obter recursos HTTP de forma síncrona ou assíncrona (nicolas-grekas) #30413
  • Mailer auxilia no envio e-mails (fabpot) #30741
  • Mime permite manipular mensagens MIME (fabpot) #30416 e #29896

Os novos componentes HttpClient, Mailer e Mime são marcados como experimentais na versão 4.3.

O componente Inflector não é mais interno.

Não são realmente novos componentes, mas os Contracts agora estão divididos e disponíveis separadamente: Cache, EventDispatcher, HttpClient, Service e Translation.

Messenger

O componente Messenger ainda está marcado como experimental na versão 4.3.

  • Adiciona transporte para Redis stream (soyuka, alexander-schranz) #30917
  • Adiciona transporte Doctrine (vincenttouzet) #29007
  • Adiciona transporte “in-memory://” (GaryPEGEOT, sroze) #29097
  • Adiciona o comando messenger:stop-workers (weaverryan) #30754
  • Adiciona um comando para configurar transportes (vincenttouzet) #29476
  • Adiciona um transporte “sync” para chamar handlers de forma síncrona (weaverryan) #30759
  • Adiciona suporte a transporte com falha (weaverryan) #30970
  • Introduz suporte ao serialize() nativo ao php para o transporte do Messenger (weaverryan, xabbuh) #29958
  • Use um AmqpStamp para fornecer flags e atributos (sroze) #30913
  • Adiciona um stamp para fornecer uma chave de roteamento na publicação de mensagens (G15N, sroze) #30008
  • Adiciona MessageCountAwareInterface para obter a contagem de mensagens de transporte (weaverryan) #30757
  • Adiciona WorkerStoppedEvent (chalasr) #31282
  • Permite registrar handlers em um transporte específico (sroze) #30958
  • Torna LoggingMiddleware obsoleto em favor de fornecer um logger para SendMessageMiddleware (nicolas-grekas) #30539
  • Adiciona exceção agnóstica de transporte (nikossvnk, lolmx) #30375
  • Torna o serializador configurável por transporte (weaverryan) #30628

Segurança

  • Despacha um evento quando o usuário foi alterado e deslogado da aplicação (Simperfit) #31138
  • Torna BCryptPasswordEncoder obsoleto em favor de NativePasswordEncoder (nicolas-grekas) #31170
  • Adiciona NativePasswordEncoder (nicolas-grekas) #31140
  • Substitui Argon2*PasswordEncoder por SodiumPasswordEncoder (chalasr) #31019
  • Adiciona Argon2idPasswordEncoder (chalasr) #30968
  • Torna obsoletas as classes Role e SwitchUserRole (xabbuh) #22048
  • Substitui a API de serialização (renanbr) #30052

Intl

  • Adiciona Fusos Horários (ro0NL) #28831
  • Simplifica a API (ro0NL) #28846
  • Torna países compatíveis com a norma ISO 3166 (ro0NL) #31365
  • Renomeia Regions para Countries (ro0NL) #31350
  • Adiciona utilitários de deslocamento de fuso horário (ro0NL) #31295

Validador

  • Adiciona um validador de senha NotCompromisedPassword (dunglas) #27738
  • Validação automática de dados (dunglas) #27735
  • Adiciona novo validador JSON (zairigimad) #28477
  • Adiciona nova constraint de validação de Timezone (phansys) #30900
  • Permite fusos horários intl (ro0NL) #31292
  • Adiciona constraints de número (jschaedl) #28637
  • Adiciona constraint para coleção de elementos únicos (Assert\Unique) (zenmate, nicolas-grekas) #26555
  • Adiciona esquema de cartão MIR (antonch1989) #30377
  • Adiciona suporte para validação de cartão UATP (raulfraile) #29504
  • NotBlank: adiciona uma nova opção para permitir valores nulos (dunglas) #29641
  • Verifica um BIC juntamente com um IBAN (sylfabre) #28479

Workflow

  • Adiciona suporte a vários lugares iniciais (lyrixx) #30468
  • Adiciona um contexto para Workflow::apply() (lyrixx) #29146
  • Adiciona cores para dumps de fluxo de trabalho (alexislefebvre) #29538
  • O TransitionEvent é capaz de modificar o contexto (lyrixx) #30902
  • Adiciona função twig workflow_transition_blockers (lyrixx) #30908
  • Altera initial_places para initial_marking, propriedade adicionada (HeahDude, lyrixx) #30890
  • Trigger entered event para o assunto que entra no fluxo de trabalho pela primeira vez (lyrixx) #29145

Tradutor

  • Adiciona suporte para arquivos PHP com trans() nos comandos de tradução (yceruto) #30120
  • Define fontes ao extrair strings de arquivos PHP (Stadly) #31249
  • Adiciona fontes ao fazer dump de arquivos qt (Stadly) #31248
  • Adiciona comentários ao fazer dump de arquivos po (deguif) #30909
  • Adicionar fonte XLIFF 1 aos metadados para diferenciar de attr (ostrolucky) #30472
  • Ativa filtros de tradução (ro0NL) #29286
  • Adiciona suporte para caminhos do tradutor, caminhos do Twig e caminhos de serviços que reconhecem o tradutor em comandos (yceruto) #29121
  • Carrega metadados do arquivo original ao carregar arquivos Xliff 1.2 (eternoendless) #29148

Serializer

  • Adiciona normalizador datetimezone (jewome62) #30915
  • CsvEncoder permite codificar/decodificar CSV sem nenhuma opção de cabeçalho (redecs) #29283
  • Fornece nova ObjectPropertyListExtractorInterface (dmaicher) #30904

DomCrawler

  • Usa html5-php opcionalmente para parse de HTML (tgalopin) #29306
  • Retorna string vazia em vez de uma exceção em Crawler::text() e Crawler::html() (respinoza) #28581
  • Adiciona retorno do nome do elemento no método extract() (andrey-helldar) #29127

Console

  • Adiciona dumper (ro0NL) #28898
  • Adiciona sugestões para pacotes perdidos (przemyslaw-bogusz) #29865
  • Adiciona suporte a callback no autocompletar do ConsoleQuestion (Mikkel Paulson) #30997
  • Adiciona um método de iteração à classe ProgressBar (jvasseur) #29753
  • Adiciona suporte a hyperlinks (ostrolucky) #29168

VarDumper

  • Adiciona caster para instâncias WeakReference do PHP 7.4 (nicolas-grekas) #31130
  • Adiciona link à fonte ao lado dos nomes de classe (nicolas-grekas) #30301
  • Adiciona caster para recursos OpenSSL X.509 (nicolas-grekas) #29821
  • Usa hyperlinks em CliDescriptor (ogizanagi) #29613
  • Adiciona suporte para links em CliDumper (nicolas-grekas) #29235

HttpKernel

  • Adiciona RealHttpKernel: manipula requisições com HttpClientInterface (fabpot) #30625
  • Evita que os mecanismos de pesquisa indexem aplicações dev (GaryPEGEOT) #30325
  • Adiciona um formato header “short” trace para HttpCache, torna o header configurável (mpdude) #30964

DependencyInjection

  • Adiciona um processador env var “ require” (mpdude) #30897
  • Adiciona um processador env var “trim” (ogizanagi) #29781
  • Adiciona um processador env var “default” (jderusse) #28976
  • Substitui o processador env var “ nullable”, melhorando o “default” (nicolas-grekas) #30504
  • Adiciona suporte para métodos “ wither” — para serviços imutáveis ​​(nicolas-grekas) #30212
  • ServiceProviderInterface, implementação para ServiceLocator (kejwmen) #25707
  • Torna obsoletas envs padrão não string (ro0NL) #27808
  • Adiciona um url EnvProcessor (jderusse) #28975
  • Adiciona ReverseContainer: um localizador que transforma serviços de volta para seus ids (nicolas-grekas) #30334
  • Adicionar suporte para tornar aliases obsoletos (j92, Renan) #29968
  • Serviços Factory Invocáveis ​​(zanbaldwin) #30255
  • Adiciona informações sobre aliases obsoletos em debug:autowiring (XuruDragon) #30075

Form

  • Adiciona row_attr ao form theme (alexander-schranz) #30320
  • Add help_html (mpiot) #29861
  • Adiciona opções label_translation_parameters, help_translation_parameters e attr_translation_parameters para base do form type (webnet-fr) #28635
  • Adiciona prefixo de bloco ao campo de token CSRF (alexander-schranz) #29862
  • Permite definir atributos de label declarados em label_attr (AngelFQC) #31220
  • Adiciona a opção intl/choice_translation_locale ao TimezoneType (ro0NL) #31294
  • Mantêm a ordem de escolha preferida em ChoiceType (vudaltsov) #30985
  • Remove o agrupamento de opções padrão em TimezoneType (ro0NL) #31293
  • Adiciona entrada intltimezone ao TimezoneType (ro0NL) #31195
  • Adicione links de arquivo para classes descritas no comando debug: form (yceruto) #30826
  • Mostrar todos os normalizadores de opção no comando debug:form (yceruto) #31082
  • TransformationFailedException: Suporte para especificar a mensagem a ser exibida (ogizanagi) #20978
  • Permite desativar e personalizar o símbolo PercentType (Ken Stanley, OskarStark) #30433
  • Permite especificar o formato de entrada para os horários (xabbuh) #30358
  • Torna obsoletos formatos personalizados com widgets HTML5 (xabbuh) #28723
  • Adiciona opção para renderizar NumberType como type=“number” (xabbuh) #30267
  • Adiciona opção input_format a DateType e DateTimeType (fancyweb) #29887
  • Adiciona um método de conveniência para obter o formulário pai em templates Twig (xabbuh) #28812
  • Torna obsoletas algumas opções para widgets single_text (xabbuh) #28721
  • Adiciona nova opção block_prefix para um tema de form fácil (yceruto) #29680
  • Adiciona a opção “input” para NumberType (fancyweb, Bernhard Schussek) #30893

Routing

  • Expõe a opção “utf8”, padrões “locale” e “format” na configuração (Jules Pietri) #30508
  • Não codifica vírgula em query e fragment (Tobion) #31134
  • Permite serviços de carregador de rota invocáveis ​​(fancyweb) #30933
  • UrlHelper para obter URL absoluta para um caminho (vudaltsov) #30862
  • Permite parâmetros de container booleano para rotas (dmaicher) #30379
  • Permite o uso de matchers e geradores compilados sem dump de código PHP (nicolas-grekas) #28865
  • Permite a geração forçada de parâmetros finais usando, por exemplo, “/exports/news.{!_format}” (zavulon) #29599

Inflector

  • Remove o marcador “internal” do componente (nicolas-grekas) #30810
  • Suporte para pluralização no inflector (mbabker) #26890

Cache

  • Torna obsoletos todos os adaptadores PSR-16, fornece Psr16Cache em vez disso (nicolas-grekas) #29236
  • Adiciona adaptadores FileSystem & Redis TagAware otimizados (andrerom) #30370
  • Adiciona comando para listar todos os pools de cache disponíveis (Nyholm) #31021
  • Adiciona suporte a DSN para redis no AbstractAdapter e RedisTrait (alex-vasilchenko-md) #30605

Diversos

  • [FrameworkBundle] Torna obsoleta a integração do componente Templating (dunglas, fabpot) #21035
  • Novas assertions PHPUnit para o WebTestCase (Pierstoval, fabpot) #30813
  • [BrowserKit] Adiciona suporte para HttpClient (fabpot, THERAGE Kévin) #30602
  • [BrowserKit] Renomeia Client para Browser (fabpot) #30541
  • [Lock] Adicionado MongoDBStore (Joe Bennett) #27648
  • [Lock] Use variável env para criar qualquer tipo de armazenamento de bloqueio (jderusse) #30935
  • [Dotenv] Torna obsoleto o uso de “putenv” (Nyholm) #31062
  • [TwigBridge] Adiciona link para arquivo de template ao comando debug:twig (yceruto) #30827
  • [Config] Trona obsoleto TreeBuilder::root (gharlan) #31027
  • [MonologBridge] Adiciona processadores monolog adicionando informações de rota e comando (trakos) #28330
  • [MonologBridge] Desativa o DebugLogger no CLI (lyrixx) #30339
  • [WebProfilerBundle] Adiciona funcionalidade Pretty Print para Request Content (SamFleming) #28919
  • [WebProfilerBundle] Renderiza o gráfico de desempenho com SVG (Tom32i) #30450
  • [OptionsResolver] Adicionar um novo método addNormalizer e hierarquia de normalização (yceruto) #30371
  • [Ldap] Implementa paginação (kevans91) #29495
  • [Ldap] Suporte ao entry move (kevans91) #29448
  • [Finder] Lança uma exceção dedicada para diretório não existente (xelan) #30744
  • [Finder] Ignora caminhos do .gitignore #26714 (amaabdou) #30448
  • [EventDispatcher] Troca argumentos do dispatch() para permitir registrar eventos por FQCN (nicolas-grekas) #28920
  • [Debug] Imita o comportamento do__toString do php em FlattenException (Deltachaos) #28879
  • [Debug] Mostrar mais detalhes na página de erro simples de Debug (javiereguiluz) #30024
  • [PropertyInfo] Adiciona possibilidade de extrair propriedades privadas e protegidas no extrator reflection (joelwurtz) #30706
  • [ Filesystem] Suporta recursos e torna obsoleto o uso de arrays em dumpFile() e appendToFile() (thewilkybarkid) #29661

Tradução de: Symfony 4.3 curated new features