We always have a requirement to get value from `core_config_data` table in Magento 2. Magento uses ScopeConfigInterface to read config values from database located at /vendor/magento/framework/App/Config/ScopeConfigInterface.php. Do navigate this file to understand it better.
Method defined in the ScopeConfigInterface uses the Scope type as a parameter where ‘default’ is the default scope type. ScopeInterface located at /vendor/magento/module-store/Model/ScopeInterface.php have Scope Types available in the Magento as follows :
/**#@+ * Scope types */ const SCOPE_STORES = 'stores'; const SCOPE_GROUPS = 'groups'; const SCOPE_WEBSITES = 'websites'; const SCOPE_STORE = 'store'; const SCOPE_GROUP = 'group'; const SCOPE_WEBSITE = 'website'; /**#@-*/
Best example to check is the Magento own Model class.
/vendor/magento/module-cms/Model/GetUtilityPageIdentifiers.php
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Cms\Model; use Magento\Cms\Api\GetUtilityPageIdentifiersInterface; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Store\Model\ScopeInterface; /** * Utility Cms Pages */ class GetUtilityPageIdentifiers implements GetUtilityPageIdentifiersInterface { /** * @var ScopeConfigInterface */ private $scopeConfig; /** * UtilityCmsPage constructor. * @param ScopeConfigInterface $scopeConfig */ public function __construct( ScopeConfigInterface $scopeConfig ) { $this->scopeConfig = $scopeConfig; } /** * Get List Page Identifiers * @return array */ public function execute() { $homePageIdentifier = $this->scopeConfig->getValue( 'web/default/cms_home_page', ScopeInterface::SCOPE_STORE ); $noRouteIdentifier = $this->scopeConfig->getValue( 'web/default/cms_no_route', ScopeInterface::SCOPE_STORE ); $noCookieIdentifier = $this->scopeConfig->getValue( 'web/default/cms_no_cookies', ScopeInterface::SCOPE_STORE ); return [$homePageIdentifier, $noRouteIdentifier, $noCookieIdentifier]; } }