2016-04-30 9 views
0

これは、どのような種類のフレームワークも持たないシンプルなPHPスクリプトです。私は非常に大きい(15MB、私はそれに対処するしかありませんが)ローカルjsonファイルを取得し、別の操作のためにそれを使用します。noフレームワークのPHPコードでローカルのJSONファイルを繰り返し使用するためのベストプラクティス

今はglobalというキーワードを使用して関数から呼び出しますが、それほど気分は良くありません。私は公演についても不思議です。このような目的のためにもっと適切な簡単な方法がありますか?

$data = json_decode(file_get_contents("data.json"), true); 

function randomItem() { 
    global $data; 
    return array_rand($data); 
} 

$item = randomItem(); 
var_dump($data[$item]); 

答えて

1

あなたはそれが好きで書くことができます。

class JsonLoader{ 
    private $data; 
    private $arrayEncoding; 
    public function load($file,$arrayEncoding = true){ 
     if(file_exists($file) == false){ 
      return false; 
     } 
     $this->arrayEncoding = $arrayEncoding; 
     $this->data = json_decode(file_get_contents($file),$arrayEncoding); 
     if($this->data == null){ 
      return false; 
     } 
     return true; 
    } 
    public function getData(){ 
     return $this->data; 
    } 
    public function getRandomData(){ 
     return (is_array($this->data) ? array_rand($this->data) : array_rand((array)$this->data)); 
    } 
} 

など、それを使用します。

$json = new JsonLoader; 

if($json->load("data.json") == false){ 
    //Show Error 
} 

$random = $json->getRandomData(); 
関連する問題