CQT_Dictionary

データの読み書きを行う

factory($data = array())

$data
array
return
CQT_Dictionary_Interface
PHP
  1.  
  2.  <?php
  3.  $my_dictionary = CQT_Dictionary::factory();
  4.  ?>

CQT_Dictionary_Array

insert($path, $value, $overwrite = false)

基本的な使い方

PHP
  1.  
  2.  <?php
  3.  $books = CQT_Dictionary::factory();
  4.  
  5.  $books->insert('Book1.name', 'Javascriptクイックリファレンス');
  6.  $books->insert('Book1.price', 2000);
  7.  $books->insert('Book1.index', 'Javascriptのリファレンス オライリー');
  8.  
  9.  echo $books->find('Book1.name') . '<br />';
  10.  echo $books->find('Book1.price') . '<br />';
  11.  echo $books->find('Book1.index');
  12.  ?>
実行結果
Javascriptクイックリファレンス
2000
Javascriptのリファレンス オライリー

$overwriteがfalseの場合

値は上書きされずArrayになる。

PHP
  1.  
  2.  <?php
  3.  $books->insert('Book1.name', '安全なWebアプリケーションの作り方');
  4.  $books->dump('Book1.name');
  5.  
  6.  echo '<hr />';
  7.  
  8.  echo $books->find('Book1.name@0') . '<br />';
  9.  echo $books->find('Book1.name@1');
  10.  ?>
実行結果
array(2) {
  [0]=>
  string(40) "Javascriptクイックリファレンス"
  [1]=>
  string(48) "安全なWebアプリケーションの作り方"
}

Javascriptクイックリファレンス
安全なWebアプリケーションの作り方

設定されているpath以下に追加すると

PHP
  1.  
  2.  <?php
  3.  $books->insert('Book1.name.subtitle', '脆弱性が生まれる原理と対策の実践');
  4.  $books->insert('Book1.name@enname', 'anzen na web');
  5.  $books->dump('Book1.name');
  6.  ?>
実行結果
array(4) {
  [0]=>
  string(40) "Javascriptクイックリファレンス"
  [1]=>
  string(48) "安全なWebアプリケーションの作り方"
  ["child"]=>
  array(1) {
    ["subtitle"]=>
    string(48) "脆弱性が生まれる原理と対策の実践"
  }
  ["enname"]=>
  string(12) "anzen na web"
}

find($string = null)

key直下のデータを取得するには@を使う。.(ドット)はchildに置き換えられる。

PHP
  1.  
  2.  <?php
  3.  $data_sitemap = array(
  4.   'home' => array(
  5.   'name' => 'CaQuu::Tools',
  6.   'keyword' => '',
  7.   'desc' => '',
  8.   'child' => array(
  9.   'caquutools' => array(
  10.   'name' => 'CaQuuTools',
  11.   'keyword' => '',
  12.   'desc' => 'CaQuuToolsを利用する場合のオートロード。',
  13.   ),
  14.  
  15.   'cqt' => array(
  16.   'name' => 'CQT',
  17.   'keyword' => '',
  18.   'desc' => 'static なクラス関数',
  19.   ),
  20.  
  21.   'cache' => array(
  22.   'name' => 'Cache',
  23.   'keyword' => '',
  24.   'desc' => 'Zend::Cacheベースのキャッシュ',
  25.   ),
  26.  
  27.   'dictionary' => array(
  28.   'name' => 'CQT_Dictionary',
  29.   'keyword' => '',
  30.   'desc' => 'データの読み書きをおこなう。',
  31.   ),
  32.  
  33.   'fotolia' => array(
  34.   'name' => 'CQT_Fotolia',
  35.   'keyword' => 'Fotolia XML/RPC',
  36.   'desc' => 'FotoliaのAPIを利用して写真を取得する',
  37.   ),
  38.  
  39.   'sitetemplate' => array(
  40.   'name' => 'CQT_SiteTemplate',
  41.   'keyword' => '',
  42.   'desc' => 'サイトのテンプレート',
  43.   'child' => array(
  44.   'setup' => array(
  45.   'name' => '初期設定',
  46.   'keyword' => '',
  47.   'desc' => '',
  48.   ),
  49.   ),
  50.   ),
  51.   ),
  52.   ),
  53.  );
  54.  
  55.  $sitemap_data = CQT_Dictionary::factory($data_sitemap);
  56.  
  57.  echo $sitemap_data->find('home@name') . '<br >';
  58.  echo $sitemap_data->find('home.dictionary@desc') . '<br >';
  59.  echo $sitemap_data->find('home.sitetemplate.setup@name');
  60.  ?>
実行結果
CaQuu::Tools
データの読み書きをおこなう。
初期設定

存在しないpathにアクセスした場合CQT_Dictionar_Errorが返る

PHP
  1.  
  2.  <?php
  3.  if (is_a($sitemap_data->find('error.query'), 'CQT_Dictionary_Error')) {
  4.   echo 'エラー';
  5.  }
  6.  ?>
実行結果
エラー