小编yiv*_*ivi的帖子

尝试编写 PHP 单元测试时,方法“setMethods”已被弃用

我想创建一个模拟来替换资源:

$gateway = $this->getMockBuilder('PaymentGateway')
            ->setMethods(['transfer'])
            ->getMock();
Run Code Online (Sandbox Code Playgroud)

我收到这个警告:

方法“setMethods”已弃用

我该如何解决这个弃用问题?

php testing phpunit

12
推荐指数
1
解决办法
8733
查看次数

如何在Python中定义最终的classvar变量

正如您在PEP 526中看到的,我们可以使用 ClassVar 字定义静态变量类。像下面这样

class Starship:
    stats: ClassVar[dict[str, int]] = {} # class variable
    damage: int = 10                     # instance variable
Run Code Online (Sandbox Code Playgroud)

正如您在PEP 591中看到的另一个打字功能,我们可以使用 Final word 定义常量(只读)变量,如下所示

class Connection:
    TIMEOUT: Final[int] = 10
Run Code Online (Sandbox Code Playgroud)

我的问题是如何组合这两个词来表示我的类静态变量是 Final?

例如下面的代码有效吗?

class Connection:
    TIMEOUT: Final[ClassVar[int]] = 10
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.8 python-typing

12
推荐指数
1
解决办法
8934
查看次数

如何修改MySQL Workbench的标准路径,指向备份的存储位置?

目前,每当我想通过MySQL Workbench转储数据库时,它会将此标准路径显示为默认路径:

/home/me/dumps/Dump20110810 # The date alters.
Run Code Online (Sandbox Code Playgroud)

因为我已经将我的转储移动到一个更合适的地方(对我来说),每次我想要转储一些东西时改变路径都很烦人.我真的希望有一个设置选项,不仅可以为MySQL Workbench提供其他默认路径,还可以将新模板转换为:

/home/me/coding/myproject/Dump_database_name_2011-08-10_23:59
Run Code Online (Sandbox Code Playgroud)

我在设置中戳了一下,但我找不到任何开关.也许熟悉Workbench的人知道如何改变这种行为?

mysql-workbench

11
推荐指数
1
解决办法
4661
查看次数

Angular2单击非表单元素上的事件

这是关于Angular2

我如何在非表格元素上听取事件(如Click)<li>

边一个bar.html

<div class="col-sm-3 col-md-2 sidebar">
    {{title}}
    <ul class="nav nav-sidebar">
        <li *ng-for="#collection of collections" (click)="liClicked(this)">
            <a href="#">{{ collection }}</a>
        </li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

SideBarComponent

function SideBarComponent(){
    this.title = "Collections";
    this.collections = ["Collection-1", "Collection-2", "Collection-3", "Collection-4", "Collection-5"];
    this.liClicked = function(el){
        alert('a');
    }
}
SideBarComponent.annotations = [
    new angular.ComponentAnnotation({
        selector:'side-bar'
    }),
    new angular.ViewAnnotation({
        templateUrl: 'templates/side-bar.html',
        directives:[angular.NgFor]
    })
];
Run Code Online (Sandbox Code Playgroud)

这里要注意的一点是,如果我用<a>side-bar.html 替换<button>标签,那么click事件就可以了.但由于某种原因,当我(click)<li>元素添加处理程序时,它不起作用.

javascript angular

10
推荐指数
2
解决办法
6万
查看次数

如何使用 Symfony Mailer 组件禁用“verify_peer”?

我正在配置一个带有自签名证书的邮件服务器(后缀),而且这个自签名证书似乎是 Symfony Mailer 组件的一个问题。

在 Swiftmailer 上,使用一些配置,例如:

transport:
    stream_options:
        ssl:
            allow_self_signed: true
Run Code Online (Sandbox Code Playgroud)

或者

stream_options:
    ssl:
        verify_peer: false
        verify_peer_name: false
Run Code Online (Sandbox Code Playgroud)

可能会修复它,但我找不到在邮件程序上执行此操作的方法(如果可能,我想使用 YAML 配置文件)。

php symfony symfony4 symfony-mailer

10
推荐指数
2
解决办法
4299
查看次数

永远不要在制作中运行'composer update'为什么?

composer install将在composer.lock文件中声明时安装,但composer update将更新所有依赖项并根据所需内容创建 composer.lock文件composer.json.

这么多说只是composer update在开发中运行.但我的问题是做composer update了更换旧composer.lock文件,如果你的应用程序要打破它会破坏,因为可能与新更新的依赖项有冲突.

