Php 从包内扩展Laravel 4雄辩的模型
首先,我对国际奥委会、服务提供商和门面都不熟悉,但我猜答案在于以下方面: 从包内扩展雄辩模型的最佳方法是什么(可能不止一种正确的方法,但请分享您的方法)。以下是我计划采用的应用程序结构: L4框架+两个单独的包(CMS和CRM),需要共享一些有说服力的模型。然而,可能存在特定于包的情况,包需要扩展双方正在使用的雄辩模型,我不想触及基本模型 我还计划为每个包使用单独的控制器和视图(除非在包之间有相同的东西)。主视图将从L4视图文件夹中加载。这听起来对吗?(至少我已经使用了单独的控制器和视图,它们工作得很好。) 我希望采用包方法的原因是,我希望CMS和CRM具有独立的代码和结构,以便通过composer轻松安装、卸载和更新 我非常乐意听到任何关于实现这一切的建议。此外,如果这似乎没有任何意义,请告诉我,我会尝试澄清自己:)Php 从包内扩展Laravel 4雄辩的模型,php,laravel,laravel-4,Php,Laravel,Laravel 4,首先,我对国际奥委会、服务提供商和门面都不熟悉,但我猜答案在于以下方面: 从包内扩展雄辩模型的最佳方法是什么(可能不止一种正确的方法,但请分享您的方法)。以下是我计划采用的应用程序结构: L4框架+两个单独的包(CMS和CRM),需要共享一些有说服力的模型。然而,可能存在特定于包的情况,包需要扩展双方正在使用的雄辩模型,我不想触及基本模型 我还计划为每个包使用单独的控制器和视图(除非在包之间有相同的东西)。主视图将从L4视图文件夹中加载。这听起来对吗?(至少我已经使用了单独的控制器和视图,它们工
干杯 如果您在Laravel 4中创建一个包,那么您应该能够执行以下操作:
<?php
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model {
// Your code here
}
如果您在Laravel 4中创建一个包,那么您应该能够执行以下操作:
<?php
use Illuminate\Database\Eloquent\Model;
class YourModel extends Model {
// Your code here
}
根据您的评论,我认为NAMPACCEP是正确的答案,因为您的模型将共享功能,在同一个安装中而不是单独的包中安装它们是更有意义的。下面是一个例子:
在/app/models/Entities/CRM/UserEntity.php中
<?php namespace Project\Models\Entities\CRM;
use Eloquent;
Class User extends Eloquent {
...
public function owner()
{
return $this->belongsTo('Project\Models\Entities\CMS\User');
}
}
<?php namespace Project\Models\Entities\CMS;
use Eloquent;
Class User extends Eloquent {
...
public function contacts()
{
return $this->hasMany('Project\Models\Entities\CRM\User');
}
}
根据上面的评论,我认为NAMPACCEP是正确的答案,因为你们的模型将共享功能,将它们放在同一个安装而不是单独的包中更有意义。下面是一个例子:
在/app/models/Entities/CRM/UserEntity.php中
<?php namespace Project\Models\Entities\CRM;
use Eloquent;
Class User extends Eloquent {
...
public function owner()
{
return $this->belongsTo('Project\Models\Entities\CMS\User');
}
}
<?php namespace Project\Models\Entities\CMS;
use Eloquent;
Class User extends Eloquent {
...
public function contacts()
{
return $this->hasMany('Project\Models\Entities\CRM\User');
}
}
您是否将CMS和CRM构建为两个独立的应用程序?您可以创建自己的扩展了Eloquent的小类,并将其发布到PackageGist,然后将其添加到composer.jsonYes中,不:)其想法是它们可以单独工作,也可以一起工作,但在同一个Laravel安装中。我目前正在研究更多关于国际奥委会的设计和外观,以取得最佳效果。谢谢你的评论!您是否将CMS和CRM构建为两个独立的应用程序?您可以创建自己的扩展了Eloquent的小类,并将其发布到PackageGist,然后将其添加到composer.jsonYes中,不:)其想法是它们可以单独工作,也可以一起工作,但在同一个Laravel安装中。我目前正在研究更多关于国际奥委会的设计和外观,以取得最佳效果。谢谢你的评论!谢谢你的回答!我已经意识到,我的问题是相当广泛的,要得到彻底的回答,我宁愿需要一个关于这个主题的完整教程。目前,我正处在这样一个时刻,我有单独的包和模型来扩展核心,这正是我想要的方式。我接受你的回答,因为它解决了我最初的问题:)实现包使用的另一个关键是名称空间,这是我以前没有使用过的。谢谢你的回答!我已经意识到,我的问题是相当广泛的,要得到彻底的回答,我宁愿需要一个关于这个主题的完整教程。目前,我正处在这样一个时刻,我有单独的包和模型来扩展核心,这正是我想要的方式。我会接受你的回答,因为它解决了我最初的问题:)实现包使用的另一个关键是名称空间,这是我以前从未使用过的。嗨,Mulkave,这与我实现我想要的非常接近。谢谢你的回复!嗨,Mulkave,这与我为实现自己的目标所做的非常接近。谢谢你的回复!