Overview
  • Namespace
  • Class
  • Tree
  • Todo

Namespaces

  • jp3cki
    • gimei
      • address
      • name

Classes

  • jp3cki\gimei\address\Address
  • jp3cki\gimei\address\AddressUnit
  • jp3cki\gimei\address\Dictionary
  • jp3cki\gimei\address\Factory
  • jp3cki\gimei\DataUnit
  • jp3cki\gimei\Gimei
  • jp3cki\gimei\name\Dictionary
  • jp3cki\gimei\name\Factory
  • jp3cki\gimei\name\Gender
  • jp3cki\gimei\name\NameUnit
  • jp3cki\gimei\name\Person

Exceptions

  • jp3cki\gimei\Exception
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 
<?php
/**
 * @author AIZAWA Hina <hina@bouhime.com>
 * @copyright 2015 AIZAWA Hina <hina@bouhime.com>
 * @license https://github.com/fetus-hina/gimei-php/blob/master/LICENSE MIT
 */

namespace jp3cki\gimei\address;

use jp3cki\gimei\Exception;

/**
 * データを読み込みランダムに選択する
 */
class Factory
{
    /**
     * データファイルへの相対パス
     */
    const JSON_REL_PATH = '../../data/addresses.json';
    
    /**
     * データファイルを保持する
     * @var Dictionary
     */
    private static $dictionary = null;

    /**
     * 住所をランダムに選択して返す
     *
     * @return Address
     */
    public static function generate()
    {
        if (self::$dictionary === null) {
            self::loadData();
        }

        $dict = self::$dictionary;
        return new Address(
            new AddressUnit($dict->getOneOfPrefecture()),
            new AddressUnit($dict->getOneOfCity()),
            new AddressUnit($dict->getOneOfTown())
        );
    }

    /**
     * データファイルを読み込む
     */
    private static function loadData()
    {
        $jsonPath = __DIR__ . '/' . self::JSON_REL_PATH;
        self::$dictionary = new Dictionary($jsonPath);
    }
}
API documentation generated by ApiGen