Пример #1
0
 function __construct(\Tracker_Definition $definition, $fileName)
 {
     $file = new \SplFileObject($fileName, 'r');
     $headers = $file->fgetcsv();
     $schema = new Schema($definition);
     foreach ($headers as $header) {
         if (preg_match(Schema\Column::HEADER_PATTERN, $header, $parts)) {
             list($full, $pk, $field, $mode) = $parts;
             $schema->addColumn($field, $mode);
             if ($pk === '*') {
                 $schema->setPrimaryKey($field);
             }
         } else {
             // Column without definition, add fake entry to skip column
             $schema->addNew('ignore', 'ignore')->setReadOnly(true);
         }
     }
     $this->source = new CsvSource($schema, $fileName);
 }