小编Ter*_*ion的帖子

如何在__call中模拟不存在的方法错误?

也许奇怪的问题,但是...我有一个神奇的__call方法,它返回某些类的实例,或者,如果没有这样的类,则在底层对象中调用相同的方法.

public function __call($name, $arguments)
{
    $class = 'My\\Namespace\\' . $name;

    if (class_exists($class, true)) {

        $reflect = new \ReflectionClass($class);
        return $reflect->newInstanceArgs($arguments);

    } elseif (is_callable([$this->connector, $name])) {

        return call_user_func_array([&$this->connector, $name], $arguments);
    } else {
        // ????
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在else阻止怎么办?我可以模拟未定义的方法错误吗?或抛出什么异常是正确的?

php

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

我是否可以防止将Leaflet地图移出世界边缘?

有没有办法限制淘汰世界的优势?在这张照片上,棕色是世界,灰色是空虚.我想让它不可能像这样平移.

走出这个世界

javascript maps leaflet

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

docker和mysql:读取通信包时出错

我在docker中遇到连接问题.我使用官方的mysql 5.7图像和Prisma服务器.当我通过prisma cli开始它时,使用docker composeunderneath(在这里描述)一切正常.

但我需要通过docker api以编程方式启动此容器,在这种情况下,应用程序中的连接将被删除[Note] Aborted connection 8 to db: 'unconnected' user: 'root' host: '164.20.10.2' (Got an error reading communication packets).

所以我做了什么:

  1. 创建桥接网络:

    const network = await docker.network.create({
    Name: manifest.name + '_network',
    IPAM: {
      "Driver": "default",
      "Config": [
        {
          "Subnet": "164.20.0.0/16",
          "IPRange": "164.20.10.0/24"
        }
      ]
    }});
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建mysql容器并将其附加到网络

    const mysql = await docker.container.create({
    Image: 'mysql:5.7',
    Hostname: manifest.name + '-mysql',
    Names: ['/' + manifest.name + '-mysql'],
    NetworkingConfig: {
      EndpointsConfig: {
        [manifest.name + '_network']: …
    Run Code Online (Sandbox Code Playgroud)

mysql docker docker-api prisma prisma-graphql

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

Laravel Passport令牌生命周期

我不知道我做错了什么.我无法设置令牌过期时间.

<?php

namespace App\Providers;

class AuthServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->registerPolicies();

        Passport::tokensExpireIn(Carbon::now()->addDays(1));
        Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时$user->createToken(),例如:

<?php
// as a demo
namespace App\Http\Middleware;

class ParseSpecialToken
{
    public function handle($request, Closure $next)
    {
        $user = User::find(1);
        $accessToken = $user->createToken('Some token')->accessToken;
        $request->headers->add(['Authorization' => 'Bearer '. $accessToken]);

        return $next($request);
    }
}
Run Code Online (Sandbox Code Playgroud)

令牌到期仍为1年,而不是1天.为什么?如何更改exp时间?

php oauth-2.0 laravel laravel-passport laravel-5.4

11
推荐指数
4
解决办法
2万
查看次数

jQuery在Internet Explorer 8中不起作用("this"返回DOM而不是jq)

我面临一个奇怪的问题,找不到任何解决方案.

jQuery(任何版本,从1.7.*到1.10.*)在Internet Explorer 8中失败.所有插件(来自bootstrap)和jQuery库都出现错误:

Object不支持此属性或方法

调试器截图:

调试器截图

挖掘插件代码,如下所示:

$.fn.alert = function (option) {
    return this.each(function () {
        //...
    })
}
Run Code Online (Sandbox Code Playgroud)

显示问题:关键字指向HTMLDomObject,而不是jQuery对象.什么会导致这种奇怪的错误?

只有Internet Explorer 8中!

javascript jquery internet-explorer internet-explorer-8

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

我可以在neo4j中使用指定的id创建节点吗?

我想在neo4j中保持关系,但(可能,我还没有决定)将对象保存在不同的DB(Redis)中.如果这样做,最好在存储db和neo4j中同步ID.那么,我可以在neo4j中创建一个节点,将ID传递给它吗?

PHP项目,通过REST API访问neo4j.

php neo4j

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

如何将OpenMapTiles服务器用于MapBox GL JS?

在OpenMapTiles的文档中,它可以为MapBox GL JS提供矢量图块。

但是在挖掘这两个项目的文档时,我没有找到一个选择:如何配置自托管的MapBox GL JS库以使用自托管的OpenMapTiles服务器中的图块?

javascript mapbox mapbox-gl-js openmaptiles

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

vue-class-component:超级表达式必须为空或函数,不能为未定义

好吧,这是一个奇怪的用例,但无论如何。

我有一个控件组件,其中包括菜单组件,它还包括一个控件组件但没有菜单(奇怪的东西,但那是设计)。

我所做的。

控制组件:

import {Component, Prop, Vue} from 'vue-property-decorator'
import Burger from "./Burger";
import ShadowLogo from "./ShadowLogo";
import MegaMenu from "./MegaMenu";

@Component
export default class Controls extends Vue {
  @Prop({default: false})
  showMenu: boolean;

  renderLogo(h) {
    return <div class="logo"><ShadowLogo/></div>
  }

  renderBurger(h) {
    return <Burger opened={this.showMenu} label="????" on-want-change={e => this.$emit('show-menu', !this.showMenu)}></Burger>
  }

  renderFooter(h) {
    return <div class="copyrights"></div>
  }

  renderMenu(h) {
    return <div class="menu-layer">
      {this.showMenu ? <transition name="fade" appear={true}><MegaMenu/></transition> : null}
    </div>
  }

  render(h) {
    return <div class={["control-overlay", this.showMenu ? 'menu-opened' : …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-class-components

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

在提供期间无法在Vagrant上安装NPM

在Vagrant Shell配置期间,我尝试在Debian Wheezy上安装NodeJS和NPM.脚本是(来自指南https://github.com/joyent/node/wiki/backports.debian.org):

sudo echo "deb http://ftp.us.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y nodejs-legacy
curl https://npmjs.org/install.sh | sudo sh
Run Code Online (Sandbox Code Playgroud)

节点设置为魅力,但NPM安装失败:

来自命令的Stderr:

stdin: is not a tty
dpkg-preconfigure: unable to re-open stdin: No such file or directory
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7810  100  7810    0     0   1407      0  0:00:05  0:00:05 --:--:-- 18956
fetching: http://registry.npmjs.org/npm/-/npm-1.3.15.tgz
npm-install-2877.sh: 270: npm-install-2877.sh: cannot open …
Run Code Online (Sandbox Code Playgroud)

provisioning node.js npm vagrant

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

在db种子期间禁用Laravel电子邮件

我使用Mandrill邮件驱动程序进行测试.我有一个远程登台,我在部署后播种.在播种期间,我尝试禁用与某些事件相关联的电子邮件发送.

将它放在播种机中:

Config::set('mail.driver', 'log'); Config::set('mail.pretend', true);

没有效果.我不明白为什么.我把它放在根DatabaseSeeder@run或/和儿童播种机中 - 相同.仍在执行对Mandrill的调用.

有这个问题的解决方案吗?

php email laravel

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