小编kil*_*eet的帖子

docker php7.2-fpm 无法安装 imap 模块

我在尝试让 imap 与我的 docker-compose 一起工作时遇到问题。

这是我的 php dockerfile 的样子。

FROM php:7.2-fpm

RUN apt-get update && \
  apt-get install -y \
    curl \
    libmcrypt-dev \
    unzip \
    git 

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install- 
dir=/usr/local/bin --filename=composer
RUN composer --version

# Set timezone to UTC
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/UTC /etc/localtime
RUN "date"

RUN apt-get -y install libmagickwand-dev --no-install-recommends \
    && pecl install imagick \
    && docker-php-ext-enable imagick \
    && rm -r /var/lib/apt/lists/*

RUN /usr/local/bin/docker-php-ext-install …
Run Code Online (Sandbox Code Playgroud)

php imap docker

8
推荐指数
2
解决办法
7469
查看次数

匹配过滤器必须是在 PHP 中具有 mongo 聚合的对象中的表达式

所以首先这是我想要做的:

我得到了一个带有一些自定义输入的数据表。用户可以选择技能(php、mysql等)和标准文本输入。用户可以选择多个技能。When multiple skills are selected it's supposed to be kind of an AND AND query. 所以这两种技能都必须可用。

数据表中的标准文本输入将包含诸如客户姓名、他们的电子邮件或工作职能等信息。

例如,我检查了 PHP 和 Javascript,在我的文本搜索中我使用了 Google。这意味着我正在寻找在标签中同时包含 PHP 和 Javascript 的文档(或它们的任何别名,例如:Javascript => js),并且在列出的任何其他字段(客户、函数、发件人姓名、发件人电子邮件或主题)。

但它也应该能够搜索仅匹配技能或仅用于文本输入的文档。

我一直在尝试使用所有查询选项构建数组,并根据函数的输入合并这些数组,但到目前为止没有任何效果。

匹配过滤器必须是对象中的表达式

下面是我在 Mongo 中获得的文档示例

{
    "_id": {
        "$oid": "superfancyID"
    },
    "parsed": {
        "tags": [
            "sql",
            "php"
        ],
        "customer": "CustomerName",
        "function": "functionName",
        "mail_properties": {
            "senderName": "SenderName",
            "senderEmail": "example@example.com",
            "subject": "FW: Test email",
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试构建查询的一些代码

    public function handler(int $skip, int $limit, array $filters, string $filterString = '') {

     # …
Run Code Online (Sandbox Code Playgroud)

php mongodb

5
推荐指数
0
解决办法
3034
查看次数

bash正则表达式获取docker容器端口号

所以我试图从我的 docker 集群获取特定的端口号,这样做是因为我稍后需要该端口。

当我执行 docker-compose ps 时,我得到以下输出

contaimer_db_1            docker-entrypoint.sh mysqld      Up      3306/tcp
container_node_1          /usr/bin/supervisord -n          Up      0.0.0.0:3902->3902/tcp
container_php_1           docker-php-entrypoint php-fpm    Up      9000/tcp
container_redis_1         docker-entrypoint.sh redis ...   Up      6379/tcp
Run Code Online (Sandbox Code Playgroud)

我想得到的是来自container_node_1 3902的端口号

到目前为止我得到了

docker-compose ps | grep "[ :]\?[[:digit:]]\{4\}"
Run Code Online (Sandbox Code Playgroud)

但这将获取所有端口,因为它们连续有 4 个数字。我如何更改它以确保它只获取节点端口?

如果有任何帮助,节点容器将始终显示为 0.0.0.0:1234->1234

bash docker

4
推荐指数
1
解决办法
1808
查看次数

Laravel 用 groupby 进行雄辩计数

如果我有以下表结构

ID      name   type    
1       John   Admin   
2       Johan  Admin
3       Sam    User
4       Rick   User
Run Code Online (Sandbox Code Playgroud)

我如何将 Laravels Eloquent 与 groupBy 查询一起使用,但仍然获取每条记录,并总结每种类型有多少条记录?

示例结果如下

[
    'type' => 'Admin',
    'records' => 2
    'data' => [
        0 => [
            'name' => 'John'
        ],
        1 => [
            'name' => 'Johan'
        ]
    ]
], 
[
    'type' => 'User',
    'records' => 2
    'data' => [
        0 => [
            'name' => 'Sam'
        ],
        1 => [
            'name' => 'Rick'
        ]
    ]
]
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent

2
推荐指数
1
解决办法
7695
查看次数

Microsoft graph 无法读取 JSON 请求负载

我正在尝试在 php 中使用 microsoft graph 创建订阅,但是我目前无法看到出了什么问题。

该代码在以下位置被破坏:

protected $http_subscribe = "https://graph.microsoft.com/v1.0/subscriptions";

public function getSubscriptions()
{
    if(empty($this->token)) {
        dd('no token supplied'); //some debugging
    }

    $date = $this->endTimeDate->format('Y-m-d'); //This is Carbon date

    $time = $this->endTimeDate->format('H:i:s.u');

    $response = $this->client->request('POST', $this->http_subscribe, [
        'headers' => [
            'Authorization' => 'Bearer ' . $this->token,
            'Content-Type' => "application/json"
        ], 'form_params' => [
            "changeType" => "created,updated",
            "notificationUrl" => "https://website.test/notify",
            "resource" => "me/mailFolders('Inbox')/messages",
            "expirationDateTime" => $date.'T'.$time,
            "clientState" => "secretClientValue"
        ]
    ]);

    dd($response);
}
Run Code Online (Sandbox Code Playgroud)

我得到的完整错误是:

"""
{\r\n
  "error": {\r\n
    "code": "BadRequest",\r\n …
Run Code Online (Sandbox Code Playgroud)

php laravel guzzle azure-ad-graph-api microsoft-graph-api

2
推荐指数
1
解决办法
4278
查看次数