Browse Source

Ran code through PHPCS and fixed standards errors that came up.

Original code passed with flying colors using Code Review module. Ran it
through PHP_CodeSniffer and it found a crazy amount of errors.

Should be fixed now though.
pull/308/head
Andrew Reddin 12 years ago
parent
commit
206079c6ef
  1. 115
      includes/mime_detect.inc
  2. 2108
      tests/MimeClass.test

115
includes/mime_detect.inc

@ -1,126 +1,130 @@
<?php <?php
/** /**
* @file * @file
*
* Replacement for the original islandora MimeClass. * Replacement for the original islandora MimeClass.
* Does essentially the same thing, just using the built in drupal 7 * Does essentially the same thing, just using the built in drupal 7
* mime system. * mime system.
* *
* A nice added bonus is that this new class will put a note in watchdog when * A nice added bonus is that this new class will put a note in watchdog when
* it encounters a filetype it doesnt know. * it encounters a filetype it doesnt know.
*
*/ */
class MimeDetect { class MimeDetect {
private $mime_types; const DEFAULT_MIMETYPE = 'application/octet-stream';
private $ext_types; const DEFAULT_EXTENSION = 'bin';
protected $mimeTypes;
protected $extTypes;
/** /**
* Construtor * Construtor.
*/ */
public function __construct() { public function __construct() {
//Drupal returns the mimetype list as a double assoc array with two entries: // Mimetype list returned as a double assoc array with two entries:
//mimetypes: Integer array of mimetypes // Mimetypes: Integer array of mimetypes
//extensions: Assoc array of extensions // Extensions: Assoc array of extensions
// //
//The extension array can be used as a key to get the value in the mimetypes // Extension array can be used as a key to get mimetypes
//array. // Example if $extensions['png'] == 5, then
// // $mimetypes[5] = 'image/png'
//Example if $extensions['png'] == 5, then $mimetypes[5] = 'image/png' // We want to combine this into 1 array for easy access.
//we want to combine this into 1 array for easy access.
$temp = file_mimetype_mapping(); $temp = file_mimetype_mapping();
$temp_mime_types = $temp['mimetypes']; $temp_mime_types = $temp['mimetypes'];
$temp_mime_ext = $temp['extensions']; $temp_mime_ext = $temp['extensions'];
//free the memory in temp since we don't need it anymore // Free the memory in temp since we don't need it anymore.
unset($temp); unset($temp);
//combine the two arrays into one. // Combine the two arrays into one.
foreach ($temp_mime_ext as $key => $val ) { foreach ($temp_mime_ext as $key => $val) {
$this->mime_types[$key] = $temp_mime_types[$val]; $this->mime_types[$key] = $temp_mime_types[$val];
} }
//flip the mime_type array to make the ext array // Flip the mime_type array to make the ext array.
$this->ext_types = array_flip($this->mime_types); $this->ext_types = array_flip($this->mime_types);
} }
/** /**
* function: getType * For backwards-compatibility with our old mimetype class.
* description: An alias to get_mimetype, *
* for backwards-compatibility with our old mimetype class. * @param string $filename
* Filename to convert to mimetype.
* *
* @param type $filename * @return data
* @return type * Returns a string with the mimetype for the file.
*/ */
function getType($filename) { public function getType($filename) {
return $this->getMimetype($filename); return $this->getMimetype($filename);
} }
/** /**
* function: get_mimetype * Returns a mimetype associated with the file extension of $filename.
* description: returns a mimetype associated with the *
* file extension of $filename * @param string $filename
* The filename we want the mime type of.
* *
* @param type $filename * @param bool $debug
* @param type $debug * Enable or disable debug output mode.
*
* @return string * @return string
* mimetype associated with the file extension of $filename * Mimetype associated with the file extension of $filename.
*/ */
public function getMimetype($filename, $debug = FALSE) { public function getMimetype($filename, $debug = FALSE) {
//the file extension will be the last index in the exploded string // The file extension will be the last index in the exploded string.
$ext = @end(explode('.' , $filename)); $ext = @end(explode('.', $filename));
$ext = strtolower($ext); $ext = strtolower($ext);
//check the array for a predetermined mime type. If not found, add a warning // Check the array for a predetermined mime type.
//to the watch dog and use the system command to get a value // If type not found, add a warning to watchdog.
if (!empty($this->mime_types[$ext])) { if (!empty($this->mime_types[$ext])) {
if (TRUE === $debug) { if (TRUE === $debug) {
$return_type = $this->mime_types[$ext]; $return_type = $this->mime_types[$ext];
return array('mime_type' => $return_type, 'method' => 'from_array'); return array('mime_type' => $return_type, 'method' => 'from_array');
} }
return $this->mime_types[$ext]; return $this->mime_types[$ext];
} }
else { else {
//this file was not in the drupal mime system. // This file was not in the drupal mime system.
//add a line to the watchdog informing us of this incident // Add a line to the watchdog informing us of this incident.
$err_msg = 'Found a file extension not covered in the drupal mime func:'; $err_msg = 'Found a file extension not covered in the drupal mime func:';
watchdog('MimeClass', $err_msg . $ext ); watchdog('MimeClass', $err_msg . $ext);
} }
//by default return application octet stream // By default return application octet stream.
if (TRUE == $debug) { if (TRUE == $debug) {
return array('mime_type' => 'application/octet-stream', 'method' => 'last_resort'); return array('mime_type' => 'application/octet-stream', 'method' => 'last_resort');
} }
return 'application/octet-stream'; return 'application/octet-stream';
} }
/** /**
* function: get_extension * Returns *one* valid file extension for a given $mime_type.
* description: returns *one* valid file extension for a given $mime_type *
* @param string $type
* String containing the mimetype
* *
* @param type $mime_type * @param bool $debug
* @param type $debug * Toggle debug mode on/off
* @return type *
* @return string
* Return the file extension
*/ */
public function getExtension($type, $debug = FALSE) { public function getExtension($type, $debug = FALSE) {
if (!empty($this->ext_types[$type])) { if (!empty($this->ext_types[$type])) {
if (TRUE == $debug) { if (TRUE == $debug) {
return array('extension' => $this->ext_types[$type], 'method' => 'from_array'); return array('extension' => $this->ext_types[$type], 'method' => 'from_array');
} }
return $this->ext_types[$type]; return $this->ext_types[$type];
} }
else{ else {
//return bin by default... this could cause errors if handled incorrectly // Return bin by default. This could cause errors.
//and probably should return false or -1 or something to be handled // Function should return false or -1 or something to be handled.
//client side. // Client side.
if (TRUE == $debug) { if (TRUE == $debug) {
return array('extension' => 'bin', 'method' => 'last_resort'); return array('extension' => 'bin', 'method' => 'last_resort');
} }
@ -129,4 +133,3 @@ class MimeDetect {
} }
} }

2108
tests/MimeClass.test

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save