Listing 23.11. Przetwarzanie pliku przedmioty.txt
$plk = trim(file_get_contents('data/txt/przedmioty.txt'));
$plk = myString::uncomment_and_trim($plk);
$plk = explode("\r\n", $plk);
$tmpCount = count($plk);
for ($i = 0; $i < $tmpCount; $i++) {
    $wiersz = explode(':', trim($plk[$i]));
    if ($plk[$i][0] === '@') {
        if (trim($wiersz[0]) === '@KIERUNEK') {
            $kierunek = trim($wiersz[1]);
            $rodzajstudiow = trim($wiersz[2]);
            $c = new Criteria();
            $cton1 = $c->getNewCriterion(KierunekPeer::NAZWA, $kierunek);
            $cton2 = $c->getNewCriterion(RodzajstudiowPeer::NAZWA, $rodzajstudiow);
            $cton1->addAnd($cton2);
            $c->add($cton1);
            $c->addJoin(RodzajstudiowPeer::RODZAJSTUDIOW_ID, KierunekPeer::RODZAJSTUDIOW_ID);
            $objKierunek = KierunekPeer::doSelectOne($c);
            if (!$objKierunek) {
                die('error przedmioty #1');
            }
        } else if (trim($wiersz[0]) === '@SEMESTR') {
            $semestr = trim($wiersz[1]);
            $rok = (int) floor(($semestr + 1) / 2);
            if ($semestr % 2 === 1) {
                $zimalato = 1;
            } else {
                $zimalato = 0;
            }
        };
    } else {
        $nazwa = trim($wiersz[0]);
        $rodzajzajec = trim($wiersz[1]);
        $liczbagrup = trim($wiersz[2]);
        $godz = trim($wiersz[3]);
        $zal = trim($wiersz[4]);
        $skrot = trim($wiersz[5]);
        $c = new Criteria();
        $c->add(RodzajzajecPeer::NAZWA, $rodzajzajec);
        $objRodzajzajec = RodzajzajecPeer::doSelectOne($c);
        if (!$objRodzajzajec) {
            die('error przedmioty #3');
        }
        $slug = myString::string2slug($nazwa . ' ' . $objKierunek->getSlug() . ' ' . $objRodzajzajec->getSlug() . ' ' . $semestr);
        $przedmiot = new Przedmiot();
        $przedmiot->setNazwa($nazwa);
        $przedmiot->setRodzajzajec($objRodzajzajec);
        $przedmiot->setLiczbagrup($liczbagrup);
        $przedmiot->setGodz($godz);
        $przedmiot->setZal($zal);
        $przedmiot->setSkrot($skrot);
        $przedmiot->setSlug($slug);
        $przedmiot->setKierunek($objKierunek);
        $przedmiot->setZimalato($zimalato);
        $przedmiot->setSemestr($semestr);
        $przedmiot->setRok($rok);
        $przedmiot->setOdbywaSie(1);
        $przedmiot->save();
    }
}