小编the*_*777的帖子

Laravel 4:外墙是如何解决的?

我有点看看Laravel 4 幕墙下面发生了什么.

我们以此Facade为例:

File::get(someArgs);
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错的话,一步一步(过度简化)的调用将是:

//static method invocation which are all extended from Facade class
File::__callStatic(get, someArgs)
//returns an instance of FileSystem
File::resolveFacedeInstance('files') 
FileSystem->get(someArgs)
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是在下面的方法File :: resolveFacadeInstance()的注释行中:

protected static function resolveFacadeInstance($name)
{
    if (is_object($name)) return $name;

    if (isset(static::$resolvedInstance[$name]))
    {
        return static::$resolvedInstance[$name];
    }



    /**
    * The line that i'm confused about
    */

    return static::$resolvedInstance[$name] = static::$app[$name];
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • File :: $ app如何在Facade类中初始化或赋值
  • 如果File :: get()是被调用的Facade

    static :: $ app [$ name]将解析为我认为Application ['files']或Application->文件,它们又调用Application - …

php laravel laravel-4

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

无法自我更新作曲家?

我一直在使用作曲家大约一个月了.然后有一天作曲家给我看了这条消息:

警告:作曲家的这个开发版本已经超过30天了.建议通过运行"/ usr/local/bin/composer self-update"来更新它以获取最新版本.

我根据文档全局安装了composer.

which composer
/usr/local/bin/composer
Run Code Online (Sandbox Code Playgroud)

运行sudo composer自我更新给了我这样的信息:

/ usr/bin/env:php:没有这样的文件或目录

我 用这个命令检查了/ usr/bin/env:

whereis /usr/bin/env
env: /usr/bin/env /usr/bin/X11/env /usr/share/man/man1/env.1.gz
Run Code Online (Sandbox Code Playgroud)

我的php版本:

PHP 5.5.1 (cli) (built: Jul 26 2013 19:50:47) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans
Run Code Online (Sandbox Code Playgroud)

事实上似乎/ usr/bin/env存在.

我正在使用ubuntu 12.04LTS.

更新

strace sudo composer self-update 2>&1 | grep open …
Run Code Online (Sandbox Code Playgroud)

php composer-php

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

find 命令末尾的“\;”和“+”有什么区别?

这些是用于将制表符转换为空格的 bash 命令。这是原始 stackoverflow 帖子的链接。

这个\;在命令末尾使用

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' \;
Run Code Online (Sandbox Code Playgroud)

这个使用+而不是\;.

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' '+'
Run Code Online (Sandbox Code Playgroud)

两者到底有什么区别?

bash find command-line-interface

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

静态网络服务器到底是什么?

目前我一直在尝试使用grunt并将使用grunt-contrib-qunit,它似乎需要grunt-contrib-connect

我真正困惑的是 grunt-contrib-connect 启动了一个静态 Web 服务器。静态这个词确实让我感到困惑。在开发过程中,我是否需要一个 Web 服务器来存储图像、html、css、js 等静态文件?

我目前正在学习 PHP 并使用xampp其中包括apache。它与 Apache 等 Web 服务器有何不同?因为我认为它们将使用不同的端口,所以我可以并排使用它们吗?

web gruntjs

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

vagrant ssh无法按预期工作,它不符合我的自定义设置

首先,我为我的流浪盒设置了一个单独的ssh密钥.我在〜/ .ssh/config上进行了此设置

Host    vag_ubuntu14
HostName 127.0.0.1
Port    2222
User    vagrant
IdentityFile ~/.ssh/vag_ubuntu14/id_rsa
Run Code Online (Sandbox Code Playgroud)

然后我用这个命令将公钥复制到了流浪盒的〜/ .ssh/authorized_keys.

cat ~/.ssh/vag_ubuntu14/id_rsa.pub | ssh -p2222 vagrant@127.0.0.1 'cat > ~/.ssh/authorized_keys'
Run Code Online (Sandbox Code Playgroud)

所以当运行ssh vag_ubuntu14按预期工作时.但是跑到vagrant sshsv到流浪者的盒子是行不通的.它会导致身份验证失败

这是我当前的Vagrant文​​件,其中指定了私钥的路径.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu14_04"

  config.vm.provider "virtualbox" do |vb|
    vb.name = "Ubuntu 14.04"
  end

  config.vm.provision :shell, path: "provision/bootstrap.sh"

  config.ssh.private_key_path = '/home/chris/.ssh/vag_ubuntu14/id_rsa'

end
Run Code Online (Sandbox Code Playgroud)

但是当我运行时vagrant ssh-config,它不尊重我在Vagrantfile上指定的私钥的自定义路径.

Host default
  HostName 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

ssh vagrant vagrantfile

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