22
33namespace FOS \MessageBundle \DependencyInjection ;
44
5+ use FOS \MessageBundle \Util \LegacyFormHelper ;
56use Symfony \Component \Config \Definition \Processor ;
67use Symfony \Component \DependencyInjection \Reference ;
78use Symfony \Component \HttpKernel \DependencyInjection \Extension ;
@@ -23,6 +24,7 @@ public function load(array $configs, ContainerBuilder $container)
2324 if (!in_array (strtolower ($ config ['db_driver ' ]), array ('orm ' , 'mongodb ' ))) {
2425 throw new \InvalidArgumentException (sprintf ('Invalid db driver "%s". ' , $ config ['db_driver ' ]));
2526 }
27+
2628 $ loader ->load (sprintf ('%s.xml ' , $ config ['db_driver ' ]));
2729 $ loader ->load ('config.xml ' );
2830 $ loader ->load ('form.xml ' );
@@ -51,10 +53,34 @@ public function load(array $configs, ContainerBuilder $container)
5153 $ container ->setAlias ('fos_message.spam_detector ' , $ config ['spam_detector ' ]);
5254 $ container ->setAlias ('fos_message.twig_extension ' , $ config ['twig_extension ' ]);
5355
54- $ container ->setAlias ('fos_message.new_thread_form.type ' , $ config ['new_thread_form ' ]['type ' ]);
56+ // BC management
57+ $ newThreadFormType = $ config ['new_thread_form ' ]['type ' ];
58+ $ replyFormType = $ config ['reply_form ' ]['type ' ];
59+
60+ if (!class_exists ($ newThreadFormType )) {
61+ @trigger_error ('Using a service reference in configuration key "fos_message.new_thread_form.type" is deprecated since version 1.2 and will be removed in 2.0. Use the class name of your form type instead. ' , E_USER_DEPRECATED );
62+
63+ // Old syntax (service reference)
64+ $ container ->setAlias ('fos_message.new_thread_form.type ' , $ newThreadFormType );
65+ } else {
66+ // New syntax (class name)
67+ $ container ->getDefinition ('fos_message.new_thread_form.factory.default ' )
68+ ->replaceArgument (1 , $ newThreadFormType );
69+ }
70+
71+ if (!class_exists ($ replyFormType )) {
72+ @trigger_error ('Using a service reference in configuration key "fos_message.reply_form.type" is deprecated since version 1.2 and will be removed in 2.0. Use the class name of your form type instead. ' , E_USER_DEPRECATED );
73+
74+ // Old syntax (service reference)
75+ $ container ->setAlias ('fos_message.reply_form.type ' , $ replyFormType );
76+ } else {
77+ // New syntax (class name)
78+ $ container ->getDefinition ('fos_message.reply_form.factory.default ' )
79+ ->replaceArgument (1 , $ replyFormType );
80+ }
81+
5582 $ container ->setAlias ('fos_message.new_thread_form.factory ' , $ config ['new_thread_form ' ]['factory ' ]);
5683 $ container ->setAlias ('fos_message.new_thread_form.handler ' , $ config ['new_thread_form ' ]['handler ' ]);
57- $ container ->setAlias ('fos_message.reply_form.type ' , $ config ['reply_form ' ]['type ' ]);
5884 $ container ->setAlias ('fos_message.reply_form.factory ' , $ config ['reply_form ' ]['factory ' ]);
5985 $ container ->setAlias ('fos_message.reply_form.handler ' , $ config ['reply_form ' ]['handler ' ]);
6086
0 commit comments