1*c3437056SNickeau<?php 2*c3437056SNickeau 3*c3437056SNickeau 4*c3437056SNickeaunamespace ComboStrap; 5*c3437056SNickeau 6*c3437056SNickeau 7*c3437056SNickeauuse renderer_plugin_combo_analytics; 8*c3437056SNickeau 9*c3437056SNickeauabstract class PathAbs implements Path 10*c3437056SNickeau{ 11*c3437056SNickeau 12*c3437056SNickeau 13*c3437056SNickeau public function getExtension() 14*c3437056SNickeau { 15*c3437056SNickeau return pathinfo($this->getLastName(), PATHINFO_EXTENSION); 16*c3437056SNickeau } 17*c3437056SNickeau 18*c3437056SNickeau /** 19*c3437056SNickeau * 20*c3437056SNickeau * @return Mime based on the {@link PathAbs::getExtension()} 21*c3437056SNickeau */ 22*c3437056SNickeau public function getMime(): ?Mime 23*c3437056SNickeau { 24*c3437056SNickeau $extension = $this->getExtension(); 25*c3437056SNickeau switch ($extension) { 26*c3437056SNickeau case ImageSvg::EXTENSION: 27*c3437056SNickeau /** 28*c3437056SNickeau * Svg is authorized when viewing but is not part 29*c3437056SNickeau * of the {@link File::getKnownMime()} 30*c3437056SNickeau */ 31*c3437056SNickeau return new Mime(Mime::SVG); 32*c3437056SNickeau case JavascriptLibrary::EXTENSION: 33*c3437056SNickeau return new Mime(Mime::JAVASCRIPT); 34*c3437056SNickeau case renderer_plugin_combo_analytics::RENDERER_NAME_MODE: 35*c3437056SNickeau case Json::EXTENSION: 36*c3437056SNickeau return new Mime(Mime::JSON); 37*c3437056SNickeau case "txt": 38*c3437056SNickeau return new Mime(Mime::PLAIN_TEXT); 39*c3437056SNickeau case "xhtml": 40*c3437056SNickeau case "html": 41*c3437056SNickeau return new Mime(Mime::HTML); 42*c3437056SNickeau case "png": 43*c3437056SNickeau return new Mime(Mime::PNG); 44*c3437056SNickeau default: 45*c3437056SNickeau $mime = mimetype($this->getLastName(), true)[1]; 46*c3437056SNickeau if ($mime === null || $mime === false) { 47*c3437056SNickeau return null; 48*c3437056SNickeau } 49*c3437056SNickeau return new Mime($mime); 50*c3437056SNickeau } 51*c3437056SNickeau } 52*c3437056SNickeau 53*c3437056SNickeau public function getLastNameWithoutExtension() 54*c3437056SNickeau { 55*c3437056SNickeau return pathinfo($this->getLastName(), PATHINFO_FILENAME); 56*c3437056SNickeau } 57*c3437056SNickeau 58*c3437056SNickeau public function __toString() 59*c3437056SNickeau { 60*c3437056SNickeau return $this->toString(); 61*c3437056SNickeau } 62*c3437056SNickeau 63*c3437056SNickeau 64*c3437056SNickeau} 65