* @copyright 2007-2019 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ use PrestaShop\PrestaShop\Core\ConfigurationInterface; abstract class AbstractAssetManagerCore { protected $directories; protected $configuration; protected $list = array(); const DEFAULT_MEDIA = 'all'; const DEFAULT_PRIORITY = 50; const DEFAULT_JS_POSITION = 'bottom'; use PrestaShop\PrestaShop\Adapter\Assets\AssetUrlGeneratorTrait; public function __construct(array $directories, ConfigurationInterface $configuration) { $this->directories = $directories; $this->configuration = $configuration; $this->list = $this->getDefaultList(); } abstract protected function getDefaultList(); abstract protected function getList(); protected function getFullPath($relativePath) { foreach ($this->getDirectories() as $baseDir) { $fullPath = $baseDir . ltrim($relativePath, '/'); // not DIRECTORY_SEPARATOR because, it's path included manualy if (file_exists($this->getPathFromUri($fullPath))) { return $fullPath; } } return false; } private function getDirectories() { static $directories; if (null === $directories) { foreach ($this->directories as $baseDir) { if (!empty($baseDir)) { $directories[] = $baseDir; } } } return $directories; } }