何时以及如何在Laravel 4中创建包

时间:2014-09-24 20:55:48

标签: php laravel laravel-4

最近有什么东西让我入睡:如何以及何时使用套餐?

我的情况:

  • 我想创建一个Books包(crud)
  • 我想创建一个用户/身份验证器包(crud + login)

我怀疑:

  • 本书属于用户,所以...怎么做?
  • 我把这种关系放在什么档案中?
  • 如果用户不是套餐,而且我的" app"是正常的控制器/模型如何设置这种关系?
  • 这个"关系文件"存在于这些包中或外部(在我的" app")

这不仅仅是对实施的怀疑,它也是关于概念的

如果您需要更多信息,请告诉我。

由于

1 个答案:

答案 0 :(得分:2)

何时创建包?

当您了解您正在创建的代码可能在某些其他应用程序或其他开发人员中需要时。这基本上是Open Source的工作原理,我创建了一个包,你在你的应用程序中使用它。当然还有其他原因,比如DRY(不要重复自己),但在这种情况下,它们可能是次要的。

因此,如果您认为在其他应用中需要您的图书服务,那么是,为什么不为它创建一个软件包呢?

用户/身份验证器肯定是我们在应用程序中需要的东西,可能不是全部,但很多,但是,再次,是的,为它创建Composer Package

本书属于用户,所以...怎么做?

这就是你如何表达这种关系:

class User extends Eloquent {

    public function books()
    {
        return $this->hasMany('Book');      
    }

}

如果用户不是包,而且我的“app”中的普通控制器/模型如何设置此关系?

这不是一个包,但是在一个包中你只需要引用包名称空间中的User模型:

use MyPackage\Models\User;

这个“关系文件”存在于这些包中或外部(在我的“app”中)

“文件”本身就是您的模型文件,它存在于您的包中,但由于您需要在composer.json文件中请求该包,该文件将出现在供应商文件夹中。

在模型和模型中建立关系,如果要“导入”包模型,则此模型也存在于您的应用程序中。

如果您使用的是Laravel 4.x,则将此课程放在models文件的User.php文件夹中。