Yii2-user是一个非常流行的用户管理Yii2扩展.有很多叉子和贡献者.许多问题和PR正在等待整合或至少得到回答.
但是,自从3个月以来,回购所有者没有任何活动,与之前的活动相比,这对他来说非常不典型.
目前我坐在叉子上并维护我的分支机构.这可以在短时间内工作,但我不会从其他人那里获得PR,并且不能再与原始仓库同步.
如果所有者放弃其回购(并且无法联系),使回购存活的常见做法是什么?如何作为单个叉所有者和所有叉所有者的社区进行?
我最近在PHP代码中看到了这一行:
$dbObject = json_decode($jsonString);
$dbObject->{'mysql-5.4'}[0]->credentials
Run Code Online (Sandbox Code Playgroud)
这是什么意思?在PHP文档中我们可以阅读,那
方括号和花括号可以互换使用来访问数组元素(例如$ array [42]和$ array {42}在上面的例子中都会做同样的事情).
但是如何定义Object $ dbObject以允许->{...}[...]访问?这段代码有点不安全吗?哪个PHP版本允许这个?
我错过了PHP文档中的任何内容吗?
我的仓库是来自上游仓库2amigos/yii2-usuario的一个分支。
\n我的回购协议背后有一些提交。我想重新同步所有提交并通过切换基础创建拉取请求,以便上游存储库合并到我的存储库中。
\n在创建拉取请求时,Github 说
\nAble to merge. These branches can be automatically merged.\nRun Code Online (Sandbox Code Playgroud)\n但是,当创建拉取请求时,Github 仅显示
\nChecking for ability to merge automatically\xe2\x80\xa6\nHang in there while we check the branch\xe2\x80\x99s status.\nRun Code Online (Sandbox Code Playgroud)\n我无法执行任何操作,既无法终止拉取请求也无法解决它。\n我应该做什么?
\n我有一个仅适用于两种类型a和 的课程b。
我今天的“旧式”代码:
class Work1 {
public function do(string $type):string {
if ($type!="a" && $type!="b")
throw new Error("wrong type");
return "type is $type";
}
}
echo (new Work())->do("a"); // type is a
echo (new Work())->do("c"); // exception: wrong type
Run Code Online (Sandbox Code Playgroud)
现在有了 PHP 8,我们有了enum更好的参数检查选项:
enum WorkType {
case A;
case B;
}
class Work2 {
public function __construct(private WorkType $type) {}
public function do() {
return "type is ".$this->type->name;
}
}
echo (new Work2(WorkType::A))->do(); // type …Run Code Online (Sandbox Code Playgroud) 我们有很多容器开始使用Rancher,每个容器都暴露多个端口。由于我们是使用Rancher启动容器的,因此默认情况下没有端口暴露给主机。
$ docker container ls
Run Code Online (Sandbox Code Playgroud)
显示没有由牧场主启动的容器的裸露端口。rancher未安装Rancher CLI 。
如何列出牧场主网络中公开的端口?使用docker命令有可能吗?还是我需要rancher?
在我的Docker化应用程序中,我需要具有硬件锚点并考虑使用Container的Mac地址。但是:由于Docker容器的Mac地址是可变的,并且在容器启动时动态分配,因此我无法使用此Mac地址(请参阅Docker文档)
MAC地址是使用分配给容器的IP地址生成的,以避免ARP冲突,其使用范围是02:42:ac:11:00:00到02:42:ac:11:ff:ff
Docker主机的Mac地址将是一个可行的解决方案。
如何从在此主机上运行的容器内访问(linux)主机的Mac地址?
我有第一个表和相关的第二个表,其中有第一个表的外键。
第二个表中的行数范围可以从零行到数百万行(时间序列数据)。
当向最终用户显示第一个表的行时,我想显示第二个表中是否有相关行 - 是或否,不多。
目前,我离开了表并在第二张表上进行了计数。但我怀疑这是一种缓慢且消耗资源的方法,仅用于确定第二个表中是否有相关行。
SELECT
first.id,
first.title,
Count( second.id ) as count
FROM
first
LEFT JOIN
second
ON
first.id = second.first_id
GROUP BY
first.id
ORDER BY
count DESC
Run Code Online (Sandbox Code Playgroud)
两个表的主键中都有索引id。数据库是PostgrSQL。
什么是更快和/或更少资源消耗的方式去这里?
如何使用 PHP 获取容器本身内的 Docker 容器 ID?
我刚刚发现 linux 命令如下:
DOCKER_CID=$(cat /proc/1/cpuset | cut -c9-)
Run Code Online (Sandbox Code Playgroud) 在Yii2中,我们使用相关模型
class AnyClass {
...
public function getUser()
{
return $this->hasOne(User::className(), ['id' => 'user_id']);
}
}
Run Code Online (Sandbox Code Playgroud)
这个实现有什么区别?
class AnyClass {
...
public function getUser()
{
return User::find()->where(['id' => $this->user_id]);
}
}
Run Code Online (Sandbox Code Playgroud)
我计划使用多个复合键,并认为第二个版本更容易扩展复合键的附加条件.
我需要替换这个数组中的所有换行符
$fields = [ "hello", "new\nold", "world"];
Run Code Online (Sandbox Code Playgroud)
通过一个|没有循环。
我尝试过array_walk()但失败了。
使用 PHP 7.4
我在 Yii2 应用程序中设置了时区,如 config/web.php 中的文档所述:
'timeZone' => 'Europe/Berlin',
Run Code Online (Sandbox Code Playgroud)
但是:这仅对 Yii2 有效,显然不适用于 PHP 函数,例如date(). PHP 时区设置保持不变,因此 PHP 和 Yii2 之间存在差异。
如何使 Yii2 时区成为根据 Yii2 配置中的时区设置设置 PHP 时区的领先时区?
编辑
时区是在应用程序组件中设置的\Yii::$app,而不是在格式化程序组件中设置的。
我无法修改php.ini文件。
php ×6
docker ×3
yii2 ×3
github ×2
activerecord ×1
containers ×1
database ×1
linux ×1
networking ×1
operators ×1
php-7.2 ×1
php-8 ×1
ports ×1
postgresql ×1
pull-request ×1
rancher ×1
sql ×1
timezone ×1