<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\NewRelicReporting\Model;
use Magento\Catalog\Api\ProductManagementInterface;
use Magento\Catalog\Model\Product\Attribute\Source\Status;
use Magento\ConfigurableProduct\Api\ConfigurableProductManagementInterface;
use Magento\Catalog\Api\CategoryManagementInterface;
use Magento\Customer\Api\CustomerManagementInterface;
use Magento\Store\Api\WebsiteManagementInterface;
use Magento\Store\Api\StoreManagementInterface;
class Counter
{
/**
* @var ProductManagementInterface
*/
protected $productManagement;
/**
* @var ConfigurableProductManagementInterface
*/
protected $configurableManagement;
/**
* @var CategoryManagementInterface
*/
protected $categoryManagement;
/**
* @var CustomerManagementInterface
*/
protected $customerManagement;
/**
* @var WebsiteManagementInterface
*/
protected $websiteManagement;
/**
* @var StoreManagementInterface
*/
protected $storeManagement;
/**
* Constructor
*
* @param ProductManagementInterface $productManagement
* @param ConfigurableProductManagementInterface $configurableManagement
* @param CategoryManagementInterface $categoryManagement
* @param CustomerManagementInterface $customerManagement
* @param WebsiteManagementInterface $websiteManagement
* @param StoreManagementInterface $storeManagement
*/
public function __construct(
ProductManagementInterface $productManagement,
ConfigurableProductManagementInterface $configurableManagement,
CategoryManagementInterface $categoryManagement,
CustomerManagementInterface $customerManagement,
WebsiteManagementInterface $websiteManagement,
StoreManagementInterface $storeManagement
) {
$this->productManagement = $productManagement;
$this->configurableManagement = $configurableManagement;
$this->categoryManagement = $categoryManagement;
$this->customerManagement = $customerManagement;
$this->websiteManagement = $websiteManagement;
$this->storeManagement = $storeManagement;
}
/**
* Get count of all products, no conditions
*
* @return int
*/
public function getAllProductsCount()
{
$count = $this->productManagement->getCount();
return (int)$count;
}
/**
* Get count of configurable products
*
* @return int
*/
public function getConfigurableCount()
{
$count = $this->configurableManagement->getCount();
return (int)$count;
}
/**
* Get count of products which are active
*
* @return int
*/
public function getActiveCatalogSize()
{
$count = $this->productManagement->getCount(Status::STATUS_ENABLED);
return (int)$count;
}
/**
* Get count of categories, minus one which is the root category
*
* @return int
*/
public function getCategoryCount()
{
$count = $this->categoryManagement->getCount();
return (int)$count;
}
/**
* Get customer count
*
* @return int
*/
public function getCustomerCount()
{
$count = $this->customerManagement->getCount();
return (int)$count;
}
/**
* Get count of websites, minus one to exclude admin website
*
* @return int
*/
public function getWebsiteCount()
{
$count = $this->websiteManagement->getCount();
return (int)$count;
}
/**
* Get count of store views
*
* @return int
*/
public function getStoreViewsCount()
{
$count = $this->storeManagement->getCount();
return (int)$count;
}
}
|