小编jdf*_*the的帖子

PHP覆盖父类特征的特征方法

我正在使用Laravel 5.1但这不是特定于该框架,它更像是一般的PHP问题.

有一个指定了特征的父类:

namespace Illuminate\Foundation\Auth;

use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements
  AuthenticatableContract,
  AuthorizableContract,
  CanResetPasswordContract {
    use Authenticatable, Authorizable, CanResetPassword;
}
Run Code Online (Sandbox Code Playgroud)

然后我有User类,我关心从那里扩展:

namespace App\Api\V1\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Zizaco\Entrust\Traits\EntrustUserTrait;

class User extends Authenticatable {
  use EntrustUserTrait {
    EntrustUserTrait::can insteadof \Illuminate\Foundation\Auth\Access\Authorizable;
  }
}
Run Code Online (Sandbox Code Playgroud)

EntrustUserTrait有一个can()与冲突法Authorizable特质.但是,Authorizable特征是在父类上,因此会引发错误Required Trait wasn't added to App\Api\V1\Models\User.

我一直在搜索,并且有关于在子类中声明的覆盖特征的大量信息,但我似乎无法找到有关从父类重写特征的任何信息.

php

7
推荐指数
1
解决办法
982
查看次数

您使用什么工具或技术来同步存储库之间的配置?

我们有几个基础存储库,用于快速搭建新项目。其中包括以下内容的基础存储库:

  • TypeScript + Node 库
  • TypeScript + Node 微服务/工作人员
  • 角度应用
  • gRPC 存根/protobuf 库
  • ETC。

基础存储库包含启动新项目所需的所有配置和文件夹结构,类似于ng newcreate-react-app、 yeoman 生成器等。这包括 CI 配置、测试配置、linting 配置、tsconfig、带有脚本和开发依赖项的 package.json 等内容,用于设置、扩展建议、启动配置等的 VSCode 文件。基本上,存储库包含您需要在这些类似存储库之间共享的所有内容(代码除外)

有一些工具可以在存储库之间共享代码,例如 bit,或者您也可以发布库来共享代码,我们广泛使用了这些工具。但是,我还没有找到在许多存储库之间共享配置文件的好方法。我们可以简单地从基础存储库克隆或编写我们自己的生成器,但问题是保持配置同步。例如,如果我们更改 CI 配置,我不想记住哪 50 个存储库基于也需要更改的存储库。

我们不可能是唯一一家拥有超过 100 个存储库的公司,而且随着我们分成越来越多的分布式服务和库,增长没有尽头。我们可以采用单一存储库模式,但它仍然不会改变这样一个事实:单一存储库中的每个项目仍然需要自己的配置,并且必须在所有项目之间保持同步。

所以问题是,我缺少什么工具或技术可以使这些配置在许多不同的存储库之间保持同步?

git config repository microservices

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

标签 统计

config ×1

git ×1

microservices ×1

php ×1

repository ×1