#!/usr/bin/env php setName($spec_name); $em->persist($spec); for ($i = 1; $i < 5; $i++) { $group = new Entities\CollegeGroup(); $group->setSpec($spec); $group->setCourseNum($i); $em->persist($group); } } $em->flush(); // --Аверс-- $av_data = file($avers_period_path); $is_year_start = (int)date('m') < 7; for ($y = 1; $y < count($av_data); $y++) { $row = explode(",", $av_data[$y]); // --Определяем какая группа имеется ввиду в этой строке-- // Определение специальности группы $target_spec = $em->getRepository(Entities\CollegeSpec::class)->findOneBy([ 'name' => $row[1] ]); if ($target_spec === null) { // Не будем разбираться -- просто игнорируем continue; } // Определение курса группы $enrolled_at = $row[2]; // Когда зачислилась $target_course_num = date('Y') - $enrolled_at; if (!$is_year_start) { $target_course_num++; } $target_group = $em->getRepository(Entities\CollegeGroup::class)->findOneBy([ 'spec' => $target_spec, 'course_num' => $target_course_num ]); // --Определение номера семестра-- // Если WEEK_NUM1 - 1, то это начало нового учебного года, в одном году // два семестра. // Тем самым, номер семестра = ... if ($row[5] == 1) { // ... COURSE_NUM * 2 - 1 $ord_num = $row[4] * 2 - 1; } else { // ... COURSE_NUM * 2 $ord_num = $row[4] * 2; } // --Создаём запись-- $period = new Entities\Period(); $period->setGroup($target_group); $period->setOrdNumber($ord_num); $period->setAversId(trim($row[7])); $em->persist($period); } $employee_data = file($employee_path); for ($y = 1; $y < count($employee_data); $y++) { $row = explode(",", $employee_data[$y]); $employee = new Entities\Employee(); $employee->setSurname($row[0]); $employee->setName($row[1]); $employee->setPatronymic($row[2]); $em->persist($employee); } $em->flush(); echo "Старт базы данных проведён успешно!";