diff --git a/backend/config/main.php b/backend/config/main.php
index bdd19d8..373caac 100755
--- a/backend/config/main.php
+++ b/backend/config/main.php
@@ -80,6 +80,12 @@ return [
'document' => [
'class' => 'backend\modules\document\Document',
],
+ 'request' => [
+ 'class' => 'backend\modules\request\Request',
+ ],
+ 'knowledgelevel' => [
+ 'class' => 'backend\modules\knowledgelevel\KnowledgeLevel',
+ ],
],
'components' => [
'request' => [
diff --git a/backend/modules/card/models/UserCardSearch.php b/backend/modules/card/models/UserCardSearch.php
index 1c9ba20..e7d26cd 100755
--- a/backend/modules/card/models/UserCardSearch.php
+++ b/backend/modules/card/models/UserCardSearch.php
@@ -51,10 +51,13 @@ class UserCardSearch extends UserCard
->where(['id_user' => Yii::$app->user->id])
->one();
- $employeeIdList = ManagerEmployee::find()
- ->where(['manager_id' => $userCard->manager->id])
- ->select('user_card_id')
- ->column();
+ $employeeIdList = false;
+ if (isset($userCard->manager)) {
+ $employeeIdList = ManagerEmployee::find()
+ ->where(['manager_id' => $userCard->manager->id])
+ ->select('user_card_id')
+ ->column();
+ }
$query = UserCard::find()->where(['in', 'user_card.id', $employeeIdList]);
}
diff --git a/backend/modules/knowledgelevel/KnowledgeLevel.php b/backend/modules/knowledgelevel/KnowledgeLevel.php
new file mode 100644
index 0000000..80dff42
--- /dev/null
+++ b/backend/modules/knowledgelevel/KnowledgeLevel.php
@@ -0,0 +1,24 @@
+render('index');
+ }
+}
diff --git a/backend/modules/knowledgelevel/controllers/KnowledgeLevelController.php b/backend/modules/knowledgelevel/controllers/KnowledgeLevelController.php
new file mode 100644
index 0000000..24bd018
--- /dev/null
+++ b/backend/modules/knowledgelevel/controllers/KnowledgeLevelController.php
@@ -0,0 +1,127 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['POST'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all KnowledgeLevel models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new KnowledgeLevelSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single KnowledgeLevel model.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionView($id)
+ {
+ return $this->render('view', [
+ 'model' => $this->findModel($id),
+ ]);
+ }
+
+ /**
+ * Creates a new KnowledgeLevel model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $model = new KnowledgeLevel();
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->id]);
+ }
+
+ return $this->render('create', [
+ 'model' => $model,
+ ]);
+ }
+
+ /**
+ * Updates an existing KnowledgeLevel model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionUpdate($id)
+ {
+ $model = $this->findModel($id);
+
+ if ($model->load(Yii::$app->request->post()) && $model->save()) {
+ return $this->redirect(['view', 'id' => $model->id]);
+ }
+
+ return $this->render('update', [
+ 'model' => $model,
+ ]);
+ }
+
+ /**
+ * Deletes an existing KnowledgeLevel model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the KnowledgeLevel model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return KnowledgeLevel the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = KnowledgeLevel::findOne($id)) !== null) {
+ return $model;
+ }
+
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+}
diff --git a/backend/modules/knowledgelevel/models/KnowledgeLevel.php b/backend/modules/knowledgelevel/models/KnowledgeLevel.php
new file mode 100644
index 0000000..93798da
--- /dev/null
+++ b/backend/modules/knowledgelevel/models/KnowledgeLevel.php
@@ -0,0 +1,8 @@
+ $query,
+ ]);
+
+ $this->load($params);
+
+ if (!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ // grid filtering conditions
+ $query->andFilterWhere([
+ 'id' => $this->id,
+ 'status' => $this->status,
+ ]);
+
+ $query->andFilterWhere(['like', 'title', $this->title]);
+
+ return $dataProvider;
+ }
+}
diff --git a/backend/modules/knowledgelevel/views/default/index.php b/backend/modules/knowledgelevel/views/default/index.php
new file mode 100644
index 0000000..17c5cd7
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/default/index.php
@@ -0,0 +1,12 @@
+
+
= $this->context->action->uniqueId ?>
+
+ This is the view content for action "= $this->context->action->id ?>".
+ The action belongs to the controller "= get_class($this->context) ?>"
+ in the "= $this->context->module->id ?>" module.
+
+
+ You may customize this page by editing the following file:
+ = __FILE__ ?>
+
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/_form.php b/backend/modules/knowledgelevel/views/knowledge-level/_form.php
new file mode 100644
index 0000000..e9759b1
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/_form.php
@@ -0,0 +1,25 @@
+
+
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/_search.php b/backend/modules/knowledgelevel/views/knowledge-level/_search.php
new file mode 100644
index 0000000..ae3d362
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/_search.php
@@ -0,0 +1,31 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'id') ?>
+
+ = $form->field($model, 'title') ?>
+
+ = $form->field($model, 'status') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/create.php b/backend/modules/knowledgelevel/views/knowledge-level/create.php
new file mode 100644
index 0000000..989a358
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/create.php
@@ -0,0 +1,18 @@
+title = 'Добавить уровень знаний';
+$this->params['breadcrumbs'][] = ['label' => 'Уровень знаний', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/index.php b/backend/modules/knowledgelevel/views/knowledge-level/index.php
new file mode 100644
index 0000000..8826c5f
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/index.php
@@ -0,0 +1,39 @@
+title = 'Уровень знаний';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Добавить', ['create'], ['class' => 'btn btn-success']) ?>
+
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ // 'id',
+ 'title',
+ [
+ 'attribute' => 'status',
+ 'value' => function($model){
+ return \common\models\KnowledgeLevel::getStatus()[$model->status];
+ }
+ ],
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/update.php b/backend/modules/knowledgelevel/views/knowledge-level/update.php
new file mode 100644
index 0000000..ffe87c1
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/update.php
@@ -0,0 +1,19 @@
+title = 'Редактировать: ' . $model->title;
+$this->params['breadcrumbs'][] = ['label' => 'Уровень знаний', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
+$this->params['breadcrumbs'][] = 'Редактировать';
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/modules/knowledgelevel/views/knowledge-level/view.php b/backend/modules/knowledgelevel/views/knowledge-level/view.php
new file mode 100644
index 0000000..e6583e0
--- /dev/null
+++ b/backend/modules/knowledgelevel/views/knowledge-level/view.php
@@ -0,0 +1,42 @@
+title = $model->title;
+$this->params['breadcrumbs'][] = ['label' => 'Knowledge Levels', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+\yii\web\YiiAsset::register($this);
+?>
+
+
+
+ = Html::a('Редактировать', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Список', ['index'], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Удалить', ['delete', 'id' => $model->id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'id',
+ 'title',
+ [
+ 'attribute' => 'status',
+ 'value' => function($model){
+ return \common\models\KnowledgeLevel::getStatus()[$model->status];
+ }
+ ],
+ ],
+ ]) ?>
+
+
diff --git a/backend/modules/request/Request.php b/backend/modules/request/Request.php
new file mode 100644
index 0000000..8f82003
--- /dev/null
+++ b/backend/modules/request/Request.php
@@ -0,0 +1,24 @@
+render('index');
+ }
+}
diff --git a/backend/modules/request/controllers/RequestController.php b/backend/modules/request/controllers/RequestController.php
new file mode 100644
index 0000000..9443e88
--- /dev/null
+++ b/backend/modules/request/controllers/RequestController.php
@@ -0,0 +1,147 @@
+ [
+ 'class' => VerbFilter::className(),
+ 'actions' => [
+ 'delete' => ['POST'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * Lists all Request models.
+ * @return mixed
+ */
+ public function actionIndex()
+ {
+ $searchModel = new RequestSearch();
+ $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
+
+ return $this->render('index', [
+ 'searchModel' => $searchModel,
+ 'dataProvider' => $dataProvider,
+ ]);
+ }
+
+ /**
+ * Displays a single Request model.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionView(int $id)
+ {
+ $res = RequestService::run($id)->getById();
+
+ $search = RequestService::run($id)->search(3);
+
+ $searchDataProvider = new ArrayDataProvider([
+ 'allModels' => $search,
+ 'pagination' => [
+ 'pageSize' => 10,
+ ],
+ 'sort' => [
+ 'attributes' => ['id', 'fio'],
+ ],
+ ]);
+
+ return $this->render('view', [
+ 'model' => $res,
+ 'searchDataProvider' => $searchDataProvider,
+ ]);
+ }
+
+ /**
+ * Creates a new Request model.
+ * If creation is successful, the browser will be redirected to the 'view' page.
+ * @return mixed
+ */
+ public function actionCreate()
+ {
+ $req = RequestService::run()->load(Yii::$app->request->post());
+
+ if ($req->isLoad) {
+ $req->save();
+ return $this->redirect(['view', 'id' => $req->model->id]);
+ }
+
+ return $this->render('create', [
+ 'model' => $req->model,
+ ]);
+ }
+
+ /**
+ * Updates an existing Request model.
+ * If update is successful, the browser will be redirected to the 'view' page.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionUpdate($id)
+ {
+ $req = RequestService::run($id)->load(Yii::$app->request->post());
+
+ if ($req->isLoad) {
+ $req->save();
+ return $this->redirect(['view', 'id' => $req->model->id]);
+ }
+
+ return $this->render('update', [
+ 'model' => $req->model,
+ ]);
+ }
+
+ /**
+ * Deletes an existing Request model.
+ * If deletion is successful, the browser will be redirected to the 'index' page.
+ * @param integer $id
+ * @return mixed
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ public function actionDelete($id)
+ {
+ $this->findModel($id)->delete();
+
+ return $this->redirect(['index']);
+ }
+
+ /**
+ * Finds the Request model based on its primary key value.
+ * If the model is not found, a 404 HTTP exception will be thrown.
+ * @param integer $id
+ * @return Request the loaded model
+ * @throws NotFoundHttpException if the model cannot be found
+ */
+ protected function findModel($id)
+ {
+ if (($model = Request::findOne($id)) !== null) {
+ return $model;
+ }
+
+ throw new NotFoundHttpException('The requested page does not exist.');
+ }
+}
diff --git a/backend/modules/request/models/Request.php b/backend/modules/request/models/Request.php
new file mode 100644
index 0000000..c3fbf20
--- /dev/null
+++ b/backend/modules/request/models/Request.php
@@ -0,0 +1,8 @@
+ $query,
+ ]);
+
+ $this->load($params);
+
+ if (!$this->validate()) {
+ // uncomment the following line if you do not want to return any records when validation fails
+ // $query->where('0=1');
+ return $dataProvider;
+ }
+
+ // grid filtering conditions
+ $query->andFilterWhere([
+ 'id' => $this->id,
+ 'created_at' => $this->created_at,
+ 'updated_at' => $this->updated_at,
+ 'user_id' => $this->user_id,
+ 'position_id' => $this->position_id,
+ 'knowledge_level_id' => $this->knowledge_level_id,
+ 'specialist_count' => $this->specialist_count,
+ 'status' => $this->status,
+ ]);
+
+ $query->andFilterWhere(['like', 'title', $this->title])
+ ->andFilterWhere(['like', 'skill_ids', $this->skill_ids])
+ ->andFilterWhere(['like', 'descr', $this->descr]);
+
+ $query->orderBy('id DESC');
+
+ return $dataProvider;
+ }
+}
diff --git a/backend/modules/request/views/default/index.php b/backend/modules/request/views/default/index.php
new file mode 100644
index 0000000..1b99a20
--- /dev/null
+++ b/backend/modules/request/views/default/index.php
@@ -0,0 +1,12 @@
+
+
= $this->context->action->uniqueId ?>
+
+ This is the view content for action "= $this->context->action->id ?>".
+ The action belongs to the controller "= get_class($this->context) ?>"
+ in the "= $this->context->module->id ?>" module.
+
+
+ You may customize this page by editing the following file:
+ = __FILE__ ?>
+
+
diff --git a/backend/modules/request/views/request/_form.php b/backend/modules/request/views/request/_form.php
new file mode 100644
index 0000000..b1c821a
--- /dev/null
+++ b/backend/modules/request/views/request/_form.php
@@ -0,0 +1,63 @@
+
+
+
diff --git a/backend/modules/request/views/request/_search.php b/backend/modules/request/views/request/_search.php
new file mode 100644
index 0000000..9f3e081
--- /dev/null
+++ b/backend/modules/request/views/request/_search.php
@@ -0,0 +1,47 @@
+
+
+
+
+ ['index'],
+ 'method' => 'get',
+ ]); ?>
+
+ = $form->field($model, 'id') ?>
+
+ = $form->field($model, 'created_at') ?>
+
+ = $form->field($model, 'updated_at') ?>
+
+ = $form->field($model, 'user_id') ?>
+
+ = $form->field($model, 'title') ?>
+
+ field($model, 'position_id') ?>
+
+ field($model, 'skill_ids') ?>
+
+ field($model, 'knowledge_level_id') ?>
+
+ field($model, 'descr') ?>
+
+ field($model, 'specialist_count') ?>
+
+ field($model, 'status') ?>
+
+
+ = Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
+ = Html::resetButton('Reset', ['class' => 'btn btn-default']) ?>
+
+
+
+
+
diff --git a/backend/modules/request/views/request/create.php b/backend/modules/request/views/request/create.php
new file mode 100644
index 0000000..5598dcf
--- /dev/null
+++ b/backend/modules/request/views/request/create.php
@@ -0,0 +1,18 @@
+title = 'Добавить';
+$this->params['breadcrumbs'][] = ['label' => 'Запросы', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/modules/request/views/request/index.php b/backend/modules/request/views/request/index.php
new file mode 100644
index 0000000..5f880db
--- /dev/null
+++ b/backend/modules/request/views/request/index.php
@@ -0,0 +1,62 @@
+title = 'Запросы';
+$this->params['breadcrumbs'][] = $this->title;
+?>
+
+
+ render('_search', ['model' => $searchModel]); ?>
+
+
+ = Html::a('Добавить запрос', ['create'], ['class' => 'btn btn-success']) ?>
+
+
+ = GridView::widget([
+ 'dataProvider' => $dataProvider,
+ 'filterModel' => $searchModel,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+
+ //'id',
+ 'created_at',
+ //'updated_at',
+ [
+ 'attribute' => 'user_id',
+ 'value' => function(\common\models\Request $model){
+ return $model->user->userCard->fio ?? 'Не задано';
+ }
+ ],
+ 'title',
+ [
+ 'attribute' => 'position_id',
+ 'value' => function(\common\models\Request $model){
+ return $model->position->name ?? 'Не задано';
+ }
+ ],
+ //'skill_ids',
+ [
+ 'attribute' => 'knowledge_level_id',
+ 'value' => function(\common\models\Request $model){
+ return \common\models\UserCard::getLevelList()[$model->knowledge_level_id];
+ }
+ ],
+ //'descr:ntext',
+ 'specialist_count',
+ [
+ 'attribute' => 'status',
+ 'value' => function(\common\models\Request $model){
+ return \common\models\KnowledgeLevel::getStatus()[$model->status];
+ }
+ ],
+
+ ['class' => 'yii\grid\ActionColumn'],
+ ],
+ ]); ?>
+
diff --git a/backend/modules/request/views/request/update.php b/backend/modules/request/views/request/update.php
new file mode 100644
index 0000000..8deb311
--- /dev/null
+++ b/backend/modules/request/views/request/update.php
@@ -0,0 +1,19 @@
+title = 'Редактировать запрос: ' . $model->title;
+$this->params['breadcrumbs'][] = ['label' => 'Запросы', 'url' => ['index']];
+$this->params['breadcrumbs'][] = ['label' => $model->title, 'url' => ['view', 'id' => $model->id]];
+$this->params['breadcrumbs'][] = 'Ред.';
+?>
+
+
+ = $this->render('_form', [
+ 'model' => $model,
+ ]) ?>
+
+
diff --git a/backend/modules/request/views/request/view.php b/backend/modules/request/views/request/view.php
new file mode 100644
index 0000000..9891d43
--- /dev/null
+++ b/backend/modules/request/views/request/view.php
@@ -0,0 +1,88 @@
+title = $model->title;
+$this->params['breadcrumbs'][] = ['label' => 'Requests', 'url' => ['index']];
+$this->params['breadcrumbs'][] = $this->title;
+\yii\web\YiiAsset::register($this);
+?>
+
+
+
+ = Html::a('Редактировать', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Список', ['index'], ['class' => 'btn btn-primary']) ?>
+ = Html::a('Удалить', ['delete', 'id' => $model->id], [
+ 'class' => 'btn btn-danger',
+ 'data' => [
+ 'confirm' => 'Are you sure you want to delete this item?',
+ 'method' => 'post',
+ ],
+ ]) ?>
+
+
+ = DetailView::widget([
+ 'model' => $model,
+ 'attributes' => [
+ 'id',
+ 'created_at',
+ 'updated_at',
+ [
+ 'attribute' => 'user_id',
+ 'value' => function (\common\models\Request $model) {
+ return $model->user->userCard->fio ?? 'Не задано';
+ }
+ ],
+ 'title',
+ [
+ 'attribute' => 'position_id',
+ 'value' => function (\common\models\Request $model) {
+ return $model->position->name ?? 'Не задано';
+ }
+ ],
+// 'skill_ids',
+ [
+ 'attribute' => 'skill_ids',
+ 'value' => function (\common\models\Request $model) {
+ $skillStr = '';
+ foreach ($model->skills as $skill) {
+ $skillStr .= $skill['name'] . ", ";
+ }
+ return $skillStr;
+ }
+ ],
+ [
+ 'attribute' => 'knowledge_level_id',
+ 'value' => function (\common\models\Request $model) {
+ return \common\models\UserCard::getLevelList()[$model->knowledge_level_id];
+ }
+ ],
+ 'descr:ntext',
+ 'specialist_count',
+ [
+ 'attribute' => 'status',
+ 'value' => function (\common\models\Request $model) {
+ return \common\models\Request::getStatus()[$model->status] ?? 'Не задано';
+ }
+ ],
+ ],
+ ]) ?>
+
+
Подходящие кандидаты
+
+ = GridView::widget([
+ 'dataProvider' => $searchDataProvider,
+ 'columns' => [['class' => 'yii\grid\SerialColumn'],
+ 'id',
+ 'fio',
+ ],
+ ]); ?>
+
+
+
diff --git a/backend/views/layouts/left.php b/backend/views/layouts/left.php
index 556f5f4..4257c3e 100755
--- a/backend/views/layouts/left.php
+++ b/backend/views/layouts/left.php
@@ -36,6 +36,7 @@
['label' => 'Шаблоны резюме', 'icon' => 'address-card ', 'url' => ['/card/resume-template'], 'active' => \Yii::$app->controller->id == 'resume-template', 'visible' => Yii::$app->user->can('card')],
['label' => 'Шаблоны документов', 'icon' => 'file', 'url' => ['/document/document-template'], 'active' => \Yii::$app->controller->id == 'document-template', 'visible' => Yii::$app->user->can('document')],
['label' => 'Поля документов', 'icon' => 'file-text', 'url' => ['/document/document-field'], 'active' => \Yii::$app->controller->id == 'document-field', 'visible' => Yii::$app->user->can('document')],
+ ['label' => 'Уровень знаний', 'icon' => 'code', 'url' => ['/knowledgelevel/knowledge-level'], 'active' => \Yii::$app->controller->id == 'knowledge-level', 'visible' => Yii::$app->user->can('knowledgelevel/knowledge-level')],
[
'label' => 'Роли', 'icon' => 'users', 'url' => '#',
'items' => [
@@ -59,6 +60,7 @@
],
'visible' => Yii::$app->user->can('employee')
],
+ ['label' => 'Запросы', 'icon' => 'eye', 'url' => ['/request/request'], 'active' => \Yii::$app->controller->id == 'request', 'visible' => Yii::$app->user->can('request/request')],
['label' => 'Документы', 'icon' => 'archive', 'url' => ['/document/document'], 'active' => \Yii::$app->controller->id == 'document', 'visible' => Yii::$app->user->can('document')],
[
'label' => 'Проекты', 'icon' => 'cubes', 'url' => ['#'],
diff --git a/common/models/KnowledgeLevel.php b/common/models/KnowledgeLevel.php
new file mode 100644
index 0000000..562ee40
--- /dev/null
+++ b/common/models/KnowledgeLevel.php
@@ -0,0 +1,63 @@
+ 255],
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'id' => 'ID',
+ 'title' => 'Название',
+ 'status' => 'Статус',
+ ];
+ }
+
+ /**
+ * @return string[]
+ */
+ public static function getStatus(): array
+ {
+ return [
+ self::STATUS_ACTIVE => 'Активен',
+ self::STATUS_DISABLE => 'Выключен'
+ ];
+ }
+
+
+}
diff --git a/common/models/Position.php b/common/models/Position.php
index a3b4667..9244ba8 100755
--- a/common/models/Position.php
+++ b/common/models/Position.php
@@ -3,6 +3,7 @@
namespace common\models;
use Yii;
+use yii\helpers\ArrayHelper;
/**
* This is the model class for table "position".
@@ -46,4 +47,9 @@ class Position extends \yii\db\ActiveRecord
{
return $this->hasMany(UserCard::class, ['position_id' => 'id']);
}
+
+ public static function getList()
+ {
+ return ArrayHelper::map(self::find()->all(), 'id', 'name');
+ }
}
diff --git a/common/models/Request.php b/common/models/Request.php
new file mode 100644
index 0000000..f314c67
--- /dev/null
+++ b/common/models/Request.php
@@ -0,0 +1,159 @@
+ TimestampBehavior::class,
+ 'createdAtAttribute' => 'created_at',
+ 'updatedAtAttribute' => 'updated_at',
+ 'value' => new Expression('NOW()'),
+ ],
+ ];
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function rules()
+ {
+ return [
+ [['created_at', 'updated_at', 'skills'], 'safe'],
+ [['user_id', 'title', 'position_id', 'status'], 'required'],
+ [['user_id', 'position_id', 'knowledge_level_id', 'specialist_count', 'status'], 'integer'],
+ [['descr'], 'string'],
+ [['title'], 'string', 'max' => 255],
+ [['skill_ids'], 'safe']
+ ];
+ }
+
+ public function fields()
+ {
+ $fields = parent::fields();
+
+ $additionalFields = [
+ 'position',
+ 'skills',
+ 'result_count',
+ 'level' => function (Request $model) {
+ return UserCard::getLevelList()[$model->knowledge_level_id];
+ },
+ ];
+
+ return array_merge($fields, $additionalFields);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function attributeLabels()
+ {
+ return [
+ 'id' => 'ID',
+ 'created_at' => 'Дата создания',
+ 'updated_at' => 'Дата редактирования',
+ 'user_id' => 'Пользователь',
+ 'title' => 'Заголовок',
+ 'position_id' => 'Специализация',
+ 'skill_ids' => 'Навыки',
+ 'knowledge_level_id' => 'Уровень',
+ 'descr' => 'Описание',
+ 'specialist_count' => 'Кол-во специалистов',
+ 'status' => 'Статус',
+ ];
+ }
+
+ public function beforeSave($insert)
+ {
+ if (parent::beforeSave($insert)) {
+ if ($this->skill_ids && is_array($this->skill_ids)) {
+ $this->skill_ids = implode(",", $this->skill_ids);
+ }
+ return true;
+ }
+ return false;
+ }
+
+ public function afterFind()
+ {
+ parent::afterFind();
+ if ($this->skill_ids != "") {
+ $this->skill_ids = explode(",", $this->skill_ids);
+ }
+ else {
+ $this->skill_ids = [];
+ }
+
+ $this->skills = Skill::find()->where(['id' => $this->skill_ids])->asArray()->all();
+ }
+
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getPosition(): \yii\db\ActiveQuery
+ {
+ return $this->hasOne(Position::class, ['id' => 'position_id']);
+ }
+
+ /**
+ * @return \yii\db\ActiveQuery
+ */
+ public function getUser(): \yii\db\ActiveQuery
+ {
+ return $this->hasOne(User::class, ['id' => 'user_id']);
+ }
+
+ /**
+ * @return string[]
+ */
+ public static function getStatus(): array
+ {
+ return [
+ self::STATUS_ACTIVE => 'Активен',
+ self::STATUS_DISABLE => 'Выключен'
+ ];
+ }
+
+}
diff --git a/common/models/UserCard.php b/common/models/UserCard.php
index 4250d56..97e790a 100755
--- a/common/models/UserCard.php
+++ b/common/models/UserCard.php
@@ -261,6 +261,17 @@ class UserCard extends \yii\db\ActiveRecord
return ArrayHelper::map(self::find()->all(), 'id', 'fio');
}
+
+ public static function getListUserWithUserId($statusId = null)
+ {
+ $list = self::find();
+ if ($statusId){
+ $list->where(['status' => $statusId]);
+ }
+
+ return ArrayHelper::map($list->all(), 'id_user', 'fio');
+ }
+
public function getManager()
{
return $this->hasOne(Manager::class, ['user_card_id' => 'id']);
diff --git a/common/services/RequestService.php b/common/services/RequestService.php
new file mode 100644
index 0000000..d97ceb0
--- /dev/null
+++ b/common/services/RequestService.php
@@ -0,0 +1,336 @@
+id = $id;
+ $this->model = Request::findOne($id);
+ } else {
+ $this->model = new Request();
+ }
+ }
+
+ /**
+ * @param array $params
+ * @return RequestService
+ */
+ public function save(array $params = []): RequestService
+ {
+ //$this->model->load($params);
+ if ($this->model->validate()) {
+ $this->isSave = $this->model->save();
+ $this->id = $this->model->id;
+ } else {
+ $this->errors = $this->model->errors;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param array $params
+ * @return RequestService
+ */
+ public function load(array $params, $formName = "Request"): RequestService
+ {
+ if ($this->model->load($params, $formName)) {
+ $this->isLoad = true;
+ }
+
+ return $this;
+ }
+
+ /**
+ * @return Request|null
+ */
+ public function getModel(): ?Request
+ {
+ return $this->model;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isFind(): bool
+ {
+ if ($this->model->id) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @param $id
+ * @return array|Request|null
+ */
+ public function getById()
+ {
+ return $this->model->find()->where(['id' => $this->id])->one();
+ }
+
+ /**
+ * @param $user_id
+ * @return array|Request|\yii\db\ActiveRecord[]
+ */
+ public function getByUserId($user_id)
+ {
+ return $this->model->find()->where(['user_id' => $user_id])->all();
+ }
+
+ /**
+ * @param $userId
+ * @return $this
+ */
+ public function setUserId($userId): RequestService
+ {
+ $this->model->user_id = $userId;
+
+ return $this;
+ }
+
+ /**
+ * @return array|int
+ */
+ public function _search()
+ {
+ $model = $this->getById($this->id);
+ $subQ = false;
+ if (!empty($model->skill_ids)) {
+ $subQ = CardSkill::find()->select('card_skill.card_id')
+ ->where(['skill_id' => $model->skill_ids])
+ ->groupBy('card_id HAVING COUNT(DISTINCT skill_id) = :count')
+ ->addParams([':count' => count($model->skill_ids)]);
+ }
+
+
+ $q = UserCard::find()->select('user_card.id, fio, user_card.position_id, card_skill.skill_id')
+ ->leftJoin('card_skill', 'card_skill.card_id = user_card.id')
+ ->where(['deleted_at' => null])
+ ->andWhere(['status' => [4, 12]])
+ ->andWhere(['not', ['position_id' => null]]);
+
+ if ($this->checkCardPosition) {
+ $q->andWhere(['position_id' => $model->position_id]);
+ }
+
+ if ($this->checkCardLevel) {
+ $q->andWhere(['level' => $model->knowledge_level_id]);
+ }
+
+ if ($this->skillsFullEntry && $subQ) {
+ $q->andWhere(['user_card.id' => $subQ]);
+ }
+
+ if ($model->skill_ids) {
+ $q->andWhere(['card_skill.skill_id' => $model->skill_ids]);
+ }
+
+ if ($this->useCardExcludePool) {
+ $q->andWhere(['not', ['user_card.id' => $this->excludePool]]);
+ }
+
+ $q->groupBy('user_card.id');
+
+ if ($this->cardAsArray) {
+ $q->asArray();
+ }
+
+ if ($this->returnCount) {
+ return $q->count();
+ } else {
+ $cards = $q->all();
+ }
+
+ if (is_array($cards)) {
+ $this->excludePool = array_merge($this->excludePool, ArrayHelper::getColumn($cards, 'id'));
+ }
+
+ return $cards;
+ }
+
+ /**
+ * @param int $searchDepth
+ * @return array|int
+ */
+ public function search(int $searchDepth = 0)
+ {
+ $cards = $this->_search();
+ $res = [];
+
+ if ($searchDepth === 1) {
+ $res = $this->checkLevel(false)->useExcludePool()->_search();
+ }
+
+ if ($searchDepth === 2) {
+ $res = $this->checkLevel(false)->checkPosition(false)->useExcludePool()->_search();
+ }
+
+ if ($searchDepth === 3) {
+ $res = $this->checkLevel(false)->checkPosition(false)->setSkillsFullEntry(false)->useExcludePool()->_search();
+ }
+
+ if ($this->returnCount) {
+ if (is_array($res)) {
+ return $cards;
+ }
+ return $res;
+ }
+
+ return array_merge($cards, $res);
+ }
+
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function setSkillsFullEntry(bool $value): RequestService
+ {
+ $this->skillsFullEntry = $value;
+
+ return $this;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function asArray(bool $value = true): RequestService
+ {
+ $this->cardAsArray = $value;
+
+ return $this;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function checkLevel(bool $value = true): RequestService
+ {
+ $this->checkCardLevel = $value;
+
+ return $this;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function checkPosition(bool $value = true): RequestService
+ {
+ $this->checkCardPosition = $value;
+
+ return $this;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function useExcludePool(bool $value = true): RequestService
+ {
+ $this->useCardExcludePool = $value;
+
+ return $this;
+ }
+
+ /**
+ * @param bool $value
+ * @return $this
+ */
+ public function count(bool $value = true): RequestService
+ {
+ $this->returnCount = $value;
+
+ return $this;
+ }
+
+ public static function q()
+ {
+
+
+ }
+
+ /**
+ * @param int|null $id
+ * @return RequestService
+ */
+ public static function run(int $id = null): RequestService
+ {
+ return new self($id);
+ }
+
+}
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 6b29451..dc0f9ed 100755
--- a/composer.json
+++ b/composer.json
@@ -14,7 +14,7 @@
},
"minimum-stability": "stable",
"require": {
- "php": ">=7.1.0",
+ "php": ">=7.4.0",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0",
@@ -36,7 +36,8 @@
"kartik-v/yii2-widget-fileinput": "@dev",
"kartik-v/yii2-mpdf": "dev-master",
"mihaildev/yii2-ckeditor": "*",
- "developeruz/yii2-db-rbac": "*"
+ "developeruz/yii2-db-rbac": "*",
+ "zircote/swagger-php": "^4.7"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
diff --git a/composer.lock b/composer.lock
index 17d9b96..bbbea6e 100755
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "3071aa4891e948d05a279cca73e77798",
+ "content-hash": "7b050e44358a7b626599eb2c7a4bdc8d",
"packages": [
{
"name": "2amigos/yii2-file-upload-widget",
@@ -360,7 +360,7 @@
"version": "v3.4.1",
"source": {
"type": "git",
- "url": "git@github.com:twbs/bootstrap.git",
+ "url": "https://github.com/twbs/bootstrap.git",
"reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
},
"dist": {
@@ -399,16 +399,16 @@
},
{
"name": "bower-asset/jquery",
- "version": "3.6.3",
+ "version": "3.6.4",
"source": {
"type": "git",
- "url": "https://github.com/jquery/jquery-dist.git",
- "reference": "da0f228131a578aea168b799fe4d7fe01764c98b"
+ "url": "git@github.com:jquery/jquery-dist.git",
+ "reference": "91ef2d8836342875f2519b5815197ea0f23613cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/da0f228131a578aea168b799fe4d7fe01764c98b",
- "reference": "da0f228131a578aea168b799fe4d7fe01764c98b"
+ "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/91ef2d8836342875f2519b5815197ea0f23613cf",
+ "reference": "91ef2d8836342875f2519b5815197ea0f23613cf"
},
"type": "bower-asset",
"license": [
@@ -693,6 +693,82 @@
},
"time": "2018-07-24T14:47:13+00:00"
},
+ {
+ "name": "doctrine/annotations",
+ "version": "2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
+ "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "^2 || ^3",
+ "ext-tokenizer": "*",
+ "php": "^7.2 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^2.0",
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.8.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^5.4 || ^6",
+ "vimeo/psalm": "^4.10"
+ },
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/2.0.1"
+ },
+ "time": "2023-02-02T22:02:53+00:00"
+ },
{
"name": "doctrine/deprecations",
"version": "v1.0.0",
@@ -1226,12 +1302,12 @@
"source": {
"type": "git",
"url": "https://github.com/kartik-v/yii2-grid.git",
- "reference": "6e02d25feeb19d8bab82354ea25dcdb9189c37c3"
+ "reference": "c407f8e09732e5965278c63643f882c431daa298"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kartik-v/yii2-grid/zipball/6e02d25feeb19d8bab82354ea25dcdb9189c37c3",
- "reference": "6e02d25feeb19d8bab82354ea25dcdb9189c37c3",
+ "url": "https://api.github.com/repos/kartik-v/yii2-grid/zipball/c407f8e09732e5965278c63643f882c431daa298",
+ "reference": "c407f8e09732e5965278c63643f882c431daa298",
"shasum": ""
},
"require": {
@@ -1284,7 +1360,7 @@
"type": "open_collective"
}
],
- "time": "2022-06-18T03:55:51+00:00"
+ "time": "2023-03-08T14:38:43+00:00"
},
{
"name": "kartik-v/yii2-krajee-base",
@@ -1985,16 +2061,16 @@
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.0",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
@@ -2032,7 +2108,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
@@ -2040,7 +2116,7 @@
"type": "tidelift"
}
],
- "time": "2022-03-03T13:19:32+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "npm-asset/fullcalendar",
@@ -2077,10 +2153,10 @@
},
{
"name": "npm-asset/jquery",
- "version": "3.6.3",
+ "version": "3.6.4",
"dist": {
"type": "tar",
- "url": "https://registry.npmjs.org/jquery/-/jquery-3.6.3.tgz"
+ "url": "https://registry.npmjs.org/jquery/-/jquery-3.6.4.tgz"
},
"type": "npm-asset",
"license": [
@@ -2315,6 +2391,55 @@
},
"time": "2022-02-17T15:40:03+00:00"
},
+ {
+ "name": "psr/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+00:00"
+ },
{
"name": "psr/http-message",
"version": "1.0.1",
@@ -2518,16 +2643,16 @@
},
{
"name": "setasign/fpdi",
- "version": "v2.3.6",
+ "version": "v2.3.7",
"source": {
"type": "git",
"url": "https://github.com/Setasign/FPDI.git",
- "reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31"
+ "reference": "bccc892d5fa1f48c43f8ba7db5ed4ba6f30c8c05"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Setasign/FPDI/zipball/6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
- "reference": "6231e315f73e4f62d72b73f3d6d78ff0eed93c31",
+ "url": "https://api.github.com/repos/Setasign/FPDI/zipball/bccc892d5fa1f48c43f8ba7db5ed4ba6f30c8c05",
+ "reference": "bccc892d5fa1f48c43f8ba7db5ed4ba6f30c8c05",
"shasum": ""
},
"require": {
@@ -2578,7 +2703,7 @@
],
"support": {
"issues": "https://github.com/Setasign/FPDI/issues",
- "source": "https://github.com/Setasign/FPDI/tree/v2.3.6"
+ "source": "https://github.com/Setasign/FPDI/tree/v2.3.7"
},
"funding": [
{
@@ -2586,7 +2711,7 @@
"type": "tidelift"
}
],
- "time": "2021-02-11T11:37:01+00:00"
+ "time": "2023-02-09T10:38:43+00:00"
},
{
"name": "studio-42/elfinder",
@@ -2732,6 +2857,219 @@
"abandoned": "symfony/mailer",
"time": "2021-10-18T15:26:12+00:00"
},
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
+ "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.3-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-01T10:25:55+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v6.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/20808dc6631aecafbe67c186af5dcb370be3a0eb",
+ "reference": "20808dc6631aecafbe67c186af5dcb370be3a0eb",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Finds files and directories via an intuitive fluent interface",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/finder/tree/v6.2.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-16T09:57:23+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.27.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.27-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for ctype functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-11-03T14:55:06+00:00"
+ },
{
"name": "symfony/polyfill-iconv",
"version": "v1.27.0",
@@ -3146,17 +3484,91 @@
"time": "2022-11-03T14:55:06+00:00"
},
{
- "name": "telegram-bot/api",
- "version": "v2.3.24",
+ "name": "symfony/yaml",
+ "version": "v6.2.7",
"source": {
"type": "git",
- "url": "https://github.com/TelegramBot/Api.git",
- "reference": "579f64d0ffe7f21d1f61cb8734e297686b286bf7"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/TelegramBot/Api/zipball/579f64d0ffe7f21d1f61cb8734e297686b286bf7",
- "reference": "579f64d0ffe7f21d1f61cb8734e297686b286bf7",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e8e6a1d59e050525f27a1f530aa9703423cb7f57",
+ "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v6.2.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-16T09:57:23+00:00"
+ },
+ {
+ "name": "telegram-bot/api",
+ "version": "v2.3.25",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/TelegramBot/Api.git",
+ "reference": "7a534219842ad59835eb89909ca58f8b8e3223a0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/TelegramBot/Api/zipball/7a534219842ad59835eb89909ca58f8b8e3223a0",
+ "reference": "7a534219842ad59835eb89909ca58f8b8e3223a0",
"shasum": ""
},
"require": {
@@ -3201,9 +3613,9 @@
],
"support": {
"issues": "https://github.com/TelegramBot/Api/issues",
- "source": "https://github.com/TelegramBot/Api/tree/v2.3.24"
+ "source": "https://github.com/TelegramBot/Api/tree/v2.3.25"
},
- "time": "2021-12-06T13:05:34+00:00"
+ "time": "2023-03-06T10:06:04+00:00"
},
{
"name": "unclead/yii2-multiple-input",
@@ -3687,6 +4099,84 @@
}
],
"time": "2021-12-30T08:48:48+00:00"
+ },
+ {
+ "name": "zircote/swagger-php",
+ "version": "4.7.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zircote/swagger-php.git",
+ "reference": "4a1d1272c2dd3afd8d96e92f02dc3565d5cc3c18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zircote/swagger-php/zipball/4a1d1272c2dd3afd8d96e92f02dc3565d5cc3c18",
+ "reference": "4a1d1272c2dd3afd8d96e92f02dc3565d5cc3c18",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "^1.7 || ^2.0",
+ "ext-json": "*",
+ "php": ">=7.2",
+ "psr/log": "^1.1 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^2 || ^3",
+ "symfony/finder": ">=2.2",
+ "symfony/yaml": ">=3.3"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.11",
+ "friendsofphp/php-cs-fixer": "^2.17 || ^3.0",
+ "phpstan/phpstan": "^1.6",
+ "phpunit/phpunit": ">=8",
+ "vimeo/psalm": "^4.23"
+ },
+ "bin": [
+ "bin/openapi"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OpenApi\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Robert Allen",
+ "email": "zircote@gmail.com"
+ },
+ {
+ "name": "Bob Fanger",
+ "email": "bfanger@gmail.com",
+ "homepage": "https://bfanger.nl"
+ },
+ {
+ "name": "Martin Rademacher",
+ "email": "mano@radebatz.net",
+ "homepage": "https://radebatz.net"
+ }
+ ],
+ "description": "swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations",
+ "homepage": "https://github.com/zircote/swagger-php/",
+ "keywords": [
+ "api",
+ "json",
+ "rest",
+ "service discovery"
+ ],
+ "support": {
+ "issues": "https://github.com/zircote/swagger-php/issues",
+ "source": "https://github.com/zircote/swagger-php/tree/4.7.8"
+ },
+ "time": "2023-03-19T21:25:02+00:00"
}
],
"packages-dev": [
@@ -3773,33 +4263,33 @@
},
{
"name": "codeception/codeception",
- "version": "5.0.7",
+ "version": "5.0.10",
"source": {
"type": "git",
"url": "https://github.com/Codeception/Codeception.git",
- "reference": "9c0bc32bd05cfa3b43dc04c6880489398b99436a"
+ "reference": "ed4af7fd4103cdd035916fbb8f35124edd2d018b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/Codeception/zipball/9c0bc32bd05cfa3b43dc04c6880489398b99436a",
- "reference": "9c0bc32bd05cfa3b43dc04c6880489398b99436a",
+ "url": "https://api.github.com/repos/Codeception/Codeception/zipball/ed4af7fd4103cdd035916fbb8f35124edd2d018b",
+ "reference": "ed4af7fd4103cdd035916fbb8f35124edd2d018b",
"shasum": ""
},
"require": {
"behat/gherkin": "^4.6.2",
- "codeception/lib-asserts": "2.0.*@dev",
+ "codeception/lib-asserts": "^2.0",
"codeception/stub": "^4.1",
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
"php": "^8.0",
- "phpunit/php-code-coverage": "^9.2",
- "phpunit/php-text-template": "^2.0",
- "phpunit/php-timer": "^5.0.3",
- "phpunit/phpunit": "^9.5.20",
+ "phpunit/php-code-coverage": "^9.2 || ^10.0",
+ "phpunit/php-text-template": "^2.0 || ^3.0",
+ "phpunit/php-timer": "^5.0.3 || ^6.0",
+ "phpunit/phpunit": "^9.5.20 || ^10.0",
"psy/psysh": "^0.11.2",
- "sebastian/comparator": "^4.0.5",
- "sebastian/diff": "^4.0.3",
+ "sebastian/comparator": "^4.0.5 || ^5.0",
+ "sebastian/diff": "^4.0.3 || ^5.0",
"symfony/console": ">=4.4.24 <7.0",
"symfony/css-selector": ">=4.4.24 <7.0",
"symfony/event-dispatcher": ">=4.4.24 <7.0",
@@ -3808,7 +4298,7 @@
"symfony/yaml": ">=4.4.24 <7.0"
},
"conflict": {
- "codeception/lib-innerbrowser": "<3.1",
+ "codeception/lib-innerbrowser": "<3.1.3",
"codeception/module-filesystem": "<3.0",
"codeception/module-phpbrowser": "<2.5"
},
@@ -3877,7 +4367,7 @@
],
"support": {
"issues": "https://github.com/Codeception/Codeception/issues",
- "source": "https://github.com/Codeception/Codeception/tree/5.0.7"
+ "source": "https://github.com/Codeception/Codeception/tree/5.0.10"
},
"funding": [
{
@@ -3885,20 +4375,20 @@
"type": "open_collective"
}
],
- "time": "2023-01-14T20:02:13+00:00"
+ "time": "2023-03-14T07:21:10+00:00"
},
{
"name": "codeception/lib-asserts",
- "version": "2.0.1",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/Codeception/lib-asserts.git",
- "reference": "78c55044611437988b54e1daecf13f247a742bf8"
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/78c55044611437988b54e1daecf13f247a742bf8",
- "reference": "78c55044611437988b54e1daecf13f247a742bf8",
+ "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/b8c7dff552249e560879c682ba44a4b963af91bc",
+ "reference": "b8c7dff552249e560879c682ba44a4b963af91bc",
"shasum": ""
},
"require": {
@@ -3937,37 +4427,37 @@
],
"support": {
"issues": "https://github.com/Codeception/lib-asserts/issues",
- "source": "https://github.com/Codeception/lib-asserts/tree/2.0.1"
+ "source": "https://github.com/Codeception/lib-asserts/tree/2.1.0"
},
- "time": "2022-09-27T06:17:39+00:00"
+ "time": "2023-02-10T18:36:23+00:00"
},
{
"name": "codeception/lib-innerbrowser",
- "version": "3.1.3",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/Codeception/lib-innerbrowser.git",
- "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f"
+ "reference": "32e9a19a39bbb5165cdb845dc3618b412a17e6da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
- "reference": "10482f7e34c0537bf5b87bc82a3d65a1842a8b4f",
+ "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/32e9a19a39bbb5165cdb845dc3618b412a17e6da",
+ "reference": "32e9a19a39bbb5165cdb845dc3618b412a17e6da",
"shasum": ""
},
"require": {
- "codeception/codeception": "^5.0",
+ "codeception/codeception": "^5.0.8",
"codeception/lib-web": "^1.0.1",
"ext-dom": "*",
"ext-json": "*",
"ext-mbstring": "*",
- "php": "^8.0",
- "phpunit/phpunit": "^9.5",
+ "php": "^8.1",
+ "phpunit/phpunit": "^10.0",
"symfony/browser-kit": "^4.4.24 || ^5.4 || ^6.0",
"symfony/dom-crawler": "^4.4.30 || ^5.4 || ^6.0"
},
"require-dev": {
- "codeception/util-universalframework": "dev-master"
+ "codeception/util-universalframework": "^1.0"
},
"type": "library",
"autoload": {
@@ -3996,9 +4486,9 @@
],
"support": {
"issues": "https://github.com/Codeception/lib-innerbrowser/issues",
- "source": "https://github.com/Codeception/lib-innerbrowser/tree/3.1.3"
+ "source": "https://github.com/Codeception/lib-innerbrowser/tree/4.0.0"
},
- "time": "2022-10-03T15:33:34+00:00"
+ "time": "2023-02-03T19:31:45+00:00"
},
{
"name": "codeception/lib-web",
@@ -4055,27 +4545,27 @@
},
{
"name": "codeception/module-yii2",
- "version": "1.1.7",
+ "version": "1.1.8",
"source": {
"type": "git",
"url": "https://github.com/Codeception/module-yii2.git",
- "reference": "338ab4dfa04b3f7312856915f2daebad73985911"
+ "reference": "75f2fdf7f1912c1b95885d56a5098ed10f586411"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Codeception/module-yii2/zipball/338ab4dfa04b3f7312856915f2daebad73985911",
- "reference": "338ab4dfa04b3f7312856915f2daebad73985911",
+ "url": "https://api.github.com/repos/Codeception/module-yii2/zipball/75f2fdf7f1912c1b95885d56a5098ed10f586411",
+ "reference": "75f2fdf7f1912c1b95885d56a5098ed10f586411",
"shasum": ""
},
"require": {
- "codeception/codeception": "^5.0.0-RC6",
- "codeception/lib-innerbrowser": "^3.0",
+ "codeception/codeception": "^5.0.8",
+ "codeception/lib-innerbrowser": "^3.0 | ^4.0",
"php": "^8.0"
},
"require-dev": {
"codeception/module-asserts": "^3.0",
"codeception/module-filesystem": "^3.0",
- "codeception/verify": "^2.2",
+ "codeception/verify": "^3.0",
"codemix/yii2-localeurls": "^1.7",
"yiisoft/yii2": "dev-master",
"yiisoft/yii2-app-advanced": "dev-master"
@@ -4102,16 +4592,16 @@
}
],
"description": "Codeception module for Yii2 framework",
- "homepage": "http://codeception.com/",
+ "homepage": "https://codeception.com/",
"keywords": [
"codeception",
"yii2"
],
"support": {
"issues": "https://github.com/Codeception/module-yii2/issues",
- "source": "https://github.com/Codeception/module-yii2/tree/1.1.7"
+ "source": "https://github.com/Codeception/module-yii2/tree/1.1.8"
},
- "time": "2022-07-15T18:09:58+00:00"
+ "time": "2023-02-10T18:47:53+00:00"
},
{
"name": "codeception/stub",
@@ -4194,76 +4684,6 @@
},
"time": "2017-01-09T10:58:51+00:00"
},
- {
- "name": "doctrine/instantiator",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "require-dev": {
- "doctrine/coding-standard": "^11",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^1.2",
- "phpstan/phpstan": "^1.9.4",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpunit/phpunit": "^9.5.27",
- "vimeo/psalm": "^5.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
- }
- ],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
- "keywords": [
- "constructor",
- "instantiate"
- ],
- "support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-30T00:23:10+00:00"
- },
{
"name": "fakerphp/faker",
"version": "v1.21.0",
@@ -4334,16 +4754,16 @@
},
{
"name": "guzzlehttp/psr7",
- "version": "2.4.3",
+ "version": "2.4.4",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "67c26b443f348a51926030c83481b85718457d3d"
+ "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d",
- "reference": "67c26b443f348a51926030c83481b85718457d3d",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
+ "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf",
"shasum": ""
},
"require": {
@@ -4433,7 +4853,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.4.3"
+ "source": "https://github.com/guzzle/psr7/tree/2.4.4"
},
"funding": [
{
@@ -4449,7 +4869,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-26T14:07:24+00:00"
+ "time": "2023-03-09T13:19:02+00:00"
},
{
"name": "masterminds/html5",
@@ -4522,16 +4942,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.3",
+ "version": "v4.15.4",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
+ "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
- "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
+ "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290",
"shasum": ""
},
"require": {
@@ -4572,9 +4992,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4"
},
- "time": "2023-01-16T22:05:37+00:00"
+ "time": "2023-03-05T19:49:14+00:00"
},
{
"name": "phar-io/manifest",
@@ -4730,44 +5150,44 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.23",
+ "version": "10.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c"
+ "reference": "20800e84296ea4732f9a125e08ce86b4004ae3e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
- "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/20800e84296ea4732f9a125e08ce86b4004ae3e4",
+ "reference": "20800e84296ea4732f9a125e08ce86b4004ae3e4",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.14",
- "php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0.3",
- "phpunit/php-text-template": "^2.0.2",
- "sebastian/code-unit-reverse-lookup": "^2.0.2",
- "sebastian/complexity": "^2.0",
- "sebastian/environment": "^5.1.2",
- "sebastian/lines-of-code": "^1.0.3",
- "sebastian/version": "^3.0.1",
+ "nikic/php-parser": "^4.15",
+ "php": ">=8.1",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "sebastian/code-unit-reverse-lookup": "^3.0",
+ "sebastian/complexity": "^3.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/lines-of-code": "^2.0",
+ "sebastian/version": "^4.0",
"theseer/tokenizer": "^1.2.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.2-dev"
+ "dev-main": "10.0-dev"
}
},
"autoload": {
@@ -4795,7 +5215,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.0.2"
},
"funding": [
{
@@ -4803,32 +5223,32 @@
"type": "github"
}
],
- "time": "2022-12-28T12:41:10+00:00"
+ "time": "2023-03-06T13:00:19+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.6",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ "reference": "fd9329ab3368f59fe1fe808a189c51086bd4b6bd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/fd9329ab3368f59fe1fe808a189c51086bd4b6bd",
+ "reference": "fd9329ab3368f59fe1fe808a189c51086bd4b6bd",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4855,7 +5275,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.0.1"
},
"funding": [
{
@@ -4863,28 +5283,28 @@
"type": "github"
}
],
- "time": "2021-12-02T12:48:52+00:00"
+ "time": "2023-02-10T16:53:14+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "3.1.1",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
- "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -4892,7 +5312,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -4918,7 +5338,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
},
"funding": [
{
@@ -4926,32 +5346,32 @@
"type": "github"
}
],
- "time": "2020-09-28T05:58:55+00:00"
+ "time": "2023-02-03T06:56:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "2.0.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
- "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
+ "reference": "9f3d3709577a527025f55bcf0f7ab8052c8bb37d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -4977,7 +5397,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.0"
},
"funding": [
{
@@ -4985,32 +5405,32 @@
"type": "github"
}
],
- "time": "2020-10-26T05:33:50+00:00"
+ "time": "2023-02-03T06:56:46+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "5.0.3",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
- "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -5036,7 +5456,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
},
"funding": [
{
@@ -5044,24 +5464,23 @@
"type": "github"
}
],
- "time": "2020-10-26T13:16:10+00:00"
+ "time": "2023-02-03T06:57:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "9.5.28",
+ "version": "10.0.19",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e"
+ "reference": "20c23e85c86e5c06d63538ba464e8054f4744e62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/954ca3113a03bf780d22f07bf055d883ee04b65e",
- "reference": "954ca3113a03bf780d22f07bf055d883ee04b65e",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/20c23e85c86e5c06d63538ba464e8054f4744e62",
+ "reference": "20c23e85c86e5c06d63538ba464e8054f4744e62",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -5071,27 +5490,26 @@
"myclabs/deep-copy": "^1.10.1",
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
- "php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2.13",
- "phpunit/php-file-iterator": "^3.0.5",
- "phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
- "sebastian/version": "^3.0.2"
+ "php": ">=8.1",
+ "phpunit/php-code-coverage": "^10.0",
+ "phpunit/php-file-iterator": "^4.0",
+ "phpunit/php-invoker": "^4.0",
+ "phpunit/php-text-template": "^3.0",
+ "phpunit/php-timer": "^6.0",
+ "sebastian/cli-parser": "^2.0",
+ "sebastian/code-unit": "^2.0",
+ "sebastian/comparator": "^5.0",
+ "sebastian/diff": "^5.0",
+ "sebastian/environment": "^6.0",
+ "sebastian/exporter": "^5.0",
+ "sebastian/global-state": "^6.0",
+ "sebastian/object-enumerator": "^5.0",
+ "sebastian/recursion-context": "^5.0",
+ "sebastian/type": "^4.0",
+ "sebastian/version": "^4.0"
},
"suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "ext-soap": "To be able to generate mocks based on WSDL files"
},
"bin": [
"phpunit"
@@ -5099,7 +5517,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.5-dev"
+ "dev-main": "10.0-dev"
}
},
"autoload": {
@@ -5130,7 +5548,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.28"
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.0.19"
},
"funding": [
{
@@ -5146,7 +5565,7 @@
"type": "tidelift"
}
],
- "time": "2023-01-14T12:32:24+00:00"
+ "time": "2023-03-27T11:46:33+00:00"
},
{
"name": "psr/container",
@@ -5308,16 +5727,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.11.10",
+ "version": "v0.11.14",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36"
+ "reference": "8c2e264def7a8263a68ef6f0b55ce90b77d41e17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e9eadffbed9c9deb5426fd107faae0452bf20a36",
- "reference": "e9eadffbed9c9deb5426fd107faae0452bf20a36",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/8c2e264def7a8263a68ef6f0b55ce90b77d41e17",
+ "reference": "8c2e264def7a8263a68ef6f0b55ce90b77d41e17",
"shasum": ""
},
"require": {
@@ -5378,9 +5797,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.10"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.11.14"
},
- "time": "2022-12-23T17:47:18+00:00"
+ "time": "2023-03-28T03:41:01+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -5428,28 +5847,28 @@
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -5472,7 +5891,7 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
},
"funding": [
{
@@ -5480,32 +5899,32 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2023-02-03T06:58:15+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "1.0.8",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
- "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+ "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -5528,7 +5947,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
},
"funding": [
{
@@ -5536,32 +5955,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:08:54+00:00"
+ "time": "2023-02-03T06:58:43+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "2.0.3",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
- "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -5583,7 +6002,7 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
},
"funding": [
{
@@ -5591,34 +6010,36 @@
"type": "github"
}
],
- "time": "2020-09-28T05:30:19+00:00"
+ "time": "2023-02-03T06:59:15+00:00"
},
{
"name": "sebastian/comparator",
- "version": "4.0.8",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
- "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/72f01e6586e0caf6af81297897bd112eb7e9627c",
+ "reference": "72f01e6586e0caf6af81297897bd112eb7e9627c",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/diff": "^4.0",
- "sebastian/exporter": "^4.0"
+ "ext-dom": "*",
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/diff": "^5.0",
+ "sebastian/exporter": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5657,7 +6078,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.0"
},
"funding": [
{
@@ -5665,33 +6086,33 @@
"type": "github"
}
],
- "time": "2022-09-14T12:41:17+00:00"
+ "time": "2023-02-03T07:07:16+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
+ "reference": "e67d240970c9dc7ea7b2123a6d520e334dd61dc6",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
- "php": ">=7.3"
+ "nikic/php-parser": "^4.10",
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -5714,7 +6135,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.0.0"
},
"funding": [
{
@@ -5722,33 +6143,33 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-02-03T06:59:47+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "aae9a0a43bff37bd5d8d0311426c87bf36153f02"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/aae9a0a43bff37bd5d8d0311426c87bf36153f02",
+ "reference": "aae9a0a43bff37bd5d8d0311426c87bf36153f02",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3",
+ "phpunit/phpunit": "^10.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5780,7 +6201,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "security": "https://github.com/sebastianbergmann/diff/security/policy",
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.0.1"
},
"funding": [
{
@@ -5788,27 +6210,27 @@
"type": "github"
}
],
- "time": "2020-10-26T13:10:38+00:00"
+ "time": "2023-03-23T05:12:41+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.4",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
+ "reference": "b6f3694c6386c7959915a0037652e0c40f6f69cc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/b6f3694c6386c7959915a0037652e0c40f6f69cc",
+ "reference": "b6f3694c6386c7959915a0037652e0c40f6f69cc",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"suggest": {
"ext-posix": "*"
@@ -5816,7 +6238,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.1-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -5835,7 +6257,7 @@
}
],
"description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "homepage": "https://github.com/sebastianbergmann/environment",
"keywords": [
"Xdebug",
"environment",
@@ -5843,7 +6265,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
+ "source": "https://github.com/sebastianbergmann/environment/tree/6.0.0"
},
"funding": [
{
@@ -5851,34 +6273,34 @@
"type": "github"
}
],
- "time": "2022-04-03T09:37:03+00:00"
+ "time": "2023-02-03T07:03:04+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.5",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
- "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
+ "reference": "f3ec4bf931c0b31e5b413f5b4fc970a7d03338c0",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/recursion-context": "^4.0"
+ "ext-mbstring": "*",
+ "php": ">=8.1",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -5920,7 +6342,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/5.0.0"
},
"funding": [
{
@@ -5928,38 +6350,35 @@
"type": "github"
}
],
- "time": "2022-09-14T06:03:37+00:00"
+ "time": "2023-02-03T07:06:49+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.5",
+ "version": "6.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ "reference": "aab257c712de87b90194febd52e4d184551c2d44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/aab257c712de87b90194febd52e4d184551c2d44",
+ "reference": "aab257c712de87b90194febd52e4d184551c2d44",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^9.3"
- },
- "suggest": {
- "ext-uopz": "*"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -5984,7 +6403,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.0"
},
"funding": [
{
@@ -5992,33 +6411,33 @@
"type": "github"
}
],
- "time": "2022-02-14T08:28:10+00:00"
+ "time": "2023-02-03T07:07:38+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/17c4d940ecafb3d15d2cf916f4108f664e28b130",
+ "reference": "17c4d940ecafb3d15d2cf916f4108f664e28b130",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
- "php": ">=7.3"
+ "nikic/php-parser": "^4.10",
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-main": "2.0-dev"
}
},
"autoload": {
@@ -6041,7 +6460,7 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.0"
},
"funding": [
{
@@ -6049,34 +6468,34 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-02-03T07:08:02+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "4.0.4",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
- "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
"shasum": ""
},
"require": {
- "php": ">=7.3",
- "sebastian/object-reflector": "^2.0",
- "sebastian/recursion-context": "^4.0"
+ "php": ">=8.1",
+ "sebastian/object-reflector": "^3.0",
+ "sebastian/recursion-context": "^5.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -6098,7 +6517,7 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
},
"funding": [
{
@@ -6106,32 +6525,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:12:34+00:00"
+ "time": "2023-02-03T07:08:32+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "2.0.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
- "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+ "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -6153,7 +6572,7 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
},
"funding": [
{
@@ -6161,32 +6580,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:14:26+00:00"
+ "time": "2023-02-03T07:06:18+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.4",
+ "version": "5.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+ "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -6213,10 +6632,10 @@
}
],
"description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
},
"funding": [
{
@@ -6224,87 +6643,32 @@
"type": "github"
}
],
- "time": "2020-10-26T13:17:30+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2023-02-03T07:05:40+00:00"
},
{
"name": "sebastian/type",
- "version": "3.2.0",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
- "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+ "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpunit/phpunit": "^9.5"
+ "phpunit/phpunit": "^10.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -6327,7 +6691,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
},
"funding": [
{
@@ -6335,29 +6699,29 @@
"type": "github"
}
],
- "time": "2022-09-12T14:47:03+00:00"
+ "time": "2023-02-03T07:10:45+00:00"
},
{
"name": "sebastian/version",
- "version": "3.0.2",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
- "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
"shasum": ""
},
"require": {
- "php": ">=7.3"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -6380,7 +6744,7 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
},
"funding": [
{
@@ -6388,20 +6752,20 @@
"type": "github"
}
],
- "time": "2020-09-28T06:39:44+00:00"
+ "time": "2023-02-07T11:34:05+00:00"
},
{
"name": "symfony/browser-kit",
- "version": "v6.2.0",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "5602fcc9a2a696f1743050ffcafa30741da94227"
+ "reference": "87bd43240e6cc855f70ea1c7a448ab3bd442633c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/5602fcc9a2a696f1743050ffcafa30741da94227",
- "reference": "5602fcc9a2a696f1743050ffcafa30741da94227",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/87bd43240e6cc855f70ea1c7a448ab3bd442633c",
+ "reference": "87bd43240e6cc855f70ea1c7a448ab3bd442633c",
"shasum": ""
},
"require": {
@@ -6443,7 +6807,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v6.2.0"
+ "source": "https://github.com/symfony/browser-kit/tree/v6.2.7"
},
"funding": [
{
@@ -6459,20 +6823,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-02T09:08:04+00:00"
+ "time": "2023-02-14T08:44:56+00:00"
},
{
"name": "symfony/console",
- "version": "v6.2.3",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "0f579613e771dba2dbb8211c382342a641f5da06"
+ "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/0f579613e771dba2dbb8211c382342a641f5da06",
- "reference": "0f579613e771dba2dbb8211c382342a641f5da06",
+ "url": "https://api.github.com/repos/symfony/console/zipball/cbad09eb8925b6ad4fb721c7a179344dc4a19d45",
+ "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45",
"shasum": ""
},
"require": {
@@ -6539,7 +6903,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.2.3"
+ "source": "https://github.com/symfony/console/tree/v6.2.7"
},
"funding": [
{
@@ -6555,20 +6919,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-28T14:26:22+00:00"
+ "time": "2023-02-25T17:00:03+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.2.3",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "ab1df4ba3ded7b724766ba3a6e0eca0418e74f80"
+ "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab1df4ba3ded7b724766ba3a6e0eca0418e74f80",
- "reference": "ab1df4ba3ded7b724766ba3a6e0eca0418e74f80",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/aedf3cb0f5b929ec255d96bbb4909e9932c769e0",
+ "reference": "aedf3cb0f5b929ec255d96bbb4909e9932c769e0",
"shasum": ""
},
"require": {
@@ -6604,7 +6968,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.2.3"
+ "source": "https://github.com/symfony/css-selector/tree/v6.2.7"
},
"funding": [
{
@@ -6620,87 +6984,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-28T14:26:22+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v3.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3",
- "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.3-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "files": [
- "function.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-25T10:21:52+00:00"
+ "time": "2023-02-14T08:44:56+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v6.2.3",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "f2743e033dd05a62978ced0ad368022e82c9fab2"
+ "reference": "65a906f5141ff2d3aef1b01c128fba78f5e9f921"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/f2743e033dd05a62978ced0ad368022e82c9fab2",
- "reference": "f2743e033dd05a62978ced0ad368022e82c9fab2",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/65a906f5141ff2d3aef1b01c128fba78f5e9f921",
+ "reference": "65a906f5141ff2d3aef1b01c128fba78f5e9f921",
"shasum": ""
},
"require": {
@@ -6741,7 +7038,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v6.2.3"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.2.7"
},
"funding": [
{
@@ -6757,20 +7054,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-22T17:55:15+00:00"
+ "time": "2023-02-14T08:44:56+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.2.2",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "3ffeb31139b49bf6ef0bc09d1db95eac053388d1"
+ "reference": "404b307de426c1c488e5afad64403e5f145e82a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3ffeb31139b49bf6ef0bc09d1db95eac053388d1",
- "reference": "3ffeb31139b49bf6ef0bc09d1db95eac053388d1",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/404b307de426c1c488e5afad64403e5f145e82a5",
+ "reference": "404b307de426c1c488e5afad64403e5f145e82a5",
"shasum": ""
},
"require": {
@@ -6824,7 +7121,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.2.7"
},
"funding": [
{
@@ -6840,20 +7137,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-14T16:11:27+00:00"
+ "time": "2023-02-14T08:44:56+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.2.0",
+ "version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "0782b0b52a737a05b4383d0df35a474303cabdae"
+ "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0782b0b52a737a05b4383d0df35a474303cabdae",
- "reference": "0782b0b52a737a05b4383d0df35a474303cabdae",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
+ "reference": "0ad3b6f1e4e2da5690fefe075cd53a238646d8dd",
"shasum": ""
},
"require": {
@@ -6903,7 +7200,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.2.1"
},
"funding": [
{
@@ -6919,153 +7216,7 @@
"type": "tidelift"
}
],
- "time": "2022-11-25T10:21:52+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v6.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "81eefbddfde282ee33b437ba5e13d7753211ae8e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/81eefbddfde282ee33b437ba5e13d7753211ae8e",
- "reference": "81eefbddfde282ee33b437ba5e13d7753211ae8e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "require-dev": {
- "symfony/filesystem": "^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v6.2.3"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-22T17:55:15+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.27.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
- "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.27-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-03T14:55:06+00:00"
+ "time": "2023-03-01T10:32:47+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
@@ -7150,16 +7301,16 @@
},
{
"name": "symfony/service-contracts",
- "version": "v3.2.0",
+ "version": "v3.2.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75"
+ "reference": "a8c9cedf55f314f3a186041d19537303766df09a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75",
- "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a",
+ "reference": "a8c9cedf55f314f3a186041d19537303766df09a",
"shasum": ""
},
"require": {
@@ -7215,7 +7366,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.2.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.2.1"
},
"funding": [
{
@@ -7231,20 +7382,20 @@
"type": "tidelift"
}
],
- "time": "2022-11-25T10:21:52+00:00"
+ "time": "2023-03-01T10:32:47+00:00"
},
{
"name": "symfony/string",
- "version": "v6.2.2",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "863219fd713fa41cbcd285a79723f94672faff4d"
+ "reference": "67b8c1eec78296b85dc1c7d9743830160218993d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/863219fd713fa41cbcd285a79723f94672faff4d",
- "reference": "863219fd713fa41cbcd285a79723f94672faff4d",
+ "url": "https://api.github.com/repos/symfony/string/zipball/67b8c1eec78296b85dc1c7d9743830160218993d",
+ "reference": "67b8c1eec78296b85dc1c7d9743830160218993d",
"shasum": ""
},
"require": {
@@ -7301,7 +7452,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.2.2"
+ "source": "https://github.com/symfony/string/tree/v6.2.7"
},
"funding": [
{
@@ -7317,20 +7468,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-14T16:11:27+00:00"
+ "time": "2023-02-24T10:42:00+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.2.3",
+ "version": "v6.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0"
+ "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0",
- "reference": "fdbadd4803bc3c96ef89238c9c9e2ebe424ec2e0",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e",
+ "reference": "cf8d4ca1ddc1e3cc242375deb8fc23e54f5e2a1e",
"shasum": ""
},
"require": {
@@ -7389,7 +7540,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.2.3"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.2.7"
},
"funding": [
{
@@ -7405,81 +7556,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-22T17:55:15+00:00"
- },
- {
- "name": "symfony/yaml",
- "version": "v6.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "6ed8243aa5f2cb5a57009f826b5e7fb3c4200cf3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/6ed8243aa5f2cb5a57009f826b5e7fb3c4200cf3",
- "reference": "6ed8243aa5f2cb5a57009f826b5e7fb3c4200cf3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "symfony/console": "<5.4"
- },
- "require-dev": {
- "symfony/console": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
- },
- "bin": [
- "Resources/bin/yaml-lint"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Yaml\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Loads and dumps YAML files",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/yaml/tree/v6.2.2"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-14T16:11:27+00:00"
+ "time": "2023-02-24T10:42:00+00:00"
},
{
"name": "theseer/tokenizer",
@@ -7737,7 +7814,7 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=7.1.0",
+ "php": ">=7.4.0",
"ext-json": "*"
},
"platform-dev": [],
diff --git a/console/controllers/SwaggerController.php b/console/controllers/SwaggerController.php
new file mode 100644
index 0000000..36a34db
--- /dev/null
+++ b/console/controllers/SwaggerController.php
@@ -0,0 +1,26 @@
+toYaml());
+ fclose($handle);
+ echo $this->ansiFormat('Created \n", Console::FG_BLUE');
+ return ExitCode::OK;
+ }
+
+}
\ No newline at end of file
diff --git a/console/migrations/m230329_211037_create_request_table.php b/console/migrations/m230329_211037_create_request_table.php
new file mode 100644
index 0000000..9df9b55
--- /dev/null
+++ b/console/migrations/m230329_211037_create_request_table.php
@@ -0,0 +1,37 @@
+createTable('{{%request}}', [
+ 'id' => $this->primaryKey(),
+ 'created_at' => $this->dateTime(),
+ 'updated_at' => $this->dateTime(),
+ 'user_id' => $this->integer(11)->notNull(),
+ 'title' => $this->string(255)->notNull(),
+ 'position_id' => $this->integer(11),
+ 'skill_ids' => $this->string(255),
+ 'knowledge_level_id' => $this->integer(11),
+ 'descr' => $this->text(),
+ 'specialist_count' => $this->integer(2),
+ 'status' => $this->integer(1)->defaultValue(0)
+ ]);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeDown()
+ {
+ $this->dropTable('{{%request}}');
+ }
+}
diff --git a/console/migrations/m230329_212545_create_knowledge_level_table.php b/console/migrations/m230329_212545_create_knowledge_level_table.php
new file mode 100644
index 0000000..1347a44
--- /dev/null
+++ b/console/migrations/m230329_212545_create_knowledge_level_table.php
@@ -0,0 +1,29 @@
+createTable('{{%knowledge_level}}', [
+ 'id' => $this->primaryKey(),
+ 'title' => $this->string(255)->notNull(),
+ 'status' => $this->integer(1)
+ ]);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function safeDown()
+ {
+ $this->dropTable('{{%knowledge_level}}');
+ }
+}
diff --git a/frontend/modules/api/controllers/ApiController.php b/frontend/modules/api/controllers/ApiController.php
index eec0b03..76aaed5 100644
--- a/frontend/modules/api/controllers/ApiController.php
+++ b/frontend/modules/api/controllers/ApiController.php
@@ -9,6 +9,36 @@ use yii\filters\ContentNegotiator;
use yii\rest\Controller;
use yii\web\Response;
+
+/**
+ * @OA\Info(
+ * version="1.0.0",
+ * title="Документация Гильдия",
+ * description="Документация для работы с API",
+ *
+ * ),
+ * @OA\PathItem(
+ * path="/api"
+ * ),
+ * @OA\Server(
+ * url="https://itguild.info/api",
+ * description="Основной сервер",
+ * ),
+ *
+ * @OA\Server(
+ * url="https://guild.loc/api",
+ * description="Локальный сервер",
+ * ),
+ *
+ * @OA\SecurityScheme(
+ * securityScheme="bearerAuth",
+ * in="header",
+ * name="Authorization",
+ * type="http",
+ * scheme="bearer",
+ * bearerFormat="JWT",
+ * ),
+ */
class ApiController extends Controller
{
diff --git a/frontend/modules/api/controllers/RequestController.php b/frontend/modules/api/controllers/RequestController.php
new file mode 100644
index 0000000..93a2ac6
--- /dev/null
+++ b/frontend/modules/api/controllers/RequestController.php
@@ -0,0 +1,226 @@
+ ['get'],
+ 'get-request-list' => ['get'],
+ 'create-request' => ['post'],
+// 'update-task' => ['put', 'patch'],
+ ];
+ }
+
+ /**
+ * @OA\Get(path="/request/get-request",
+ * summary="Получить запрос",
+ * description="Получения запроса по идентификатору",
+ * security={
+ * {"bearerAuth": {}}
+ * },
+ * tags={"Requests"},
+ * @OA\Parameter(
+ * name="request_id",
+ * in="query",
+ * required=true,
+ * @OA\Schema(
+ * type="integer",
+ * )
+ * ),
+ * @OA\Parameter(
+ * name="search_depth",
+ * in="query",
+ * required=false,
+ * @OA\Schema(
+ * type="integer",
+ * default=3
+ * )
+ * ),
+ * @OA\Response(
+ * response=200,
+ * description="Возвращает объект Запроса",
+ * @OA\MediaType(
+ * mediaType="application/json",
+ * @OA\Schema(ref="#/components/schemas/Request"),
+ * ),
+ *
+ * ),
+ * )
+ */
+ public function actionGetRequest(int $request_id, int $search_depth = 3): Request
+ {
+ if (empty($request_id) or !is_numeric($request_id)) {
+ throw new NotFoundHttpException('Incorrect request ID');
+ }
+
+ $request = RequestService::run($request_id)->getById();
+
+ if (empty($request)) {
+ throw new NotFoundHttpException('The request does not exist');
+ }
+
+ $request->result_count = RequestService::run($request_id)->count()->search($search_depth);
+
+ return $request;
+ }
+
+ /**
+ *
+ * @OA\Get(path="/request/get-request-list",
+ * summary="Создать запрос",
+ * description="Метод для создания запроса, если параметр user_id не передан, то запрос создается от имени текущего пользователя.",
+ * security={
+ * {"bearerAuth": {}}
+ * },
+ * tags={"Requests"},
+ * @OA\Parameter(
+ * name="user_id",
+ * in="query",
+ * required=false,
+ * @OA\Schema(
+ * type="integer",
+ * default=null
+ * )
+ * ),
+ * @OA\Parameter(
+ * name="search_depth",
+ * in="query",
+ * required=false,
+ * @OA\Schema(
+ * type="integer",
+ * default=3
+ * )
+ * ),
+ * @OA\Response(
+ * response=200,
+ * description="Возвращает объект Запроса",
+ * @OA\MediaType(
+ * mediaType="application/json",
+ * @OA\Schema(ref="#/components/schemas/RequestsExample"),
+ * ),
+ * ),
+ * )
+ *
+ * @param int|null $user_id
+ * @return array|\yii\db\ActiveRecord[]
+ */
+ public function actionGetList(int $user_id = null, int $search_depth = 3): array
+ {
+ if (!$user_id) {
+ $user_id = \Yii::$app->user->id;
+ }
+
+ $requests = RequestService::run()->getByUserId($user_id);
+
+ foreach ($requests as $request) {
+ $request->result_count = RequestService::run($request->id)->count()->search($search_depth);
+ }
+
+ return $requests;
+ }
+
+ /**
+ *
+ * @OA\Post(path="/request/create-request",
+ * summary="Получить список запросов",
+ * description="Метод для оздания запроса, если не передан параметр user_id, то будет получен список текущего пользователя",
+ * security={
+ * {"bearerAuth": {}}
+ * },
+ * tags={"Requests"},
+ *
+ * @OA\RequestBody(
+ * @OA\MediaType(
+ * mediaType="multipart/form-data",
+ * @OA\Schema(
+ * required={"position_id", "title", "status"},
+ * @OA\Property(
+ * property="user_id",
+ * type="integer",
+ * description="Идентификатор пользователя",
+ * ),
+ * @OA\Property(
+ * property="title",
+ * type="string",
+ * description="Заголовок запроса",
+ * ),
+ * @OA\Property(
+ * property="position_id",
+ * type="integer",
+ * description="Позиция",
+ * ),
+ * @OA\Property(
+ * property="knowledge_level_id",
+ * type="integer",
+ * description="Уровень",
+ * ),
+ * @OA\Property(
+ * property="specialist_count",
+ * type="integer",
+ * description="Количество специалистов",
+ * ),
+ * @OA\Property(
+ * property="status",
+ * type="integer",
+ * description="Статус запроса",
+ * ),
+ * @OA\Property(
+ * property="descr",
+ * type=" string",
+ * description="Описание запроса",
+ * ),
+ * @OA\Property(
+ * property="skill_ids",
+ * type="array",
+ * description="Навыки",
+ * @OA\Items(
+ * type="integer",
+ * ),
+ * ),
+ * ),
+ * ),
+ * ),
+ * @OA\Response(
+ * response=200,
+ * description="Возвращает объект Запроса",
+ * @OA\MediaType(
+ * mediaType="application/json",
+ * @OA\Schema(ref="#/components/schemas/Request"),
+ * ),
+ * ),
+ * )
+ *
+ * @return Request
+ * @throws BadRequestHttpException
+ */
+ public function actionCreateRequest()
+ {
+ $user_id = \Yii::$app->user->id;
+ if (!$user_id){
+ throw new BadRequestHttpException(json_encode(['Пользователь не найден']));
+ }
+
+ $requestService = RequestService::run()
+ ->setUserId($user_id)
+ ->load(\Yii::$app->request->post(), '')
+ ->save();
+
+ if (!$requestService->isSave){
+ throw new BadRequestHttpException(json_encode($requestService->errors));
+ }
+
+ return $requestService->getModel();
+ }
+
+}
\ No newline at end of file
diff --git a/frontend/modules/api/models/Position.php b/frontend/modules/api/models/Position.php
new file mode 100644
index 0000000..5c8ddbb
--- /dev/null
+++ b/frontend/modules/api/models/Position.php
@@ -0,0 +1,25 @@
+