关于laravel 5的一些问题

时间:2016-04-29 20:20:42

标签: laravel-5

我对laravel 5框架有一些初学者的中间问题。

  • 何时使用立面以及何时使用DI。对于Laravel全新的人来说,这两个概念有点难以理解。这是一个例子。



<?php namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class UserController extends Controller {
    public function store(Request $request)
    {
        $name = $request->input('name');
    }
}
&#13;
&#13;
&#13;

vs使用此

&#13;
&#13;
<?php namespace App\Http\Controllers;

use Request; // Facade of Illuminate\Http\Request
use Illuminate\Routing\Controller;

class UserController extends Controller {
    public function store()
    {
        $name = Request::input('name');
    }
}
&#13;
&#13;
&#13;

  • 如果我们想创建自己的类,我们可以将自己的类放在laravel默认文件夹结构中吗?

  • 照明者正在组装照明吗?我们如何知道在illuminate命名空间中使用哪些类?

  • 如果项目托管在laravel附带的默认php服务器以外的其他服务器上,我们是否需要更改.htaccess?

  • -

2 个答案:

答案 0 :(得分:0)

理论上,Laravel外观最终是为了方便而存在的。如果您发现广泛使用相同的外观,可能需要将其用作依赖注入。

以Request facade为例,你总是将它用作依赖注入,因为你总是重申它的价值。

代码可维护性方面的更高级答案: &#34;依赖注入允许您将代码与您正在使用的任何资源的特定实现分离,因此理论上您可以将MySQL数据库类换成完全不同类型的数据库只要他们都遵守相同的合同。&#34;

这些讨论可能会对您有所帮助:

Dependency Injection or Facades?

Using Dependency Injection over Facades

答案 1 :(得分:0)

如果要在实例化时致电任何服务帮助,请使用Dependency Injection。在构造函数中初始化服务。

创建对象后,您想要使用任何服务,而不是使用Facade。