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


When and how create packages in Laravel 4

最近有什么让我睡不着的事情:如何以及何时使用包?

我的案例:

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

我的疑问:

  • 图书归属用户,那么…如何做到这一点
  • 我把这种关系放在什么文件里
  • 如果用户不是一个包,并且是我的"应用程序"中的普通控制器/模型,如何设置这种关系
  • 这个"关系文件"存在于论文包中或外部(在我的"应用程序"中)

这不仅仅是对实现的怀疑,这也是对概念的怀疑

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

感谢

何时创建包

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

所以,如果你认为其他应用程序需要你的图书服务,那么是的,为什么不为它创建一个包呢?

用户/验证器肯定是我们所有应用程序中都需要的东西,也许不是全部,但有很多,所以,是的,为它创建一个Composer包。

图书归属用户,那么…如何做到这一点

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

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

如果用户不是一个包,并且是我的"应用程序"中的普通控制器/模型,如何设置这种关系

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

use MyPackage'Models'User;

这个"关系文件"存在于论文包中或外部(在我的"应用程序"中)

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

在模型中具有关系,在包中具有此模型,如果您正在"导入"包模型,则此模型也存在于您的应用程序中。

如果您使用的是Laravel 4.x.

,那么您可以将这个类放在User.php文件的models文件夹中