我使用Laravel构建一个小型统计服务。我抓取一些网站并从那里获取我的应用程序的统计数据。例如,我从YouTube和Twitter获得订阅者数量。
public function getYouTubeStats() {}
public function getTwitterStats() {}
public function getFacebookStats() {}
...
所以现在我有一个具有20或30个功能的控制器,每个爬虫都需要自己的功能,因为显然每个外部站点都不同。但我不认为这么大的控制器对未来的发展有好处。所以我的问题是如何组织这个?
我可以为每个爬虫制作一个自己的控制器。但我无法从主爬虫控制器中的其他控制器获取功能。例如,我需要 MainCrawler 控制器中来自 YouTubeController 的函数 getStats()。我不认为有这么简单的方法吗?
或者我应该为每项服务制作新模型吗?
$youtube = new YouTubeStat::getStats();
$twitter = new TwitterStat::getStats();
答案 0 :(得分:0)
我有一个类似的项目,我为每个社交网络创建了一个Controller。
然后在您的MainCrawler上,您可以说$stats = (new YouTubeController)->getStats();
如果您的社交网络控制器中有类似功能,则应使用Trait。