Browse Source

more event updates and doc corrections

tags/2.0.0-beta
Alexander Makarov 13 years ago
parent
commit
f552b58d14
  1. 40
      framework/base/Application.php
  2. 34
      framework/base/Model.php
  3. 29
      framework/db/ar/ActiveRecord.php
  4. 10
      framework/logging/Logger.php

40
framework/base/Application.php

@ -39,9 +39,9 @@ namespace yii\base;
* <li>load application configuration;</li> * <li>load application configuration;</li>
* <li>set up class autoloader and error handling;</li> * <li>set up class autoloader and error handling;</li>
* <li>load static application components;</li> * <li>load static application components;</li>
* <li>{@link onBeginRequest}: preprocess the user request;</li> * <li>{@link beforeRequest}: preprocess the user request; `beforeRequest` event raised.</li>
* <li>{@link processRequest}: process the user request;</li> * <li>{@link processRequest}: process the user request;</li>
* <li>{@link onEndRequest}: postprocess the user request;</li> * <li>{@link afterRequest}: postprocess the user request; `afterRequest` event raised.</li>
* </ol> * </ol>
* *
* Starting from lifecycle 3, if a PHP error or an uncaught exception occurs, * Starting from lifecycle 3, if a PHP error or an uncaught exception occurs,
@ -154,12 +154,12 @@ abstract class Application extends Module
*/ */
public function run() public function run()
{ {
if ($this->hasEventHandlers('onBeginRequest')) { if ($this->hasEventHandlers('beforeRequest')) {
$this->onBeginRequest(new CEvent($this)); $this->beforeRequest(new CEvent($this));
} }
$this->processRequest(); $this->processRequest();
if ($this->hasEventHandlers('onEndRequest')) { if ($this->hasEventHandlers('afterRequest')) {
$this->onEndRequest(new CEvent($this)); $this->afterRequest(new CEvent($this));
} }
} }
@ -183,22 +183,22 @@ abstract class Application extends Module
/** /**
* Raised right BEFORE the application processes the request. * Raised right BEFORE the application processes the request.
* @param CEvent $event the event parameter * @param Event $event the event parameter
*/ */
public function onBeginRequest($event) public function beforeRequest($event)
{ {
$this->raiseEvent('onBeginRequest', $event); $this->trigger('beforeRequest', $event);
} }
/** /**
* Raised right AFTER the application processes the request. * Raised right AFTER the application processes the request.
* @param CEvent $event the event parameter * @param Event $event the event parameter
*/ */
public function onEndRequest($event) public function afterRequest($event)
{ {
if (!$this->_ended) { if (!$this->_ended) {
$this->_ended = true; $this->_ended = true;
$this->raiseEvent('onEndRequest', $event); $this->trigger('afterRequest', $event);
} }
} }
@ -688,7 +688,7 @@ abstract class Application extends Module
* This method is implemented as a PHP exception handler. It requires * This method is implemented as a PHP exception handler. It requires
* that constant YII_ENABLE_EXCEPTION_HANDLER be defined true. * that constant YII_ENABLE_EXCEPTION_HANDLER be defined true.
* *
* This method will first raise an {@link onException} event. * This method will first raise an `exception` event.
* If the exception is not handled by any event handler, it will call * If the exception is not handled by any event handler, it will call
* {@link getErrorHandler errorHandler} to process the exception. * {@link getErrorHandler errorHandler} to process the exception.
* *
@ -758,7 +758,7 @@ abstract class Application extends Module
* This method is implemented as a PHP error handler. It requires * This method is implemented as a PHP error handler. It requires
* that constant YII_ENABLE_ERROR_HANDLER be defined true. * that constant YII_ENABLE_ERROR_HANDLER be defined true.
* *
* This method will first raise an {@link onError} event. * This method will first raise an `error` event.
* If the error is not handled by any event handler, it will call * If the error is not handled by any event handler, it will call
* {@link getErrorHandler errorHandler} to process the error. * {@link getErrorHandler errorHandler} to process the error.
* *
@ -845,31 +845,31 @@ abstract class Application extends Module
/** /**
* Raised when an uncaught PHP exception occurs. * Raised when an uncaught PHP exception occurs.
* *
* An event handler can set the {@link CExceptionEvent::handled handled} * An event handler can set the {@link ExceptionEvent::handled handled}
* property of the event parameter to be true to indicate no further error * property of the event parameter to be true to indicate no further error
* handling is needed. Otherwise, the {@link getErrorHandler errorHandler} * handling is needed. Otherwise, the {@link getErrorHandler errorHandler}
* application component will continue processing the error. * application component will continue processing the error.
* *
* @param CExceptionEvent $event event parameter * @param ExceptionEvent $event event parameter
*/ */
public function onException($event) public function onException($event)
{ {
$this->raiseEvent('onException', $event); $this->trigger('exception', $event);
} }
/** /**
* Raised when a PHP execution error occurs. * Raised when a PHP execution error occurs.
* *
* An event handler can set the {@link CErrorEvent::handled handled} * An event handler can set the {@link ErrorEvent::handled handled}
* property of the event parameter to be true to indicate no further error * property of the event parameter to be true to indicate no further error
* handling is needed. Otherwise, the {@link getErrorHandler errorHandler} * handling is needed. Otherwise, the {@link getErrorHandler errorHandler}
* application component will continue processing the error. * application component will continue processing the error.
* *
* @param CErrorEvent $event event parameter * @param ErrorEvent $event event parameter
*/ */
public function onError($event) public function onError($event)
{ {
$this->raiseEvent('onError', $event); $this->trigger('error', $event);
} }
/** /**

34
framework/base/Model.php

@ -24,8 +24,8 @@ use yii\util\Text;
* *
* Model also provides a set of events for further customization: * Model also provides a set of events for further customization:
* *
* - [[onBeforeValidate]]: an event raised at the beginning of [[validate()]] * - `beforeValidate`: raised at the beginning of [[validate()]]
* - [[onAfterValidate]]: an event raised at the end of [[validate()]] * - `afterValidate`: raised at the end of [[validate()]]
* *
* You may directly use Model to store model data, or extend it with customization. * You may directly use Model to store model data, or extend it with customization.
* You may also customize Model by attaching [[ModelBehavior|model behaviors]]. * You may also customize Model by attaching [[ModelBehavior|model behaviors]].
@ -198,7 +198,7 @@ class Model extends Component implements \IteratorAggregate, \ArrayAccess
/** /**
* This method is invoked before validation starts. * This method is invoked before validation starts.
* The default implementation raises the [[onBeforeValidate]] event. * The default implementation raises the `beforeValidate` event.
* You may override this method to do preliminary checks before validation. * You may override this method to do preliminary checks before validation.
* Make sure the parent implementation is invoked so that the event can be raised. * Make sure the parent implementation is invoked so that the event can be raised.
* @return boolean whether validation should be executed. Defaults to true. * @return boolean whether validation should be executed. Defaults to true.
@ -206,9 +206,9 @@ class Model extends Component implements \IteratorAggregate, \ArrayAccess
*/ */
public function beforeValidate() public function beforeValidate()
{ {
if ($this->hasEventHandlers('onBeforeValidate')) { if ($this->hasEventHandlers('beforeValidate')) {
$event = new ModelEvent($this); $event = new ModelEvent($this);
$this->onBeforeValidate($event); $this->trigger('beforeValidate', $event);
return $event->isValid; return $event->isValid;
} }
return true; return true;
@ -216,36 +216,18 @@ class Model extends Component implements \IteratorAggregate, \ArrayAccess
/** /**
* This method is invoked after validation ends. * This method is invoked after validation ends.
* The default implementation raises the [[onAfterValidate]] event. * The default implementation raises the `afterValidate` event.
* You may override this method to do postprocessing after validation. * You may override this method to do postprocessing after validation.
* Make sure the parent implementation is invoked so that the event can be raised. * Make sure the parent implementation is invoked so that the event can be raised.
*/ */
public function afterValidate() public function afterValidate()
{ {
if ($this->hasEventHandlers('onAfterValidate')) { if ($this->hasEventHandlers('afterValidate')) {
$this->onAfterValidate(new Event($this)); $this->trigger('afterValidate', new Event($this));
} }
} }
/** /**
* This event is raised before the validation is performed.
* @param ModelEvent $event the event parameter
*/
public function onBeforeValidate($event)
{
$this->raiseEvent(__FUNCTION__, $event);
}
/**
* This event is raised after the validation is performed.
* @param Event $event the event parameter
*/
public function onAfterValidate($event)
{
$this->raiseEvent(__FUNCTION__, $event);
}
/**
* Returns all the validators declared in [[rules()]]. * Returns all the validators declared in [[rules()]].
* *
* This method differs from [[getActiveValidators()]] in that the latter * This method differs from [[getActiveValidators()]] in that the latter

29
framework/db/ar/ActiveRecord.php

@ -26,18 +26,19 @@ use yii\util\Text;
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
* *
* @property array $attributes * @property array $attributes attribute values indexed by attribute names
* *
* Events: * ActiveRecord provides a set of events for further customization:
* - beforeInsert. Raised before the record is saved. *
* - `beforeInsert`. Raised before the record is saved.
* By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[save()]] will be stopped. * By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[save()]] will be stopped.
* - afterInsert. Raised after the record is saved. * - `afterInsert`. Raised after the record is saved.
* - beforeUpdate. Raised before the record is saved. * - `beforeUpdate`. Raised before the record is saved.
* By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[save()]] will be stopped. * By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[save()]] will be stopped.
* - afterUpdate. Raised after the record is saved. * - `afterUpdate`. Raised after the record is saved.
* - beforeDelete. Raised before the record is deleted. * - `beforeDelete`. Raised before the record is deleted.
* By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[delete()]] process will be stopped. * By setting [[\yii\base\ModelEvent::isValid]] to be false, the normal [[delete()]] process will be stopped.
* - afterDelete. Raised after the record is deleted. * - `afterDelete`. Raised after the record is deleted.
* *
*/ */
abstract class ActiveRecord extends Model abstract class ActiveRecord extends Model
@ -832,7 +833,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked before saving a record (after validation, if any). * This method is invoked before saving a record (after validation, if any).
* The default implementation raises the {@link beforeSave} event. * The default implementation raises the `beforeSave` event.
* You may override this method to do any preparation work for record saving. * You may override this method to do any preparation work for record saving.
* Use {@link isNewRecord} to determine whether the saving is * Use {@link isNewRecord} to determine whether the saving is
* for inserting or updating record. * for inserting or updating record.
@ -848,7 +849,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked after saving a record successfully. * This method is invoked after saving a record successfully.
* The default implementation raises the {@link afterSave} event. * The default implementation raises the `afterSave` event.
* You may override this method to do postprocessing after record saving. * You may override this method to do postprocessing after record saving.
* Make sure you call the parent implementation so that the event is raised properly. * Make sure you call the parent implementation so that the event is raised properly.
*/ */
@ -859,7 +860,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked before saving a record (after validation, if any). * This method is invoked before saving a record (after validation, if any).
* The default implementation raises the {@link beforeSave} event. * The default implementation raises the `beforeSave` event.
* You may override this method to do any preparation work for record saving. * You may override this method to do any preparation work for record saving.
* Use {@link isNewRecord} to determine whether the saving is * Use {@link isNewRecord} to determine whether the saving is
* for inserting or updating record. * for inserting or updating record.
@ -875,7 +876,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked after saving a record successfully. * This method is invoked after saving a record successfully.
* The default implementation raises the {@link afterSave} event. * The default implementation raises the `afterSave` event.
* You may override this method to do postprocessing after record saving. * You may override this method to do postprocessing after record saving.
* Make sure you call the parent implementation so that the event is raised properly. * Make sure you call the parent implementation so that the event is raised properly.
*/ */
@ -886,7 +887,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked before deleting a record. * This method is invoked before deleting a record.
* The default implementation raises the {@link beforeDelete} event. * The default implementation raises the `beforeDelete` event.
* You may override this method to do any preparation work for record deletion. * You may override this method to do any preparation work for record deletion.
* Make sure you call the parent implementation so that the event is raised properly. * Make sure you call the parent implementation so that the event is raised properly.
* @return boolean whether the record should be deleted. Defaults to true. * @return boolean whether the record should be deleted. Defaults to true.
@ -900,7 +901,7 @@ abstract class ActiveRecord extends Model
/** /**
* This method is invoked after deleting a record. * This method is invoked after deleting a record.
* The default implementation raises the {@link afterDelete} event. * The default implementation raises the `afterDelete` event.
* You may override this method to do postprocessing after the record is deleted. * You may override this method to do postprocessing after the record is deleted.
* Make sure you call the parent implementation so that the event is raised properly. * Make sure you call the parent implementation so that the event is raised properly.
*/ */

10
framework/logging/Logger.php

@ -17,6 +17,10 @@ namespace yii\logging;
* call [[flush]] to send logged messages to different log targets, such as * call [[flush]] to send logged messages to different log targets, such as
* file, email, Web. * file, email, Web.
* *
* Logger provides a set of events for further customization:
*
* - `flush`. Raised on logs flush.
*
* @author Qiang Xue <qiang.xue@gmail.com> * @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0 * @since 2.0
*/ */
@ -165,7 +169,7 @@ class Logger extends \yii\base\Component
/** /**
* Removes all recorded messages from the memory. * Removes all recorded messages from the memory.
* This method will raise an {@link onFlush} event. * This method will raise a `flush` event.
* The attached event handlers can process the log messages before they are removed. * The attached event handlers can process the log messages before they are removed.
* @param boolean $export whether to notify log targets to export the filtered messages they have received. * @param boolean $export whether to notify log targets to export the filtered messages they have received.
*/ */
@ -176,12 +180,12 @@ class Logger extends \yii\base\Component
} }
/** /**
* Raises an `onFlush` event. * Raises a `flush` event.
* @param \yii\base\Event $event the event parameter * @param \yii\base\Event $event the event parameter
*/ */
public function onFlush($event) public function onFlush($event)
{ {
$this->raiseEvent('onFlush', $event); $this->trigger('flush', $event);
} }
/** /**

Loading…
Cancel
Save