2017-07-02 106 views
0

我用Laravel構建一個小統計服務。我抓取一些網站,並從那裏獲得我的應用程序的統計數據。例如,我從YouTube和Twitter獲取訂閱人數。如何組織許多爬蟲功能?

public function getYouTubeStats() {} 
public function getTwitterStats() {} 
public function getFacebookStats() {} 
... 

所以現在我有一個控制器可以帶20層或30的功能,其中的每一個抓取需要自己的功能,因爲很明顯,每一個外部網站是不同的。但我不認爲這麼大的控制器對未來的發展是有好處的。所以我的問題是我怎麼能組織這個?

我可以爲每個爬蟲製作一個自己的控制器。但我無法從我的主要抓取控制器中獲得其他控制器的功能。例如,我需要的功能getStats()YouTubeControllerMainCrawler控制器。我不認爲有一個簡單的方法來做到這一點?

還是應該爲每項服務製作一個新模型?

$youtube = new YouTubeStat::getStats(); 
$twitter = new TwitterStat::getStats(); 

回答

0

我有一個類似的項目,我爲每個社交網絡創建了一個控制器。

然後在你的MainCrawler你可以說$stats = (new YouTubeController)->getStats();

如果你在你的社交網絡控制器具有類似的功能,你應該使用Trait

+0

好吧,是的,我認爲每個服務一個控制器是一個很好的解決方案。謝謝你的建議。 –