CrossPHP
  • Namespace
  • Class
  • Download

Namespaces

  • Cross
    • Auth
    • Cache
      • Driver
      • Request
    • Core
    • DB
      • Connecter
      • Drivers
      • SQLAssembler
    • Exception
    • Http
    • I
    • Lib
      • Document
    • Module
    • MVC
    • Runtime
  • None

Classes

  • Cross\Auth\CookieAuth
  • Cross\Auth\SessionAuth
  • Cross\Cache\Driver\FileCacheDriver
  • Cross\Cache\Driver\MemcacheDriver
  • Cross\Cache\Driver\RedisDriver
  • Cross\Cache\Request\FileCache
  • Cross\Cache\Request\Memcache
  • Cross\Cache\Request\RedisCache
  • Cross\Cache\RequestCache
  • Cross\Core\Annotate
  • Cross\Core\Application
  • Cross\Core\ArrayMap
  • Cross\Core\Config
  • Cross\Core\CrossArray
  • Cross\Core\Delegate
  • Cross\Core\FrameBase
  • Cross\Core\Helper
  • Cross\Core\HttpAuth
  • Cross\Core\Loader
  • Cross\Core\Rest
  • Cross\Core\Router
  • Cross\DB\Connecter\BaseConnecter
  • Cross\DB\Connecter\MySQLConnecter
  • Cross\DB\Connecter\PgSQLConnecter
  • Cross\DB\Connecter\SQLiteConnecter
  • Cross\DB\DBFactory
  • Cross\DB\Drivers\CouchDriver
  • Cross\DB\Drivers\MongoDriver
  • Cross\DB\Drivers\PDOSqlDriver
  • Cross\DB\SQLAssembler\MySQLAssembler
  • Cross\DB\SQLAssembler\PgSQLAssembler
  • Cross\DB\SQLAssembler\SQLAssembler
  • Cross\DB\SQLAssembler\SQLiteAssembler
  • Cross\Http\Request
  • Cross\Http\Response
  • Cross\Lib\Array2XML
  • Cross\Lib\Document\CallTree
  • Cross\Lib\Document\CallTreeToHTML
  • Cross\Lib\Document\HTML
  • Cross\Lib\StringToPHPStream
  • Cross\Module\SQLModule
  • Cross\MVC\Controller
  • Cross\MVC\Module
  • Cross\MVC\View
  • Cross\Runtime\ClosureContainer

Interfaces

  • Cross\I\CacheInterface
  • Cross\I\HttpAuthInterface
  • Cross\I\PDOConnecter
  • Cross\I\RequestCacheInterface
  • Cross\I\RouterInterface
  • Cross\I\SqlInterface

Exceptions

  • Cross\Exception\CacheException
  • Cross\Exception\CoreException
  • Cross\Exception\CrossException
  • Cross\Exception\FrontException

Functions

  • ascLogo
  • line
  • tBody
  • th
  • tHead
 1 <?php
 2 /**
 3  * Cross - a micro PHP 5 framework
 4  *
 5  * @link        http://www.crossphp.com
 6  * @license     MIT License
 7  */
 8 
 9 namespace Cross\DB\Drivers;
10 
11 use Couchbase\PasswordAuthenticator;
12 use Cross\Exception\CoreException;
13 use CouchbaseCluster;
14 use Exception;
15 
16 /**
17  * @author wonli <wonli@live.com>
18  * Class CouchDriver
19  * @package Cross\DB\Drivers
20  */
21 class CouchDriver
22 {
23     /**
24      * @var \Couchbase\Bucket
25      */
26     protected $link;
27 
28     /**
29      * @param array $params
30      * @throws CoreException
31      */
32     function __construct(array $params)
33     {
34         if (!class_exists('CouchbaseCluster')) {
35             throw new CoreException('Class CouchbaseCluster not found!');
36         }
37 
38         try {
39             $authenticator = new PasswordAuthenticator();
40             $authenticator->username($params['username'])->password($params['password']);
41 
42             $cluster = new CouchbaseCluster($params['dsn']);
43             $cluster->authenticate($authenticator);
44 
45             $bucket = isset($params['bucket']) ? $params['bucket'] : 'default';
46             if (!empty($params['bucket_password'])) {
47                 $this->link = $cluster->openBucket($bucket, $params['bucket_password']);
48             } else {
49                 $this->link = $cluster->openBucket($bucket);
50             }
51         } catch (Exception $e) {
52             throw new CoreException ($e->getMessage());
53         }
54     }
55 
56     /**
57      * 调用Couch提供的方法
58      *
59      * @param $method
60      * @param $argv
61      * @throws CoreException
62      * @return mixed|null
63      */
64     public function __call($method, $argv)
65     {
66         $result = null;
67         if (method_exists($this->link, $method)) {
68             try {
69                 $result = ($argv == null)
70                     ? $this->link->$method()
71                     : call_user_func_array(array($this->link, $method), $argv);
72             } catch (Exception $e) {
73                 throw new CoreException($e->getMessage());
74             }
75         }
76 
77         return $result;
78     }
79 }
80 
CrossPHP API documentation generated by ApiGen