* @since 2.0 */ class MimeTypeController extends Controller { /** * @param string $outFile the file to update. Defaults to @yii/helpers/mimeTypes.php */ public function actionIndex($outFile = null) { if ($outFile === null) { $outFile = Yii::getAlias('@yii/helpers/mimeTypes.php'); } $this->stdout('downloading mime-type file from apache httpd repository...'); if ($content = file_get_contents('http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?view=co')) { $this->stdout("done.\n", Console::FG_GREEN); $this->stdout("generating file $outFile..."); $mimeMap = []; foreach(explode("\n", $content) as $line) { $line = trim($line); if (empty($line) || $line[0] == '#') { // skip comments and empty lines continue; } $parts = preg_split('/\s+/', $line); $mime = array_shift($parts); foreach($parts as $ext) { if (!empty($ext)) { $mimeMap[$ext] = $mime; } } } ksort($mimeMap); $array = VarDumper::export($mimeMap); $content = <<stdout("done.\n", Console::FG_GREEN); } else { $this->stderr("Failed to download mime.types file from apache SVN.\n"); } } }