-
Notifications
You must be signed in to change notification settings - Fork 138
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
335a603
commit 4a80593
Showing
10 changed files
with
155 additions
and
12 deletions.
There are no files selected for viewing
File renamed without changes.
File renamed without changes.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
User Events | ||
=========== | ||
|
||
The following is the list of the user events and where they happen: | ||
|
||
On Controllers | ||
-------------- | ||
|
||
- **AdminController** | ||
- **UserEvent::EVENT_BEFORE_CREATE**: Occurs before a user has been created | ||
- **UserEvent::EVENT_AFTER_CREATE**: Occurs after a user has been created | ||
- **UserEvent::EVENT_BEFORE_PROFILE_UPDATE**: Occurs before a user's profile has been updated | ||
- **UserEvent::EVENT_AFTER_PROFILE_UPDATE**: Occurs after a user's profile has been updated | ||
- **UserEvent::EVENT_BEFORE_CONFIRMATION**: Occurs before a user's email has been confirmed | ||
- **UserEvent::EVENT_AFTER_CONFIRMATION**: Occurs after a user's email has been confirmed | ||
- **UserEvent::EVENT_BEFORE_BLOCK**: Occurs before a user is being blocked (forbid access to app) | ||
- **UserEvent::EVENT_AFTER_BLOCK**: Occurs after a user is being blocked (forbid access to app) | ||
- **UserEvent::EVENT_BEFORE_UNBLOCK**: Occurs before a user is being un-blocked | ||
- **UserEvent::EVENT_AFTER_UNBLOCK**: Occurs after a user is being un-blocked | ||
|
||
- **RegistrationController** | ||
- **UserEvent::EVENT_BEFORE_REGISTER**: Occurs before user registration | ||
- **UserEvent::EVENT_AFTER_REGISTER**: Occurs after user registration | ||
- **UserEvent::EVENT_BEFORE_CONFIRMATION** | ||
- **UserEvent::EVENT_AFTER_CONFIRMATION** | ||
|
||
- **SecurityController** | ||
- **UserEvent::EVENT_BEFORE_LOGOUT**: Occurs before user logs out of the app | ||
- **UserEvent::EVENT_AFTER_LOGOUT**: Occurs after user logs out of the app | ||
|
||
- **SettingsController** | ||
- **UserEvent::EVENT_BEFORE_PROFILE_UPDATE** | ||
- **UserEvent::EVENT_AFTER_PROFILE_UPDATE** | ||
- **UserEvent::EVENT_BEFORE_ACCOUNT_UPDATE**: Occurs before the user account is updated | ||
- **UserEvent::EVENT_AFTER_ACCOUNT_UPDATE**: Occurs after the user account is updated | ||
- **UserEvent::EVENT_BEFORE_DELETE**: Occurs before the user account is deleted | ||
- **UserEvent::EVENT_AFTER_DELETE**: Occurs after the user account is deleted | ||
|
||
On Models | ||
--------- | ||
|
||
- **User** | ||
- **UserEvent::EVENT_BEFORE_REGISTER** | ||
- **UserEvent::EVENT_AFTER_REGISTER** | ||
- **UserEvent::EVENT_BEFORE_CONFIRMATION** | ||
- **UserEvent::EVENT_AFTER_CONFIRMATION** | ||
- **UserEvent::EVENT_BEFORE_BLOCK** | ||
- **UserEvent::EVENT_AFTER_BLOCK** | ||
- **UserEvent::EVENT_BEFORE_UNBLOCK** | ||
- **UserEvent::EVENT_AFTER_UNBLOCK** | ||
|
||
How to Work With User Events | ||
---------------------------- | ||
|
||
All these events receive an instance of `Da\User\Event\UserEvent`. The Event receives an instance of a `Da\Model\User` | ||
class that you could use for whatever logic you wish to implement. | ||
|
||
The recommended way to make use of events is by creating a new file in your config folder (i.e. `events.php`), configure | ||
there all your events and then include that file on your | ||
[`entry script`](http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html). | ||
|
||
Here is an example of setting an event for the `AdminController` and the `User` model: | ||
|
||
```php | ||
<?php | ||
// events.php file | ||
|
||
use Da\Controller\AdminController; | ||
use Da\Model\User; | ||
use yii\base\Event; | ||
|
||
// This will happen at the controller's level | ||
Event::on(AdminController::class, UserEvent::EVENT_BEFORE_CREATE, function (UserEvent $event) { | ||
$user = $event->getUser(); | ||
|
||
// ... your logic here | ||
} | ||
|
||
// This will happen at the model's level | ||
Event::on(User::class, UserEvent::EVENT_BEFORE_CREATE, function (UserEvent $event) { | ||
|
||
$user = $event->getUser(); | ||
|
||
// ... your logic here | ||
} | ||
|
||
``` | ||
|
||
Now, the only thing I need to do is adding the `events.php` file to your entry script (i.e. `index.php`). The following | ||
is taken from the Yii 2 Advanced Application Template: | ||
|
||
```php | ||
<?php | ||
defined('YII_DEBUG') or define('YII_DEBUG', true); | ||
defined('YII_ENV') or define('YII_ENV', 'dev'); | ||
|
||
require(__DIR__ . '/../../vendor/autoload.php'); | ||
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php'); | ||
require(__DIR__ . '/../../common/config/bootstrap.php'); | ||
require(__DIR__ . '/../config/bootstrap.php'); | ||
|
||
require(__DIR__ . '/../config/events.php'); // <--- adding events here! :) | ||
|
||
$config = yii\helpers\ArrayHelper::merge( | ||
require(__DIR__ . '/../../common/config/main.php'), | ||
require(__DIR__ . '/../../common/config/main-local.php'), | ||
require(__DIR__ . '/../config/main.php'), | ||
require(__DIR__ . '/../config/main-local.php') | ||
); | ||
|
||
$application = new yii\web\Application($config); | ||
$application->run(); | ||
|
||
``` | ||
|
||
© [2amigos](http://www.2amigos.us/) 2013-2017 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters