小编min*_*.dk的帖子

如何使用内置的composer-plugin创建单片Composer包?

我希望我的软件包附带一个内置的composer-plugin.

我有这样的结构:

composer.json
src/
    ...
plugin/
    composer.json
    src/
        ...
Run Code Online (Sandbox Code Playgroud)

composer.json配置如下:

{
    "name": "foo/bar",
    "type": "library",
    "autoload": {
        "psr-4": {
            "Foo\\Bar\\": "src/"
        }
    },
    "repositories": [
        {
            "type": "path",
            "url": "./tools",
            "options": {
                "symlink": false
            }
        }
    ],
    "require": {
        "foo/bar-plugin": "*"
    }
}
Run Code Online (Sandbox Code Playgroud)

而内置的composer-plugin是plugin/composer.json这样的:

{
    "name": "foo/bar-plugin",
    "type": "composer-plugin",
    "require": {
        "composer-plugin-api": "^1",
        "composer/composer": "^1",
        "foo/bar": "*"
    },
    "autoload": {
        "psr-4": {
            "Foo\\Bar\\Plugin\\": "src/"
        }
    },
    "extra": {
        "class": "Foo\\Bar\\Plugin\\MyComposerPlugin"
    }
}
Run Code Online (Sandbox Code Playgroud)

注意这里有一个双向依赖 - 插件依赖于foo/bar …

php json composer-php composer-plugin

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

不带 React 的 TypeScript JSX

我想在 TypeScript 中使用 JSX 语法,但不想使用 React。

我在这里看到了其他相关问题的答案,但没有任何内容足够完整或详细,无法提供任何帮助。我已经阅读了本指南和手册中的JSX 章节,但没有多大帮助。我不明白语言功能本身是如何工作的。

我尝试检查 React 声明,但它对我来说太大了,无法吸收 - 我需要一个最小的、有效的示例来演示类型检查的元素、组件和属性。(它不需要工厂函数的有效实现,我最感兴趣的是声明。)

我至少想要一个能够实现以下工作且具有类型安全性的示例:

var el = <Ping blurt="ya"></Ping>;

var div = <div id="foo">Hello JSX! {el}</div>;
Run Code Online (Sandbox Code Playgroud)

JSX.IntrinsicElements我想我至少需要声明createElement()某种工厂函数,但这就是我所得到的:

declare module JSX {
    interface IntrinsicElements {
        div: flurp.VNode<HTMLDivElement>;
    }
}

module flurp {

    export interface VNode<E extends Element> {
        id: string
    }

    export function createElement<T extends Element>(type: string, props?: any, ...children: (VNode<Element>|string)[]): VNode<Element> {
        return {
            id: props["id"]
        };
    }
}

class Ping {
    // …
Run Code Online (Sandbox Code Playgroud)

jsx typescript

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

多个类型/类的HQL查询

我有一个复杂的类层次结构,具有多个继承级别,我需要使用HQL查询该层次结构中的某些特定类型.

假设我有Cat,Dog和Monkey类,有一个共同的基类Animal.

我如何编写一个只选择其中一些的查询,比方说,Cat和Dog?

我还需要按某些动物属性进行排序或过滤 - 所以让我们说,动物的性别="男性"并按名称排序.

这可能吗?

nhibernate types hibernate hql

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

我应该存储空的tsvector值还是NULL值?

tsvector在列中存储值时,对于没有搜索项的记录,我应该存储空值tsvector还是NULL值?

有关系吗?

存储空载体的性能或存储开销是否有任何差异?

换句话说,当基于例如可空title列的值更新向量时,我是否需要始终将其计算为to_tsvector(coalesce(title,''))(因为在给定参数时to_tsvector返回)或者它是否足够?NULLNULLto_tsvector(title)

postgresql tsvector

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

PHP中(跨平台)实时数据流的最佳方法?

我一直想知道如何使用PHP进行"真正的"(半)实时数据流传输.

可能的应用:聊天室,拍卖,游戏等

"真实",我的意思是数据不只是写在某处并且不断地进行轮询,而是以某种方式实际流式传输到客户端.

通过"半",我的意思是,只有从服务器到客户端的流是实时的,并且从客户端到服务器的消息不是.

对于客户端和服务器之间的通信,我想坚持使用普通HTTP(AJAX)而不是其他协议.

通过手动刷新输出缓冲区,可以使用HTTP流式传输到客户端.

问题是如何将该脚本连接到服务器端?

一旦连接,就进行阻塞读取,而不是轮询更改.

共享内存(shmop)扩展可以工作,但它不是跨平台的.

也许memcached会起作用吗?但是我不确定是否有办法进行阻塞读取,所以它再次归结为轮询 - 尽管我确定memcached非常快,我只是不喜欢连续轮询的想法.

有任何想法吗?

javascript php push

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

Scrutinizer说Travis通知"测试失败",但测试确实通过了

我在GitHub上有这个项目.在我的.travis.yml文件中,我使用与每个项目相同的配置,将代码覆盖率数据上传到Scrutinizer:

after_script:
  - wget https://scrutinizer-ci.com/ocular.phar
  - php ocular.phar code-coverage:upload --format=php-clover test/build/logs/clover.xml
Run Code Online (Sandbox Code Playgroud)

这是Travis最近的成功构建:

https://travis-ci.org/mindplay-dk/boxy/builds/61963347

这是最近对Scrutinizer进行的失败检查:

https://scrutinizer-ci.com/g/mindplay-dk/boxy/inspections/ac33c2fb-6083-4984-bf41-983e4d0f54e2

一旦Travis上传代码覆盖率数据,就会显示错误消息"Scrutinizer被通知测试失败".

continuous-integration unit-testing github travis-ci scrutinizer

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

将PHP对象图序列化/反序列化为JSON

我想将一个完整的PHP对象图序列化为JSON字符串表示,并将其反序列化为相同的PHP对象图.

以下是我考虑的选项摘要,以及它们不适合我的原因:

