JpnForPhp\Inflector\Inflector::createDatabase PHP Метод

createDatabase() публичный статический Метод

Helper method the generate the database. The JMDict file my be downloaded separately
public static createDatabase ( )
    public static function createDatabase()
    {
        $ddl = file_get_contents('verbs.sql');
        if (file_exists('verbs.db')) {
            unlink('verbs.db');
        }
        $connection = new PDO('sqlite:verbs.db');
        $connection->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);
        $connection->exec($ddl);
        $entries = simplexml_load_file('JMdict');
        if ($entries !== false) {
            $connection->beginTransaction();
            $sql = 'INSERT INTO verbs (kanji, kana, type) VALUES (:kanji, :kana, :type)';
            $statement = $connection->prepare($sql);
            foreach ($entries as $entry) {
                $poses = array_keys(get_object_vars($entry->sense->pos));
                foreach ($poses as $pos) {
                    if (stripos($pos, 'v1') !== false || stripos($pos, 'v5') !== false || $pos == 'vz' || $pos == 'vk' || $pos == 'vn' || $pos == 'vr' || $pos == 'vs-s' || $pos == 'vs-i') {
                        $kanji = $entry->k_ele->keb;
                        $kana = $entry->r_ele->reb;
                        $type = str_replace('v', '', $pos);
                        $saved = $statement->execute(array(':kanji' => $kanji, ':kana' => $kana, ':type' => $type));
                        if ($saved === false) {
                            die('Could not save entry : ' . implode(' ', $statement->errorInfo()));
                        }
                    }
                }
            }
            $connection->commit();
        } else {
            echo 'Could not open JMdict file' . PHP_EOL;
        }
    }