芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/xmintal-back/vendor/yiisoft/yii2/filters/VerbFilter.php
[ * 'class' => \yii\filters\VerbFilter::class, * 'actions' => [ * 'index' => ['GET'], * 'view' => ['GET'], * 'create' => ['GET', 'POST'], * 'update' => ['GET', 'PUT', 'POST'], * 'delete' => ['POST', 'DELETE'], * ], * ], * ]; * } * ``` * * @see https://tools.ietf.org/html/rfc2616#section-14.7 * @author Carsten Brandt
* @since 2.0 */ class VerbFilter extends Behavior { /** * @var array this property defines the allowed request methods for each action. * For each action that should only support limited set of request methods * you add an entry with the action id as array key and an array of * allowed methods (e.g. GET, HEAD, PUT) as the value. * If an action is not listed all request methods are considered allowed. * * You can use `'*'` to stand for all actions. When an action is explicitly * specified, it takes precedence over the specification given by `'*'`. * * @see https://www.yiiframework.com/doc/guide/2.0/en/structure-controllers#action-ids * * For example, * * ```php * [ * 'create' => ['GET', 'POST'], * 'update' => ['GET', 'PUT', 'POST'], * 'delete' => ['POST', 'DELETE'], * 'author-comment' => ['POST', 'DELETE'], * '*' => ['GET'], * ] * ``` */ public $actions = []; /** * Declares event handlers for the [[owner]]'s events. * @return array events (array keys) and the corresponding event handler methods (array values). */ public function events() { return [Controller::EVENT_BEFORE_ACTION => 'beforeAction']; } /** * @param ActionEvent $event * @return bool * @throws MethodNotAllowedHttpException when the request method is not allowed. */ public function beforeAction($event) { $action = $event->action->id; if (isset($this->actions[$action])) { $verbs = $this->actions[$action]; } elseif (isset($this->actions['*'])) { $verbs = $this->actions['*']; } else { return $event->isValid; } $verb = Yii::$app->getRequest()->getMethod(); $allowed = array_map('strtoupper', $verbs); if (!in_array($verb, $allowed)) { $event->isValid = false; // https://tools.ietf.org/html/rfc2616#section-14.7 Yii::$app->getResponse()->getHeaders()->set('Allow', implode(', ', $allowed)); throw new MethodNotAllowedHttpException('Method Not Allowed. This URL can only handle the following request methods: ' . implode(', ', $allowed) . '.'); } return $event->isValid; } }