Added mongodb support for PHP "web" service
* Created new Dockerfile with the needed installs * Created database.php simple class for MongoDB simplify and queries
This commit is contained in:
parent
4cf4de2b20
commit
3a3cf576e5
|
@ -23,11 +23,13 @@ services:
|
||||||
|
|
||||||
web:
|
web:
|
||||||
command: php -S 0.0.0.0:8080
|
command: php -S 0.0.0.0:8080
|
||||||
image: php:8-alpine
|
build: web/
|
||||||
volumes:
|
volumes:
|
||||||
- ./web/src:/src
|
- ./web/src:/src
|
||||||
environment:
|
environment:
|
||||||
- DOMAIN=${DOMAIN}
|
- DOMAIN=${DOMAIN}
|
||||||
|
- DB_HOST=${DB_HOST}
|
||||||
|
- DB_NAME=${DB_NAME}
|
||||||
working_dir: /src
|
working_dir: /src
|
||||||
networks:
|
networks:
|
||||||
- fedilove
|
- fedilove
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
FROM php:8-alpine
|
||||||
|
|
||||||
|
RUN apk add autoconf gcc libc-dev make --update
|
||||||
|
RUN pecl install mongodb
|
||||||
|
RUN echo 'extension=mongodb.so' > /usr/local/etc/php/conf.d/docker-php-ext-mongodb.ini
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
class DB {
|
||||||
|
private $manager;
|
||||||
|
private $db_name;
|
||||||
|
|
||||||
|
function __construct() {
|
||||||
|
$db_host = getenv('DB_HOST');
|
||||||
|
$db_name = getenv('DB_NAME');
|
||||||
|
if ($db_host === false || $db_name === false)
|
||||||
|
die('"DB_HOST|DB_NAME" environments are not defined');
|
||||||
|
$this->manager = new MongoDB\Driver\Manager("mongodb://$db_host:27017");
|
||||||
|
$this->db_name = $db_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
function query($table, $q) {
|
||||||
|
$query = new MongoDB\Driver\Query($q);
|
||||||
|
$cursor = $manager->executeQuery($this->db_name.'.'.$table, $query);
|
||||||
|
return $cursor->toArray();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue