/** * Get available formatters. * * @return array */ public function getFormatters() { if (null === self::$formatters) { self::$formatters = array(); $DS = DIRECTORY_SEPARATOR; $pattern = implode($DS, array(__DIR__, 'Formatter', '*', '*', 'Formatter.php')); // check if mwbse is installed via composer if (strpos($pattern, 'vendor' . $DS . 'mysql-workbench-schema-exporter' . $DS) !== false) { $pattern = str_replace('mysql-workbench-schema-exporter' . $DS . 'mysql-workbench-schema-exporter' . $DS, 'mysql-workbench-schema-exporter' . $DS . '*' . $DS, $pattern); } foreach (glob($pattern) as $filename) { $dirs = explode(DIRECTORY_SEPARATOR, dirname(realpath($filename))); $subVendor = array_pop($dirs); $vendor = array_pop($dirs); $formatter = strtolower(implode('-', array($vendor, $subVendor))); $formatterClass = sprintf('\\MwbExporter\\Formatter\\%s\\%s\\Formatter', $vendor, $subVendor); self::$formatters[$formatter] = $formatterClass; } if ($position = strpos(__DIR__, 'vendor' . $DS . 'mysql-workbench-schema-exporter' . $DS)) { // possibly executed via composer. There might be more exporters in the current project $currentProject = substr(__DIR__, 0, $position); $pattern = implode($DS, array($currentProject, 'lib', 'MwbExporter', 'Formatter', '*', '*', 'Formatter.php')); foreach (glob($pattern) as $filename) { $dirs = explode(DIRECTORY_SEPARATOR, dirname(realpath($filename))); $subVendor = array_pop($dirs); $vendor = array_pop($dirs); $formatter = strtolower(implode('-', array($vendor, $subVendor))); $formatterClass = sprintf('\\MwbExporter\\Formatter\\%s\\%s\\Formatter', $vendor, $subVendor); self::$formatters[$formatter] = $formatterClass; } } } return self::$formatters; }
/** * Get available formatters. * * @return array */ public function getFormatters() { if (null === self::$formatters) { self::$formatters = array(); $pattern = implode(DIRECTORY_SEPARATOR, array(__DIR__, 'Formatter', '*', '*', 'Formatter.php')); foreach (glob($pattern) as $filename) { $dirs = explode(DIRECTORY_SEPARATOR, dirname(realpath($filename))); $subVendor = array_pop($dirs); $vendor = array_pop($dirs); $formatter = strtolower(implode('-', array($vendor, $subVendor))); $formatterClass = sprintf('\\MwbExporter\\Formatter\\%s\\%s\\Formatter', $vendor, $subVendor); self::$formatters[$formatter] = $formatterClass; } } return self::$formatters; }