小编mor*_*h84的帖子

PHP特征 - 更改继承类中静态属性的值

所以,这是我的特点:

trait Cacheable
{
    protected static $isCacheEnabled = false;
    protected static $cacheExpirationTime = null;

    public static function isCacheEnabled()
    {
        return static::$isCacheEnabled && Cache::isEnabled();
    }

    public static function getCacheExpirationTime()
    {
        return static::$cacheExpirationTime;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是基类:

abstract class BaseClass extends SomeOtherBaseClass
{
    use Cacheable;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这是我的2个最后课程:

class Class1 extends BaseClass
{
    ...
}

class Class2 extends BaseClass
{
    protected static $isCacheEnabled = true;
    protected static $cacheExpirationTime = 3600;
    ...
}
Run Code Online (Sandbox Code Playgroud)

以下是执行这些类的代码部分:

function baseClassRunner($baseClassName)
{
    ...
    $output = null;
    if ($baseClassName::isCacheEnabled()) { …
Run Code Online (Sandbox Code Playgroud)

php inheritance properties traits redefinition

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

Angular - ngModelController缺少$ validators?

我一直在看Angular文档:https: //docs.angularjs.org/guide/forms#custom-validation

我正在尝试使用自定义指令创建自己的输入字段验证器.我创建了一个与上面链接相似的指令,只使用我自己的验证功能(6位密码)进行了自定义:

app.directive('password', function() {
   return {
       require: 'ngModel',
       link: function(scope, element, attrs, ctrl) {
           ctrl.$validators.password = function (modelValue, viewValue) {
               if (/^[0-9]{6}$/.test(viewValue)) {
                   return true;
               }

               return false;
           };
       }
   };
});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到此错误:

Error: ctrl.$validators is undefined
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

validation angularjs angular-ngmodel angularjs-ng-model

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

在部署期间/之后获取Maven部署URL

我有一个Java项目。它设置了pom.xml,mvn deploy用于将新工件部署到内部公司Nexus。而且一切正常。

但是...我正在将该应用程序集成到CI / CD系统中。因此,基本上,我需要以编程方式/自动地知道此工件的部署位置(工件的确切Nexus URL),因此我可以将其作为CI / CD系统下一步的输入。

我知道使用Maven时通常不需要这样做。但是我能说什么,我需要这个URL出现在显示此工件的网页上,以及与此相关的其他信息,例如在其上运行了哪些测试,谁创建了它,何时创建,何时提交。它建立在哪个存储库中...

所以...除了手动解析pom.xml文件以尝试重新创建URL的黑手党方式之外,我是否有一种很好的方法来获取此信息。有点像mvn give-me-the-url-to-which-you-would-deploy-if-i-were-to-run-deploy。:)

java continuous-integration maven continuous-delivery

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

Django-将属性值传递给TemplateView中的as_view

这是我的观点(简体):

class MyView(TemplateView):
    def __init__(self):
        self.foo = 'bar'
        super(MyView, self).__init__()
Run Code Online (Sandbox Code Playgroud)

这是在urls.py中:

url(
    r'^/foo/$',
    MyView.as_view(foo='baz'), name='my_view'
)
Run Code Online (Sandbox Code Playgroud)

运行此命令时,出现以下错误:

TypeError: MyView() received an invalid keyword 'foo'. as_view only accepts arguments that are already attributes of the class.
Run Code Online (Sandbox Code Playgroud)

为什么?我以为这样可以。:/

至少根据这篇文章:http : //reinout.vanrees.org/weblog/2011/08/24/class-based-views-walkthrough.html#class-view

如果我正确理解这一点,则应该将属性设置为传入foo的值。如果没有任何属性,则值应为。'baz'as_viewas_view'bar'__init__

python django django-templates

3
推荐指数
1
解决办法
3020
查看次数

AspectJ-方法参数的更改值

我想要这样的东西:

public void doSomething(@ReplaceFooBar String myString) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

ReplaceFooBar是我的自定义注释,在方法开始执行之前,它应该采用的值,myString并在其replaceAll上加上“ bar”,然后对它进行“ foo”的操作,以便它以新的字符串值执行。因此,如果使用参数“ I'm at the foo”调用该方法。它实际上应与“我在酒吧”一起执行。

我不知道该怎么做。我已经摆弄了一段时间。假设我最后结束了这一点:

@Documented
@Target({ElementType.PARAMETER, ElementType.FIELD, ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ReplaceFooBar {
}
Run Code Online (Sandbox Code Playgroud)

和...

@Aspect
public aspect ReplaceFooBarAspect {
    @Before("@annotation(ReplaceFooBar)")
    public String replaceFooBar(String value) {
        if (value == null) {
            return null;
        }
        return value.replaceAll("foo", "bar");
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我的代码未编译,出现了此类错误。

Error:(6, 0) ajc: Duplicate annotation @Aspect
Error:(7, 0) ajc: aspects cannot have @Aspect annotation
Error:(10, 0) ajc: This advice must return …
Run Code Online (Sandbox Code Playgroud)

java annotations aspectj

3
推荐指数
1
解决办法
2096
查看次数

按键列表排序

我有这个:

order = [
    'foo',
    'bar',
    'baz',
]
data = {
    'bar': 'barValue',
    'foo': 'fooValue',
    'baz': 'bazValue',
}
Run Code Online (Sandbox Code Playgroud)

我想最终得到这个:

sorted_data = [
    'fooValue',
    'barValue',
    'bazValue',
]
Run Code Online (Sandbox Code Playgroud)

所以,我有一个带键值对的字典,我有一个列表,其中包含来自该字典的键.我想得到一个按键排序的dict值列表,按列表中指定的顺序排序.

我需要这个,因为不幸的是Django不支持模板中这样简单的东西:

{% for key in order %}
    <div>{{ data[key] }}</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

python django django-templates python-2.7

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

Git - 如何隐藏冲突并稍后解决

我将一个分支合并到另一个分支并遇到了冲突。我部分解决了这个问题,但我需要同事的帮助才能完成解决。与此同时,当我在等他的时候,我想把这场冲突隐藏起来,继续做其他事情。但我不想失去已经解决的事情的进展。

我应该怎么办?除了在另一个目录中再次克隆存储库或手动复制冲突的文件然后稍后将其复制回来之外,还有其他方法可以实现此目的吗?

如果我尝试简单地隐藏它,git 会像这样抱怨:

path/to/file/with/unresolved/conflict: needs merge
path/to/file/with/unresolved/conflict: needs merge
path/to/file/with/unresolved/conflict: unmerged (somesha)
path/to/file/with/unresolved/conflict: unmerged (somesha)
path/to/file/with/unresolved/conflict: unmerged (somesha)
fatal: git-write-tree: error building trees
Cannot save the current index state
Run Code Online (Sandbox Code Playgroud)

git git-stash merge-conflict-resolution git-merge-conflict

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