小编Mar*_*sen的帖子

PHP单例类的最佳实践

可能重复:
谁需要单身人士?

我总是写最佳实践,但我也想了解为什么给定的东西是最佳实践.

我读过一篇文章(遗憾的是我不记得),单例类更喜欢被实例化,而不是用静态函数创建并使用范围解析运算符(::)进行访问.因此,如果我有一个包含所有要验证的工具的类,简而言之:

class validate {
    private function __construct(){}
    public static function email($input){
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我被告知这被认为是不好的做法(或者至少被警告过),因为有垃圾收集器和维护这样的东西.所以对"单体类作为静态方法"的批评是什么,我实例化一个类我100%肯定我只会实例化一次.对我来说,它似乎在做"双重工作",因为它已经准备好了.我错过了什么?

对此事有何看法?当然,这不是生死攸关的问题,但如果有选择的话,人们也可以做正确的事情:)

php oop singleton design-patterns class

23
推荐指数
2
解决办法
7万
查看次数

Opera 中的奇怪 net::ERR_BLOCKED_BY_ADBLOCKER

我希望这适合 Stackoverflow。

当我从本地主机工作并“接触”Stripe JavaScript 库时,我收到此错误:

Failed to load resource: net::ERR_BLOCKED_BY_ADBLOCKER
Run Code Online (Sandbox Code Playgroud)

我首先验证了 Opera 的 AdBlocker 和 Tracking cookie 拦截器对于 localhost 已禁用。我什至启用和禁用了它们。我重新启动了 Opera,并且重新启动了整个机器。我还验证了我拥有最新版本的 Opera(v.68)。

我测试了其他一些网站,也会发生相同的错误,但前提是 AdBlocker 处于活动状态。我 100% 确信 AdBlocker 已针对 localhost 停用(我也不会混淆 localhost 或 127.0.0.1)。

我使用的是 Opera 的原生 AdBlocker,而不是第三方。

如果我在浏览器范围内禁用广告拦截(即从 Opera 的设置),则不会导致此问题。

Opera 似乎对 localhost 感到困惑,不是吗?

Chrome 中不会出现该问题。

Google 关于此错误类型的信息非常非常有限。

据我所知,我必须这样做,没有其他软件可以阻止这些“广告”。

我的项目是用 Vue 编写的,并使用 NPM 在端口 5300 上运行。

它似乎并没有真正阻止 Stripe 想要执行的脚本,但它们填满了我的控制台,给我带来了巨大的不便。

有人有什么想法吗?

opera

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

Git 钩子:“致命:不是 git 存储库:”

我的设置与我在新服务器上创建的设置类似,所以我知道“原理有效”。我有一个 Git post-receive 看起来像这样:

#!/bin/sh
git --work-tree="~/public_html" --git-dir="~/repo/website" checkout master -f
Run Code Online (Sandbox Code Playgroud)

我已经检查了十次这些是现有的正确文件夹:-)

为了设置 Git 存储库,我运行了以下命令:

cd ~/repo/website
git init --bare
# Added content to post-receive file
chmod +x hooks/post-receive
# Verified that these permissions are set on the file
Run Code Online (Sandbox Code Playgroud)

我已将一些内容添加(推送)到 repo 中以进行测试。现在,当我尝试使用此命令执行测试命令时:

cd ~/repo/website && bash hooks/post-receive
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

fatal: not a git repository: '~/repo/website'
Run Code Online (Sandbox Code Playgroud)

然后我尝试完全删除 repo 并从头开始制作。但是在第四次尝试时,我开始认为这不是前进的方向;-)

我在相关的 Stackoverflow 线程上读到可能 HEAD 文件已损坏。然而,它看起来不错 - 并且还与其他从头开始的尝试一起重新制作了四次。

出于部署原因,我需要设置工作树等。在其他服务器上使用相同的设置也能正常工作。

我希望有人知道如何解决这个问题。谢谢!

git githooks

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

标签 统计

class ×1

design-patterns ×1

git ×1

githooks ×1

oop ×1

opera ×1

php ×1

singleton ×1