SpiderFactory.php 692 B

12345678910111213141516171819202122232425262728
  1. <?php
  2. /**
  3. * Author: NODELOG
  4. * Date: 2015/11/27
  5. * Time: 13:37.
  6. */
  7. namespace console\models;
  8. use common\models\Spider;
  9. use console\models\spider\SpiderAbstract;
  10. class SpiderFactory
  11. {
  12. public static function create($name)
  13. {
  14. $spider = Spider::find()->where(['name' => $name])->one();
  15. if (empty($spider)) {
  16. throw new \Exception('不存在目标网站');
  17. }
  18. $className = '\console\models\spider\\'.ucfirst(strtolower($name));
  19. if (!class_exists($className)) {
  20. $spiderObj = new SpiderAbstract(['spiderName' => $name]);
  21. } else {
  22. $spiderObj = new $className();
  23. }
  24. return $spiderObj;
  25. }
  26. }