53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace nur\mapper\csv;
 | 
						|
 | 
						|
use nur\b\ValueException;
 | 
						|
 | 
						|
class csv_defaults {
 | 
						|
  const OO_NAME = "ooffice";
 | 
						|
  const OO_SEPARATOR = ",";
 | 
						|
  const OO_ENCLOSURE = "\"";
 | 
						|
  const OO_ESCAPE = "\\";
 | 
						|
  const OO_FLAVOUR = [self::OO_SEPARATOR, self::OO_ENCLOSURE, self::OO_ESCAPE];
 | 
						|
  const OO_ENCODING = "utf-8";
 | 
						|
 | 
						|
  const XL_NAME = "excel";
 | 
						|
  const XL_SEPARATOR = ";";
 | 
						|
  const XL_ENCLOSURE = "\"";
 | 
						|
  const XL_ESCAPE = "\\";
 | 
						|
  const XL_FLAVOUR = [self::XL_SEPARATOR, self::XL_ENCLOSURE, self::XL_ESCAPE];
 | 
						|
  const XL_ENCODING = "cp1252";
 | 
						|
 | 
						|
  const NAME_MAP = [
 | 
						|
    "oo" => self::OO_NAME,
 | 
						|
    "xl" => self::XL_NAME,
 | 
						|
  ];
 | 
						|
 | 
						|
  static final function verifix_name(string $name): string {
 | 
						|
    if (array_key_exists(strtolower($name), self::NAME_MAP)) {
 | 
						|
      $name = self::NAME_MAP[strtolower($name)];
 | 
						|
    }
 | 
						|
    return $name;
 | 
						|
  }
 | 
						|
 | 
						|
  private static function invalid_name(string $name): ValueException {
 | 
						|
    return new ValueException("$name: format CSV invalide");
 | 
						|
  }
 | 
						|
 | 
						|
  static final function get_flavour(string $name): array {
 | 
						|
    switch ($name) {
 | 
						|
    case self::OO_NAME: return self::OO_FLAVOUR;
 | 
						|
    case self::XL_NAME: return self::XL_FLAVOUR;
 | 
						|
    default: throw self::invalid_name($name);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  static final function get_encoding(string $name): string {
 | 
						|
    switch ($name) {
 | 
						|
    case self::OO_NAME: return self::OO_ENCODING;
 | 
						|
    case self::XL_NAME: return self::XL_ENCODING;
 | 
						|
    default: throw self::invalid_name($name);
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |