Quiero ejecutar algún código en el evento onBeginRequest.
¿Dónde hago eso? Supongo que no se supone que agregue esto en el código de la biblioteca central.
Soy un novato total en YiiCómo usar eventos en Yii
Respuesta
Si desea utilizar OnBeginRequest y onEndRequest puede hacerlo añadiendo las siguientes líneas en el archivo de configuración:
return array (
...
'onBeginRequest'=>array('Y', 'getStats'),
'onEndRequest'=>array('Y', 'writeStats'),
...
)
o puede hacerlo en línea
Yii::app()->onBeginRequest= array('Y', 'getStats');
Yii::app()->onEndRequest= array('Y', 'writeStats');
donde Y
es un nombre de clase y getStats
y writeStats
son métodos de esta clase. Ahora imagina que tienes una clase Y
declarada como esto:
class Y {
public function getStats ($event) {
// Here you put all needed code to start stats collection
}
public function writeStats ($event) {
// Here you put all needed code to save collected stats
}
}
Así que en cada petición ambos métodos se ejecutará automáticamente. Por supuesto, puede pensar "¿por qué no simplemente sobrecargar el método de inicio de búsqueda?" pero antes que nada los eventos le permiten no extender la clase para ejecutar un código repetido y también le permiten ejecutar diferentes métodos de diferentes clases declaradas en diferentes lugares. para que pueda agregar
Yii::app()->onEndRequest= array('YClass', 'someMethod');
en cualquier otra parte de su solicitud junto con los controladores de eventos anteriores y obtendrá ejecutar tanto Y->writeStats
YClass->someMethod
y después de procesar la solicitud. Esto con comportamientos le permite crear componentes de extensión de casi cualquier complejidad sin cambiar el código fuente y sin la extensión de las clases base de Yii.
Creo que se puede hacer esto casi en cualquier lugar en sus archivos antes de que comience cualquier salida, por lo que debería funcionar en una clase de controlador, la vista o la costumbre, que normalmente se encuentra en el "protegido "carpeta en una aplicación web Yii. FYI, esos archivos no son archivos centrales y pueden editarse (casi) libremente, como se aplicó a los archivos de marcos Yii (como se hace referencia en la varilla "$ yii" en el archivo bootstrap index.php).
las funciones se ven como:
Yii::app()->onbeginRequest = create_function('$event', 'return function_name_a();');
Yii::app()->onendRequest = create_function('$event', 'return function_name_b();');
que huele como una evaluación ... –
preguntaste cómo se hizo ... – ldg
puedes hacer 'Yii :: app() -> onendRequest = function() {// hacer algo};' –
- 1. yii components: eventos y comportamientos?
- 2. cómo usar el espacio de nombres Yii
- 3. cómo usar IN & Between Clause en YII ACtive Record?
- 4. cómo utilizar openid en yii?
- 5. Cuándo usar componentes y cuándo usar extensiones en Yii?
- 6. ¿cómo elimino las filas en Yii?
- 7. Cómo configurar URL base en Yii Marco
- 8. ¿Por qué usar Eventos?
- 9. Accesorios relacionales en Yii
- 10. Widget Autocompletar en yii
- 11. Cuándo usar eventos?
- 12. ¿Cómo se pueden usar eventos como CancelEventArgs?
- 13. Cómo usar jQuery ¿Diferido con eventos personalizados?
- 14. en criterios de Yii Cómo count (*)
- 15. Cómo crear una etiqueta multilenguaje en Yii
- 16. Cómo eliminar index.php en Yii Framework
- 17. ¿Cómo personalizar Yii CGridView Pager?
- 18. ¿Un CMS basado en Yii?
- 19. último valor insertado en Yii
- 20. Sub-consultas ActiveRecord Yii
- 21. Comparar el problema en yii
- 22. Cuándo usar eventos sobre comandos en WPF?
- 23. Dónde usar eventos y delegados?
- 24. PHP Frameworks (CodeIgniter, Yii, CakePHP) vs. Django
- 25. gii no funciona en yii
- 26. Cómo usar el método Yii :: app() -> end() y cómo es diferente de exit()?
- 27. Yii CDbCriteria Ingreso
- 28. Flexibilidad de Yii
- 29. Yii encontrar condición> =
- 30. Yii DROPDOWNLIST valor predeterminado
Entonces, ¿en qué parte de la estructura del proyecto debe vivir el clas si lo agrego al archivo de configuración? – RicardoE