我遇到了一个必须要做的情况composer update,问题与​​pcntl扩展有关.唯一的解决方案是pcntl 安装PHP pcntl模块

我不明白为什么人们害怕这样做composer update.

php composer-php

9
推荐指数
2
解决办法
4068
查看次数

当 Composer 连接到 GitHub 时,我会收到有关弃用身份验证方法的警告。我应该使用什么身份验证配置?

GitHub 已开始发送有关已弃用身份验证的电子邮件,但我还没有找到详细说明auth.json在新制度下作曲家应该是什么样子的资源。

我的要求相对简单 - 使用 composer 更新开发中的 Symfony 应用程序,并偶尔尝试其他存储库。

有了这个,我的原始配置(自动构建)...

{
    "github-oauth": {
        "github.com": "(a string)"
    }
}
Run Code Online (Sandbox Code Playgroud)

...我收到此警告:

...您的个人访问令牌...用作查询参数的一部分以通过 GitHub API 访问端点...请改用 Authorization HTTP 标头...

但是当我尝试使用其他配置时:

{
    "http-basic": {
        "github.com": {
            "username": " my email address",
            "password": " my password "
        }    }
}
Run Code Online (Sandbox Code Playgroud)

我收到另一个警告:

您最近使用 Composer/1.9.1 通过 GitHub API 使用密码访问端点……我们建议改用具有适当范围的个人访问令牌 (PAT) 来访问此端点。

它到底应该是什么样子,为什么我会收到这些弃用警告?

php github composer-php

9
推荐指数
1
解决办法
1843
查看次数

不推荐使用 setOnNavigationItemSelectedListener

目前我正在开发一个应用程序,它有一个带有三个菜单项的底部导航栏。我曾经用于setOnNavigationItemSelectedListener()被点击的项目。但现在我面临这个方法已经贬值的问题。

  • 应用语言: Java
  • 问题: 'setOnNavigationItemSelectedListener(com.google.android.material.bottomnavigation.BottomNavigationView.OnNavigationItemSelectedListener)' is deprecated

有什么办法可以解决吗?有没有比setOnNavigationItemSelectedListener()方法更好的选择。

java android bottombar

9
推荐指数
4
解决办法
6297
查看次数

安装composer后如何纠正对未定义函数Symfony\Component\Console\Helper\mb_detect_encoding()的调用?

我正在使用 ubuntu 21.04,因为我使用此命令安装了 Composer sudo apt-get install composer,安装后我输入composer它显示以下错误

HP Fatal error:  Uncaught Error: Call to undefined function Symfony\Component\Console\Helper\mb_detect_encoding() in /usr/share/php/Symfony/Component/Console/Helper/Helper.php:50
Stack trace:
#0 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(329): Symfony\Component\Console\Helper\Helper::strlen('h')
#1 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(97): Symfony\Component\Console\Descriptor\TextDescriptor->calculateTotalWidthForOptions(Array)
#2 /usr/share/php/Symfony/Component/Console/Descriptor/TextDescriptor.php(197): Symfony\Component\Console\Descriptor\TextDescriptor->describeInputDefinition(Object(Symfony\Component\Console\Input\InputDefinition), Array)
#3 /usr/share/php/Symfony/Component/Console/Descriptor/Descriptor.php(55): Symfony\Component\Console\Descriptor\TextDescriptor->describeApplication(Object(Composer\Console\Application), Array)
#4 /usr/share/php/Symfony/Component/Console/Helper/DescriptorHelper.php(67): Symfony\Component\Console\Descriptor\Descriptor->describ in /usr/share/php/Symfony/Component/Console/Helper/Helper.php on line 50

Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题

php ubuntu-21.04

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

如何完全刷新具有@OneToMany关系的实体?

在我的项目中,有一个Cart和一个CartItem实体,如下所示:

class Cart {

    /**
     * @OneToMany(targetEntity="CartItem", mappedBy="cart")
     */
    private $items;

    // ...
}

class CartItem {

    /**
     * @ManyToOne(targetEntity="Cart", inversedBy="items")
     * @JoinColumn(name="cart_id", referencedColumnName="cart_id")
     */
    private $cart;

    // ...
}
Run Code Online (Sandbox Code Playgroud)

如果调用EntityManager::refresh($cart),则其中的项目不会更新,只会更新Cart对象。

如何在不显式调用每个子元素的情况下从数据库刷新对象及其所有内容?

我想避免调用EntityManager::clear(),因为这会导致程序其他部分出现错误。

php doctrine doctrine-orm

8
推荐指数
1
解决办法
123
查看次数