PHPからGroongaを利用する - Groongaクラス

# Groongaクラス

[PHP bindings for  Groonga.](https://github.com/Yujiro3/proonga "PHP bindings for  Groonga.")


サンプル [micro_blog.php](https://gist.github.com/Yujiro3/1ce4908b191cfaf77b5d "micro_blog.php")


```php
Groonga {
  /* メソッド */
  public void __construct(string str[[, integer port], integer flags])
  public void __destruct(void)
  public mixed command(string query[[, int assoc], integer flags])
  public GCommand command(string command)
  public array status(void)
  public array tableList(void)
  public integer cacheLimit(integer max)
  public array dump(void)
  public GTable table(string name)
}
```

## コンストラクタ　Groonga::__construct

基礎クラスの生成

```php
$gdb = new Groonga('./db/test.db');
```

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| str         |  string       | DBパスかホスト名 |
| [port]      |  integer      | ポート番号       |
| [flags]     |  integer      | フラグ           |


**戻り値**

なし


```php
  $gdb = new Groonga('./db/test.db');

  $result = $gdb->status();
  print_r($result);

```

**結果**


```php
Array
(
    [alloc_count] => 142
    [starttime] => 1417368970
    [uptime] => 0
    [version] => 4.0.7
    [n_queries] => 0
    [cache_hit_rate] => 0
    [command_version] => 1
    [default_command_version] => 1
    [max_command_version] => 2
)
```

## クエリ送信　Groonga::query

Groongaへクエリを送信する

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| query       |  string       | クエリ内容       |
| assoc       |  integer      | 結果フォーマット  |
| flags       |  integer      | フラグ       |

**戻り値**

クエリ結果


```php
$gdb = new Groonga('./db/test.db');

$result = $gdb->query('/d/status.json');
echo $result;

```

**結果**

```php
{"alloc_count":142,"starttime":1417494042,"uptime":0,"version":"4.0.7","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}
```


## 組み込みコマンド生成　Groonga::command

組み込みコマンド生成

```php
$gdb->command('status');
```

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| command     |  string       | コマンド名       |


**戻り値**

コマンドオブジェクト


```php
  $gdb = new Groonga('./db/test.db');

  $command = $gdb->command('status');
  print_r($command);

```

**結果**


```php
GCommand Object
(
)
```


## ステータス　Groonga::status

ステータスの取得

```php
$gdb->status();
```

**引数**

なし

**戻り値**

配列


```php
  $gdb = new Groonga('./db/test.db');

  $result = $gdb->status();
  print_r($result);

```

**結果**


```php
Array
(
    [alloc_count] => 142
    [starttime] => 1417368970
    [uptime] => 0
    [version] => 4.0.7
    [n_queries] => 0
    [cache_hit_rate] => 0
    [command_version] => 1
    [default_command_version] => 1
    [max_command_version] => 2
)
```



## テーブル一覧　Groonga::tableList

テーブル一覧の取得

```php
$gdb->tableList();
```

**引数**

なし

**戻り値**

配列


```php
  $gdb = new Groonga('./db/test.db');

  $result = $gdb->tableList();
  print_r($result);

```

**結果**


```php
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => id
                    [1] => UInt32
                )

            [1] => Array
                (
                    [0] => name
                    [1] => ShortText
                )

            [2] => Array
                (
                    [0] => path
                    [1] => ShortText
                )

            [3] => Array
                (
                    [0] => flags
                    [1] => ShortText
                )

            [4] => Array
                (
                    [0] => domain
                    [1] => ShortText
                )

            [5] => Array
                (
                    [0] => range
                    [1] => ShortText
                )

            [6] => Array
                (
                    [0] => default_tokenizer
                    [1] => ShortText
                )

            [7] => Array
                (
                    [0] => normalizer
                    [1] => ShortText
                )

        )

    [1] => Array
        (
            [0] => 256
            [1] => Sample
            [2] => ./db/test.db.0000100
            [3] => TABLE_HASH_KEY|PERSISTENT
            [4] => ShortText
            [5] =>
            [6] =>
            [7] =>
        )

)
```


## キャッシュ設定　Groonga::cacheLimit

キャッシュ上限の設定、取得

```php
$gdb->cacheLimit();
```

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| max         |  integer      | キャッシュ上限   |


**戻り値**

なし


```php
  $gdb = new Groonga('./db/test.db');

  $result = $gdb->cacheLimit();
  echo $result."\n";

  $result = $gdb->cacheLimit(50);
  echo $result."\n";

```

**結果**


```php
100
50
```



## ダンプ　Groonga::dump

ダンプ内容の取得

```php
$gdb->cacheLimit();
```

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| max         |  integer      | キャッシュ上限   |


**戻り値**

なし


```php
  $gdb = new Groonga('./db/test.db');

  $result = $gdb->cacheLimit();
  echo $result."\n";

  $result = $gdb->cacheLimit(50);
  echo $result."\n";

```

**結果**


```php
100
50
```




## テーブル　Groonga::table


テーブルオブジェクトの取得

```php
$gdb->table('Sample');
```

**引数**

| 名前        | 型            | 概要             |
|:-----------:|:-------------:|:----------------:|
| name        |  string       | テーブル名       |


**戻り値**

テーブルオブジェクト


```php
  $gdb = new Groonga('./db/test.db');

  $table = $gdb->table('Users');
  print_r($table);

```

**結果**


```php
GTable Object
(
)
```

* * *

[PHPからGroongaを利用する-Groongaクラス](http://qiita.com/Yujiro3/items/cb03abcc71bbb2f883f7 "PHPからGroongaを利用する-Groongaクラス")
[PHPからGroongaを利用する-GCommandクラス](http://qiita.com/Yujiro3/items/aa751a66ce4fc37f4aea "PHPからGroongaを利用する-GCommandクラス")
[PHPからGroongaを利用する-GTableクラス](http://qiita.com/Yujiro3/items/1b5cea045621f67100bc "PHPからGroongaを利用する-GTableクラス")
[PHPからGroongaを利用する-GColumnクラス](http://qiita.com/Yujiro3/items/241e9f561be14927e6be "PHPからGroongaを利用する-GColumnクラス")
[PHPからGroongaを利用する-GLoadクラス](http://qiita.com/Yujiro3/items/3f876a277e410fb1b631 "PHPからGroongaを利用する-GLoadクラス")
[PHPからGroongaを利用する-GDeleteクラス](http://qiita.com/Yujiro3/items/45ee01c107f2fa17c6c3 "PHPからGroongaを利用する-GDeleteクラス")
[PHPからGroongaを利用する-GSelectクラス](http://qiita.com/Yujiro3/items/c59094e2c83970bf224f "PHPからGroongaを利用する-GSelectクラス")


[PHPからGroongaを利用する-PHPバインディング](http://qiita.com/Yujiro3/items/e5ea98139f3ee58d46f9)