Php Laravel结构-依赖注入控制器
我有一个laravel应用程序,并创建了一个SocialMediaController,从twitter和instagram获取最新帖子,并将其存储在数据库中 我需要它们能够被普遍使用,并且我知道我可以通过国际奥委会访问它Php Laravel结构-依赖注入控制器,php,methods,laravel-5,dependency-injection,structure,Php,Methods,Laravel 5,Dependency Injection,Structure,我有一个laravel应用程序,并创建了一个SocialMediaController,从twitter和instagram获取最新帖子,并将其存储在数据库中 我需要它们能够被普遍使用,并且我知道我可以通过国际奥委会访问它 public function doSomething(App\Http\Controllers\SocialMediaController $SocialMedia) { } 然而,如果感觉像这样注入控制器是错误的。总结这些方法以供全局使用的最佳方法是
public function doSomething(App\Http\Controllers\SocialMediaController
$SocialMedia) {
}
然而,如果感觉像这样注入控制器是错误的。总结这些方法以供全局使用的最佳方法是什么?您似乎想与另一个控制器共享您在
SocialMediaController
中的一些逻辑,对吗
您可以将当前逻辑移动到服务,而不是尝试使用服务容器将控制器实例传递给控制器操作。有关如何创建自己的服务,请参阅Laravel文档中的和
实现这一目标的另一种方法是使用特质。检查这个答案,看看你是如何做到的。你会得到这样的结果:
trait SocialFeeder {
public function getLatestFromTwitter() {
...
}
}
然后,你可以在你的控制器上使用这种新特性:
class SocialMediaController extends Controller {
use SocialFeeder;
public function doSomething() {
...
$tweets = $this->getLatestFromTwitter();
...
}
}
您似乎想与另一个控制器共享
SocialMediaController
中的一些逻辑,对吗
您可以将当前逻辑移动到服务,而不是尝试使用服务容器将控制器实例传递给控制器操作。有关如何创建自己的服务,请参阅Laravel文档中的和
实现这一目标的另一种方法是使用特质。检查这个答案,看看你是如何做到的。你会得到这样的结果:
trait SocialFeeder {
public function getLatestFromTwitter() {
...
}
}
然后,你可以在你的控制器上使用这种新特性:
class SocialMediaController extends Controller {
use SocialFeeder;
public function doSomething() {
...
$tweets = $this->getLatestFromTwitter();
...
}
}