小编imc*_*iac的帖子

Composer在docker中使用自己的Symfony路径(加载旧文件)

  • 我正在使用码头工具.
  • 更新后命令(php类)在composer更新后运行.
  • 运行良好,直到我做了Laravel更新5.4-> 5.5,下载了新的Symfony软件包
  • 作曲家清除缓存没有帮助
  • 作曲家自我更新没有帮助
  • 作曲家签名是平等的

[Symfony\Component\Debug\Exception\FatalThrowableError]调用未定义的方法Illuminate\Foundation\Console\ClosureCommand :: setHidden()

我正在编写文件,这个方法存在于父类中!我把这个小东西放在构造函数中发生了什么:

use Symfony\Component\Console\Command\Command as SymfonyCommand;

class Command extends SymfonyCommand
{
    public function __construct()
    {
        $r1 = new \ReflectionClass($this);
        $r2 = new \ReflectionClass(SymfonyCommand::class);
        var_dump([$r1->getFileName(), $r2->getFileName()]);
    }
// rest of class
}
Run Code Online (Sandbox Code Playgroud)

结果:作曲家自动加载自己的旧的Command.php,而不是来自项目.

array(2) {
  [0]=>
  string(91) "/var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/ClosureCommand.php"
  [1]=>
  string(67) "phar:///usr/bin/composer/vendor/symfony/console/Command/Command.php"
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么没有从项目加载symfony类,而是从一些神奇的地方加载,以及我如何解决这个问题.


附加信息:

添加作曲家的php的Dockerfile:

# Composer
ENV PATH "/composer/vendor/bin:$PATH"
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV COMPOSER_VERSION 1.4.2

RUN curl -s -f -L -o /tmp/composer-setup.php https://getcomposer.org/installer
RUN curl -s -f -L …
Run Code Online (Sandbox Code Playgroud)

php symfony laravel composer-php docker

16
推荐指数
1
解决办法
355
查看次数

关闭产量

我想提供一些数据。问题是该chunk方法需要关闭来完成这项工作。在这种情况下有没有办法像foreach循环一样产生数据?

public function yieldRowData(): \Iterator
{
    $this->transactionQuery
        ->getQuery()
        ->chunk(5, function ($collection) { // This is executed for each 5 elements from database
            foreach ($collection as $element) {
                yield $element->getId(); // I want this to be yield from this method (yieldRowData)
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

我尝试了这个,但它只会返回最后的结果:

public function yieldRowData(): \Iterator
{
    $results = [];

    $this->transactionQuery
        ->getQuery()
        ->chunk(5, function(Collection $transactions) use (&$results) {
            $results = $transactions;
        });

    foreach($results as $transactionEntity) {
        yield $transactionEntity;
    }
}
Run Code Online (Sandbox Code Playgroud)

php php-7.2

6
推荐指数
1
解决办法
1832
查看次数

在 PostgresSQL 上保存之前压缩字符串值得吗?

我们将加密的文件内容存储在 PostgresSQL 数据库中。我们储存了很多。目前我们无法将此内容写入任何其他地方(例如 FTP 或内部存储)。尽管如此,我们的数据库仍在快速变得越来越大。

我已经知道 PostgreSQL 默认情况下会压缩字符串数据,所以我的问题是:在将其插入数据库之前是否值得在应用程序端进行字符串压缩。这会节省空间吗?

也许您知道如何调整 PostgreSQL 或任何其他方法来在 PostgreSQL 表中存储文件时节省一些空间。


我的扩展答案

因为我想了解更多,所以我做了一些实验。

  • 我创建了20000 行的源文件,其中1 行 = 50000 个随机字符
  • 创建文件,其中 1 行是源文件中的压缩行,使用gzdeflate
  • 我创建了包含一列的表格,并将每一行插入为 1 行。
  • 尺寸比较

这是结果:

  • 源文件 - ~1GB
  • 每行压缩的文件 - 4.45MB
  • text STORAGE EXTENDED-表大小13MB
  • text STORAGE EXTERNAL- 表大小1MB + Toast 1027MB
  • 包含预 gzdeflated 数据的列bytea- 表大小5.2MB

我想指出的是,预压缩数据并将其存储为文本STORAGE EXTENDED是可能的,结果是700kb表大小,但预压缩数据包含大多数字符集调色板之外的字符。检索此类数据是不可能的。

结论:

  • 如果您更喜欢将数据存储为text,每 1GB 内容约 13MB 是非常好的比率。
  • 如果您需要更好的压缩并且不介意将数据存储为 …

php compression postgresql

5
推荐指数
1
解决办法
1464
查看次数

通过putty访问minecraft rcon服务器

我想通过使用内置的rcon管理Minecraft服务器.

问题是服务器不返回内容.打开putty - >设置地址 - >设置端口 - >选择ssh - >点击打开 - >控制台打开,但是它的空&我什么也做不了.

奇怪的是:1.端口打开2.在putty日志中显示:连接到xxx.xxx.xxx.xxx端口xxxxx 3. minecraft控制台通知我连接到rcon

所以它看起来我已连接,但在putty控制台中没有任何显示.

我试过这个查询工具,它的工作正常.如果这个工具可以,为什么腻子不行?

Thnx任何帮助.

ssh console putty minecraft

0
推荐指数
2
解决办法
3万
查看次数