2017 © Pedro Peláez
 

cakephp-plugin mongodb

An Mongodb datasource for CakePHP 3.0

image

hayko/mongodb

An Mongodb datasource for CakePHP 3.0

  • Wednesday, February 7, 2018
  • by tiaguinho
  • Repository
  • 7 Watchers
  • 16 Stars
  • 1,807 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 10 Forks
  • 9 Open issues
  • 1 Versions
  • 2 % Grown

The README.md

Slack, (*1)

Mongodb for Cakephp3

An Mongodb datasource for CakePHP 3.5, (*2)

Installing via composer

Install composer and run:, (*3)

composer require hayko/mongodb dev-master

Connecting the Plugin to your application

add the following line in your config/bootstrap.php to tell your application to load the plugin:, (*4)

Plugin::load('Hayko/Mongodb');

Defining a connection

Now, you need to set the connection in your config/app.php file:, (*5)

 'Datasources' => [
    'default' => [
        'className' => 'Hayko\Mongodb\Database\Connection',
        'driver' => 'Hayko\Mongodb\Database\Driver\Mongodb',
        'persistent' => false,
        'host' => 'localhost',
        'port' => 27017,
        'login' => '',
        'password' => '',
        'database' => 'devmongo',
        'ssh_host' => '',
        'ssh_port' => 22,
        'ssh_user' => '',
        'ssh_password' => '',
        'ssh_pubkey_path' => '',
        'ssh_privatekey_path' => '',
        'ssh_pubkey_passphrase' => ''
    ],
],

SSH tunnel variables (starting with 'ssh_')

If you want to connect to MongoDB using a SSH tunnel, you need to set additional variables in your Datasource. Some variables are unnecessary, depending on how you intend to connect. IF you're connecting using a SSH key file, the ssh_pubkey_path and ssh_privatekey_path variables are necessary and the ssh_password variable is unnecessary. If you're connecting using a text-based password (which is not a wise idea), the reverse is true. The function needs, at minimum, ssh_host, ssh_user and one method of authentication to establish a SSH tunnel., (*6)

Models

After that, you need to load Hayko\Mongodb\ORM\Table in your tables class:, (*7)

//src/Model/Table/YourTable.php

use Hayko\Mongodb\ORM\Table;

class CategoriesTable extends Table {

}

Observations

The function find() works only in the old fashion way. So, if you want to find something, you to do like the example:, (*8)

$this->Categories->find('all', ['conditions' => ['name' => 'teste']]);
$this->Categories->find('all', ['conditions' => ['name LIKE' => 'teste']]);
$this->Categories->find('all', ['conditions' => ['name' => 'teste'], 'limit' => 3]);

You can also use the advanced conditions of MongoDB using the MongoDB\BSON namespace, (*9)

$this->Categories->find('all', ['conditions' => [
    '_id' => new \MongoDB\BSON\ObjectId('5a7861909db0b47d605c3865'),
    'foo.bar' => new \MongoDB\BSON\Regex('^(foo|bar)?baz$', 'i')
]]);

LICENSE

The MIT License (MIT) Copyright (c) 2013, (*10)

The Versions

07/02 2018

dev-master

9999999-dev

An Mongodb datasource for CakePHP 3.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar tiaguinho