<?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; } }