没什么好介绍的
专栏文章
最近话题
最新评论
  • 从 Dingo API 原理来看 Laravel 的 Http 请求处理过程 at 2017-03-22 08:46:15

    @Summer 大神早~

  • 请问下 Laravel 的 ORM 查询条件能不能像 TP 那样传递数组作为条件呢 at 2017-03-21 15:52:01

    @BoomThanks 要用结果保存 $users = $query->get(),这个方法会 return 一个结果,而 $query 依然是 Builder

  • 打造漂亮的 PhpStorm 界面 at 2017-03-20 22:57:57

    @ADKi 换主题什么的倒是其次,我之前不知道怎么换那个文件类型的图标,然后昨天找到了。。。很兴奋 结果你们都已经知道了 - -也没人写个教程什么的

  • 打造漂亮的 PhpStorm 界面 at 2017-03-20 11:21:56

    @Hanccc 多谢,昨天写的时候记得不是太清~

  • 打造漂亮的 PhpStorm 界面 at 2017-03-20 08:53:35

    @leo :smirk:

  • vue 请求后端数据是否会被抓包? at 2017-03-13 12:01:59

    我估计题主的意思是如何避免被别人很直接的通过 api 接口就可以抓取网站的信息吧?这个没有办法完全避免,要不就是请求需要认证,另外一个方法就是请求时需要提供一个特定的 token,这个token的算法可以在 vue 中实现,后台通过判断这个 token 是否合法来判定请求是否是自己的前段请求的。这也不是一劳永逸,一方面算法写在前端,这个算法是可以通过查看 js 代码获取的,另外如果别人知道你的加密算法,那就完全失效,除非经常变换。

  • Vagrant 使用中碰到的一个奇葩问题 at 2017-03-10 11:54:58

    @Summer 我一般都会比较注意,万万没想到那个也是一个坑 :sweat_smile:

  • Vagrant 使用中碰到的一个奇葩问题 at 2017-03-09 21:15:07

    @leo 公司主要 .net 开发 :laughing:

  • Storage 使用中的一个问题 at 2017-02-22 17:00:06

    @泽 修改 Vagrantfile,添加这个,然后运行 vagrant up 的那个命令行也要用管理员运行。

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    
        .
        .
        .
        config.vm.provider "virtualbox" do |v|
            v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
        end
    end
  • nginx 报错 monolog 的错误 at 2017-02-21 16:10:11

    @ChenPHPER 按道理是的,php-fpm 的子进程处理文件的,所以应该要给 www-data的权限

  • nginx 报错 monolog 的错误 at 2017-02-21 14:40:10

    @ChenPHPER 从错误内容来看,很有可能是 php-fpm的权限失败。ps aux | grep php-fpm看看用户是否有权限。具体的nginx错误可以查看 /var/logs/nginx 看看什么内容

  • nginx 报错 monolog 的错误 at 2017-02-21 13:33:46

    如果 logs 文件夹修改了,storage 的权限要重新给予

  • Laravel 认证原理及完全自定义认证 at 2017-02-20 10:56:14

    @Rambone 下周末的 meet up 准备重点讲讲那个的一些实践 :laughing:

  • 使用 Pixi.js 创建 HTML5 游戏 at 2017-02-15 11:12:46

    @Summer 这段时间比较闲,所以就啰嗦了一下 :laughing:

  • [已经解决]Laravel 在部署 Homestead 后执行 Vagrant up 的时候报错 at 2017-02-08 15:33:06

    Homestead.yaml 设置网站 site 部分的时候不要用 tab,替换成空格。.yaml 格式错误, maybe...

  • 一个 VirtualBox 能否安装两个开发环境?(两个定制的虚拟盒子) at 2017-02-08 12:31:09
  • Laravel 在构造函数中使用 abort 函数时 at 2017-02-08 10:43:32

    囧,刚刚又看了下为什么控制器没有缓存,根本不是垃圾回收或触发什么事件,而是压根就没有创建控制器,控制器创建的时候调用 abort(503) 就抛出异常了。。。。

    搞不懂为什么要这样用~~

  • 一个 VirtualBox 能否安装两个开发环境?(两个定制的虚拟盒子) at 2017-02-08 10:30:14

    @满矅帆 修改新的Homestead\scripts\homestead.rb

    config.vm.box_version = settings["version"] ||= ">= 0"

    这个问题跟安装几个box没有关系,只要是缓存了box,从本地安装box 的话就会有这个问题。

  • Laravel 在构造函数中使用 abort 函数时 at 2017-02-08 10:26:21

    很好奇这个问题,所以看了一下。

    abort(503) 到底是干了什么?

    abort(503) 这个辅助函数,其实只是调用了 Illuminate\Foundation\Application@abort 方法抛出一个异常

    throw new HttpException($code, $message, null, $headers);

    问题是如果写在方法里面是正常的,为什么写在构造函数里面就会有问题呢?

    打开 public/index.php 在 $response->send(); 后面 dd(1) 看一下,到目前为止一切都正常,不管写在构造函数里面还是方法里面都只是输出了一个

    503

    ,所以问题就出在下一句:$kernel->terminate($request, $response);.

    这句的作用是干嘛?我们知道中间件有一个叫Terminable 中间件,也就是在响应之后处理的中间件,这个方法就是处理这个中间件的。

    为什么处理中间件会导致再次发送一次

    503

    ? 关键在控制器中间件

    Illuminate\Foundation\Http\Kernel@terminate 会合并所有的路由中间件,包括控制器中间件。

    而获取控制器中间件的时候就需要获取控制器。

    Illuminate\Routing\Route@getController 方法原则上回缓存控制器:

    public function getController()
        {
            list($class) = explode('@', $this->action['uses']);
    
            if (! $this->controller) {
                $this->controller = $this->container->make($class);
            }
    
            return $this->controller;
        }

    但是,不知道是因为垃圾回收还是触发了事件,导致控制器没有缓存,所以又重新创建了控制器

    我们可以var_dump 一下看看:

    var_dump($this->controller);

    结果:

    NULL
    503
    NULL
    503

    这才是罪魁祸首,因为控制器没有被缓存,而处理 Terminable 中间件 时又重新创建了一个控制器,相当于又抛出了一个 HttpException ,而 ExceptionHandler 就重新发送了一个响应。

  • 一个 VirtualBox 能否安装两个开发环境?(两个定制的虚拟盒子) at 2017-02-08 08:35:36

    @满矅帆 Vagrantfile 里面要改的是这一句:confDir = $confDir ||= File.expand_path("~/.homestead"),把 homestead 改成 homestead-6 然后改 init.bat 里面 set homesteadRoot=%HOMEDRIVE%%HOMEPATH%\.homestead-6 就OK了