ProductManagement.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Catalog\Model;
  7. use Magento\Catalog\Api\ProductManagementInterface;
  8. use Magento\Catalog\Model\Product\Attribute\Source\Status;
  9. use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory;
  10. class ProductManagement implements ProductManagementInterface
  11. {
  12. /**
  13. * @var CollectionFactory
  14. */
  15. protected $productsFactory;
  16. /**
  17. * @param CollectionFactory $productsFactory
  18. */
  19. public function __construct(CollectionFactory $productsFactory)
  20. {
  21. $this->productsFactory = $productsFactory;
  22. }
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public function getCount($status = null)
  27. {
  28. $products = $this->productsFactory->create();
  29. /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $products */
  30. switch ($status) {
  31. case Status::STATUS_ENABLED:
  32. $products->addAttributeToFilter('status', Status::STATUS_ENABLED);
  33. break;
  34. case Status::STATUS_DISABLED:
  35. $products->addAttributeToFilter('status', Status::STATUS_DISABLED);
  36. break;
  37. }
  38. return $products->getSize();
  39. }
  40. }