Php Laravel 4:在自定义类中使用Facade

Php Laravel 4:在自定义类中使用Facade,php,class,laravel,facade,Php,Class,Laravel,Facade,我正在使用Laravel4开发一个应用程序,在完全投入使用之前,我想问一个问题 我已经创建了一些自定义类和外观,并成功地添加到了laravel的配置文件中 例如: namespace Helpers; class Ftp { public function connect($data) { // Do something } } 实际上,我正在使用php的use语句访问外观,就像我在Laravel中通常做的那样: namespace Helpers

我正在使用Laravel4开发一个应用程序,在完全投入使用之前,我想问一个问题

我已经创建了一些自定义类和外观,并成功地添加到了laravel的配置文件中

例如:

namespace Helpers;

class Ftp {

    public function connect($data)
    {
        // Do something
    }

}
实际上,我正在使用php的
use
语句访问外观,就像我在Laravel中通常做的那样:

namespace Helpers;

use Illuminate\Support\Facades\File;

class Ftp {

    public function Connect($data)
    {
        $file = File::get('text.txt');
            ...
    }

}

现在,在自定义类中使用laravel的facades的正确方法是什么?我觉得这不是一个好的选择,特别是考虑到可测试性。任何建议都将不胜感激

只需使用文件。在app/config/app.php中,facades获取别名

<?php namespace Helpers;

class Ftp {

    public function Connect($data)
    {
        $file = \File::get('text.txt');
        ...
    }

}

为什么它不利于可测试性?您只需使用('text.txt')->andReturn('foo')执行
File::shouldReceive('get')->once()->$file
设置为参数files@crynobone没错,laravel的facade有内置的模拟方法,我忘了。@OneTrickPony你也对,我举了一个愚蠢的例子,一个更合适的例子可能是在继续之前需要使用验证器的facade。这绝对是答案,“\”帮助解析名称空间,谢谢。您可以添加“使用文件;“还有,“\”会终止我的语法高亮显示。\n如果编辑器很好,则不会终止语法高亮显示。但是,它会终止在一个像样的IDE中提供代码内省、自动完成和适当重构的任何尝试。哈?这没有意义。\n是命名空间。任何像样的IDE都可以处理此5.3 PHP功能。”