Exemplo n.º 1
0
 /**
  * todo проблемы с кодировкой в csv файле
  */
 public function actionAirline()
 {
     $file = Yii::getAlias('@upload/airlines.csv');
     $this->stdout('Request CSV: Airlines.' . PHP_EOL, Console::FG_GREEN);
     if (file_exists($file)) {
         $handle = fopen($file, "r");
         $count = 0;
         while (!feof($handle)) {
             $buffer = explode(';', trim(fgets($handle, 4096)));
             $airline = ReceivedAirline::find()->where(['iata' => $buffer[0]])->one();
             if (!$airline) {
                 $this->stdout($buffer[0] . ' ', Console::FG_YELLOW);
                 $airline = new ReceivedAirline();
                 $airline->iata = $buffer[0];
                 $airline->name = $buffer[1];
                 $airline->alias = $this->translit($buffer[1]);
                 if (!$airline->save()) {
                     print_r($buffer);
                     print_r($airline->errors);
                     return Controller::EXIT_CODE_ERROR;
                 }
                 $count++;
             }
         }
         fclose($handle);
         $this->stdout(PHP_EOL . 'Added: ' . $count . ' Airlines.' . PHP_EOL, Console::FG_BLUE);
         return Controller::EXIT_CODE_NORMAL;
     } else {
         $this->stdout('No file: ', Console::FG_RED);
         echo $file . PHP_EOL;
         return Controller::EXIT_CODE_ERROR;
     }
 }