Module.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NODELOG
  5. * Date: 2017/3/6
  6. * Time: 下午9:50
  7. */
  8. namespace common\modules\urlrule;
  9. use yii\base\BootstrapInterface;
  10. use common\modules\urlrule\models\UrlRule;
  11. use Yii;
  12. class Module extends \common\modules\Module implements BootstrapInterface
  13. {
  14. public function bootstrap($app)
  15. {
  16. $rules = [];
  17. /**
  18. * @var UrlRule[] $models
  19. */
  20. $models = UrlRule::findOpenRules();
  21. foreach ($models as $model) {
  22. $params = [];
  23. parse_str($model->defaults, $params);
  24. $rules[] = [
  25. 'pattern' => $model->pattern,
  26. 'route' => $model->route,
  27. 'suffix' => $model->suffix,
  28. 'defaults' => $params,
  29. 'verb' => $model->verb
  30. ];
  31. }
  32. if (isset($this->params['pretty']) && $this->params['pretty']) {
  33. Yii::$app->getUrlManager()->enablePrettyUrl = true;
  34. Yii::$app->getUrlManager()->showScriptName = false;
  35. Yii::$app->getUrlManager()->init();//目的是buildRule
  36. Yii::$app->getUrlManager()->addRules($rules, false);
  37. }
  38. }
  39. }