  • serialize()没有做我想要的,因为它使用特定于PHP的格式.我想要一种大多数语言广泛支持的格式,以及人类可读/可编辑的格式.

  • json_encode()没有做我想要的,因为它只做简单的值和数组,而不是对象.(我实际上是在我的实现中使用它,见下文.)

  • var_export()不处理循环引用,并且不执行我想要的操作(参见上文.)(请注意,我当前的实现也不处理循环引用 - 请参阅下面的注释和回复以澄清此问题.)

  • Sebastian Bergmann的Object Freezer是一个很好的实现,但它不能做我想要的 - 它使用很长的形式,并依赖于使用GUID填充序列化对象.

  • 序列化没有做我想要的 - 它实际上不执行序列化,它解析输出serialize()并产生不同的表示,例如XML,但无法解析该表示.(它也不支持JSON - XML格式很长,并不是我想要的.)

我现在有一个工作实现分享:

https://github.com/mindplay-dk/jsonfreeze

对象图的JSON表示如下所示:

{
    "#type": "Order",
    "orderNo": 123,
    "lines": [{
        "#type": "OrderLine",
        "item": "milk \"fuzz\"",
        "amount": 3,
        "options": null
    }, {
        "#type": "OrderLine",
        "item": "cookies",
        "amount": 7,
        "options": {
            "#type": "#hash",
            "flavor": "chocolate",
            "weight": "1\/2 lb"
        }
    }],
    "paid": true
}
Run Code Online (Sandbox Code Playgroud)

此方法旨在用于纯树结构聚合 - 不允许循环引用,也不允许对同一对象进行多次引用.换句话说,这不是通用的,例如serialize(),unserialize()任何PHP对象图的功能.

在我最初的方法中,我使用了一个序列化的表单,它基本上是一个基础0对象列表.列表中的第一个对象(编号0)是序列化对象图的根,任何其他对象按其找到的顺序存储.

在当前实现中,JSON表示类似于可能的扩展的原始树结构,使得实际使用JavaScript中的对象图的JSON表示成为可能.唯一的偏差是magic #type属性(前缀为#以防止与属性名冲突)和 …

php arrays serialization json reference

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

我可以防止意外覆盖TypeScript/JavaScript中的局部变量吗?

今天我浪费了一个小时调试一个简单的问题,其中一个名为local的变量server被初始化和配置 - 然后,在同一个文件的最后一行上,意外地重新声明它,例如通过另一个var server = ...语句,有效地创建一个变量命名server,从而导致前一个变量超出范围; 然而,因为这些是相同类型的变量,具有相同的名称,所以其他一切继续工作,这使得调试相当困难.

是否有TypeScript或JavaScript语言功能,可以防止这种情况?

我的想法是,在同一范围内声明两个具有相同名称的变量,根本不应该被允许.

也许有一个短绒或一些质量保证工具,有能力检查和防止这种事情?(也许还有其他"坏"模式?)

javascript local-variables typescript

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

在reactjs应用程序中打开一个弹出窗口

嗨,我想打开一个类似于当有人单击“注册链接”时该网站打开的弹出窗口https://www.eventshigh.com/detail/Bangalore/625f39dbdb5b8e4fb5b78a073922f221-6th-save-the-queen-corporate?src=ecbox

我想将属性传递给子元素,该子元素将在弹出窗口中打开,然后将子元素中采取的操作捕获到父元素中。

有人可以告诉我我们如何做到最好。

reactjs

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