Диспетчер событий

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Диспетчер событий

Сообщение Kaev »

Суть проблемы состоит в следующем. В папке vendor установил symfony и соответственно, папку event-dispatcher. В backend 'components' => array(
'eventDispatcher' => array(
'class' => \WS\EventDispatcher\EventDispatcher::className(),
'events' => array(
SomeEvent::className() => array(
array(
'class' => SomeHandler::className(),
'params' => array(),
),
//...
),
//...
),
),
//...
)
Когда начинаю запускать, то ошибка в строке 'class' => \WS\EventDispatcher\EventDispatcher::className(),
Строка красным цветом не подсвечивается. Вроде бы рабочая строка. Однако, почему-то ошибка выскакивает. И еще неинсталлирован EventDispatcher.
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Диспетчер событий

Сообщение chesar »

Покажи содержимое composer.json
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

Не смог найти решение и от безысходности удалил все. Теперь восстановлю. Может есть какое-нибудь решение. Хотя все перепроверил. Мне думается. Это от того, что в yii2 есть некоторая не доработка. Сейчас восстановлю и выложу подробно по шагам.
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

composer.json
---
{
"name": "yiisoft/yii2-app-advanced",
"description": "Yii 2 Advanced Project Template",
"keywords": ["yii2", "framework", "advanced", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
"issues": "https://github.com/yiisoft/yii2/issues?state=open",
"forum": "http://www.yiiframework.com/forum/",
"wiki": "http://www.yiiframework.com/wiki/",
"irc": "irc://irc.freenode.net/yii",
"source": "https://github.com/yiisoft/yii2"
},
"minimum-stability": "stable",
"require": {
"php": ">=7.1",
"yiisoft/yii2": "~2.0.6",
"yiisoft/yii2-bootstrap": "~2.0.0",
"yiisoft/yii2-swiftmailer": "~2.0.0",
"dmstr/yii2-adminlte-asset": "^2.4",
"webmozart/assert": "^1.2",
"la-haute-societe/yii2-save-relations-behavior": "^1.2",
"yiisoft/yii2-authclient": "^2.1",
"kartik-v/yii2-widgets": "*",
"kartik-v/yii2-field-range": "*",
"paulzi/yii2-nested-sets": "^1.0",
"yii-dream-team/yii2-upload-behavior": "^1.1",
"bower-asset/font-awesome": "^4.7",
"bower-asset/owl.carousel": "^2.2",
"bower-asset/magnific-popup": "^1.1",
"elasticsearch/elasticsearch": "^5.2",
"yii-cms/yii2-robokassa": "^1.1",
"phpoffice/phpexcel": "^1.8",
"mihaildev/yii2-ckeditor": "^1.0",
"mihaildev/yii2-elfinder": "^1.2",
"fishvision/yii2-migrate": "^1.0",
"guzzlehttp/guzzle": "^6.2",
"filsh/yii2-oauth2-server": "^2.0",
"flow/jsonpath": "^0.3.4",
"drewm/mailchimp-api": "^2.4",
"yiisoft/yii2-redis": "^2.0",
"yiisoft/yii2-queue": "^2.0",
"league/flysystem": "^1.0"
},
"require-dev": {
"yiisoft/yii2-debug": "~2.0.0",
"yiisoft/yii2-gii": "~2.0.0",
"yiisoft/yii2-faker": "~2.0.0",

"codeception/base": "^2.2.3",
"codeception/verify": "~0.3.1",
"zircote/swagger-php": "^2.0"
},
"repositories": [
{
"type": "composer",
"url": "https://asset-packagist.org"
}
],
"config": {
"process-timeout": 1800

"require": {
"worksolutions/yii-ws-event-dispatcher": "dev-master"
}

}
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

А вот само сообщение:
Fatal error: Uncaught Error: Class 'WS\EventDispatcher\EventDispatcher' not found in C:\OSPanel\domains\yii5\backend\config\main.php:46 Stack trace: #0 C:\OSPanel\domains\yii5\backend\web\index.php(13): require() #1 {main} thrown in C:\OSPanel\domains\yii5\backend\config\main.php on line 46
46: 'class' => \WS\EventDispatcher\EventDispatcher::className(),
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Диспетчер событий

Сообщение chesar »

С yii все нормально, а composer.json не корректный.
Дублируется секция require. Удали последнюю и установи пакет.
Composer require worksolutions/yii-ws-event-dispatcher
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

Попробую. Я сейчас упрощу, оставлю чуть-чуть, чтобы лучше можно было разобраться, потом уж поправлю composer и update после этого сделаю. Но, сомневаюсь.
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

Сейчас выдает:
Fatal error: Class 'CApplicationComponent' not found in C:\OSPanel\domains\yii4\vendor\worksolutions\yii-ws-event-dispatcher\src\EventDispatcher.php on line 6
6: class EventDispatcher extends \CApplicationComponent {
в commone:

'components' => [
'eventDispatcher' => array(
'class' => \WS\EventDispatcher\EventDispatcher::className(),
'events' => array(
SomeEvent::className() => array(
array(
'class' => SomeHandler::className(),
'params' => array(),
),
//...
),
//...
),

//...
),
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

в backend
тоже в componente проставил.
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

и это пробовал
'components' => array(
'eventDispatcher' => array(
'class' => \WS\EventDispatcher\EventDispatcher::className(),
'events' => array(
SomeEvent::className() => array(
array(
'class' => SomeHandler::className(),
'params' => array(),
),
//...
),
//...
),
),
//...
)
dmg
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

Re: Диспетчер событий

Сообщение dmg »

CApplicationComponent и стиль кода как бэ намекает на yii1
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

верно. Это точно yii1. В yii2 используется symfony c event-dispatcher. Я с ним запускал.
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

Когда отдельно в common поставил bootstrap, то ошибка вот эта выскакивает:
Can not instantiate shop\dispatchers\EventDispatcher
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Диспетчер событий

Сообщение mkramer »

А чем родные события Yii2 не устраивают?
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Диспетчер событий

Сообщение chesar »

Просто тебе это всё ещё не нужно
Kaev
Сообщения: 11
Зарегистрирован: 2018.02.22, 00:51

Re: Диспетчер событий

Сообщение Kaev »

Ура! Проблему все таки решил. Первое время послушал мастер-класс Дмитрия Елисеева, но по истечению некоторого времени понял, что теряю время, а надо было как-то решать проблему. Упростил все и в трех соснах выбрался как-то на тропу. Yii2 все таки великая штука. Очень податливая и гибкая. Спасибо её создателям.
Ответить