diff --git a/uc_cart/lib/Drupal/uc_cart/Controller/CheckoutController.php b/uc_cart/lib/Drupal/uc_cart/Controller/CheckoutController.php index a684c03..36f65c2 100644 --- a/uc_cart/lib/Drupal/uc_cart/Controller/CheckoutController.php +++ b/uc_cart/lib/Drupal/uc_cart/Controller/CheckoutController.php @@ -8,12 +8,41 @@ namespace Drupal\uc_cart\Controller; use Drupal\Core\Controller\ControllerBase; +use Drupal\Core\DependencyInjection\ContainerInjectionInterface; +use Drupal\uc_cart\Plugin\CheckoutPaneManager; +use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; /** * Controller routines for the checkout. */ -class CheckoutController extends ControllerBase { +class CheckoutController extends ControllerBase implements ContainerInjectionInterface { + + /** + * The checkout pane manager. + * + * @var \Drupal\uc_cart\Plugin\CheckoutPaneManager + */ + protected $checkoutPaneManager; + + /** + * Constructs a CheckoutController. + * + * @param \Drupal\uc_cart\Plugin\CheckoutPaneManager $checkout_pane_manager + * The checkout pane plugin manager. + */ + public function __construct(CheckoutPaneManager $checkout_pane_manager) { + $this->checkoutPaneManager = $checkout_pane_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.uc_cart.checkout_pane') + ); + } /** * Displays the cart checkout page built of checkout panes from enabled modules. @@ -147,7 +176,7 @@ class CheckoutController extends ControllerBase { $filter['shippable'] = TRUE; } - $panes = $this->container()->get('plugin.manager.uc_cart.checkout_pane')->getDefinitions($filter); + $panes = $this->checkoutPaneManager->getDefinitions($filter); foreach ($panes as $pane) { $return = $pane['callback']('review', $order, NULL); if (!is_null($return)) { diff --git a/uc_cart/lib/Drupal/uc_cart/Form/CheckoutForm.php b/uc_cart/lib/Drupal/uc_cart/Form/CheckoutForm.php index f02c190..aecad37 100644 --- a/uc_cart/lib/Drupal/uc_cart/Form/CheckoutForm.php +++ b/uc_cart/lib/Drupal/uc_cart/Form/CheckoutForm.php @@ -8,6 +8,8 @@ namespace Drupal\uc_cart\Form; use Drupal\Core\Form\FormBase; +use Drupal\uc_cart\Plugin\CheckoutPaneManager; +use Symfony\Component\DependencyInjection\ContainerInterface; /** * The checkout form built up from the enabled checkout panes. @@ -15,6 +17,32 @@ use Drupal\Core\Form\FormBase; class CheckoutForm extends FormBase { /** + * The checkout pane manager. + * + * @var \Drupal\uc_cart\Plugin\CheckoutPaneManager + */ + protected $checkoutPaneManager; + + /** + * Constructs a CheckoutController. + * + * @param \Drupal\uc_cart\Plugin\CheckoutPaneManager $checkout_pane_manager + * The checkout pane plugin manager. + */ + public function __construct(CheckoutPaneManager $checkout_pane_manager) { + $this->checkoutPaneManager = $checkout_pane_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static( + $container->get('plugin.manager.uc_cart.checkout_pane') + ); + } + + /** * {@inheritdoc} */ public function getFormId() { @@ -43,7 +71,7 @@ class CheckoutForm extends FormBase { $filter['shippable'] = TRUE; } - $panes = $this->container()->get('plugin.manager.uc_cart.checkout_pane')->createInstances($filter); + $panes = $this->checkoutPaneManager->createInstances($filter); // Invoke the 'prepare' op of enabled panes, but only if their 'process' ops // have not been invoked on this request (i.e. when rebuilding after AJAX). @@ -106,7 +134,7 @@ class CheckoutForm extends FormBase { // Validate/process the cart panes. A FALSE value results in failed checkout. $form_state['checkout_valid'] = TRUE; foreach (element_children($form_state['values']['panes']) as $id) { - $pane = $this->container()->get('plugin.manager.uc_cart.checkout_pane')->createInstance($id); + $pane = $this->checkoutPaneManager->createInstance($id); if ($pane->process($order, $form, $form_state) === FALSE) { $form_state['checkout_valid'] = FALSE; } diff --git a/uc_cart/lib/Drupal/uc_cart/Form/CheckoutSettingsForm.php b/uc_cart/lib/Drupal/uc_cart/Form/CheckoutSettingsForm.php index 1dbe4da..251739b 100644 --- a/uc_cart/lib/Drupal/uc_cart/Form/CheckoutSettingsForm.php +++ b/uc_cart/lib/Drupal/uc_cart/Form/CheckoutSettingsForm.php @@ -156,8 +156,7 @@ class CheckoutSettingsForm extends ConfigFormBase { '#states' => $anon_state, ); - $manager = $this->container()->get('plugin.manager.uc_cart.checkout_pane'); - $panes = $manager->getDefinitions(); + $panes = $this->checkoutPaneManager->getDefinitions(); $form['checkout']['panes'] = array( '#type' => 'table', '#header' => array(t('Pane'), t('List position')), @@ -187,7 +186,7 @@ class CheckoutSettingsForm extends ConfigFormBase { ); $form['checkout']['panes'][$id]['#weight'] = variable_get('uc_pane_' . $id . '_weight', $pane['weight']); - $pane_settings = $manager->createInstance($id)->settingsForm(); + $pane_settings = $this->checkoutPaneManager->createInstance($id)->settingsForm(); if (!empty($pane_settings)) { $form['pane_' . $id] = $pane_settings + array( '#type' => 'details',