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);
|
||
|
}
|
||
|
}
|
||
|
}
|