이 기사의 예에서는 PHP에서 이벤트 모니터링 및 트리거링을 구현하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
할 일도 없고 PHP에서 이벤트 모니터링을 어떻게 구현해야 할지 고민하다가 jQuery의 이벤트 바인딩 아이디어를 참고해서 간단하게 구현해봤습니다.
주요 기능:
1. 이벤트 바인딩은 여러 작업을 하나의 이벤트에 바인딩하고 일회성 이벤트 바인딩을 지원합니다.
2. 트리거 이벤트
3. 로그아웃 이벤트
클래스 이벤트
{
보호된 정적 $listens = 배열()
공개 정적 함수 수신($event, $callback, $once=false){
If(!is_callable($callback))은 false를 반환합니다.
true를 반환합니다.
}
공개 정적 함수 1($event, $callback){
return self::listen($event, $callback, true)
}
공개 정적 함수 제거($event, $index=null){
if(is_null($index))
unset(self::$listens[$event])
그 외
unset(self::$listens[$event][$index])
}
공개 정적 함수 Trigger(){
If(!func_num_args()) 반환
>
$이벤트 = array_shift($args)
If(!isset(self::$listens[$event]))는 false를 반환합니다.
foreach((배열) self::$listens[$event] as $index=>$listen){
$callback >
$listen['once'] && self::remove($event, $index)
call_user_func_array($callback, $args)
}
}
}
다음은 호출의 몇 가지 예입니다.
코드 복사
코드는 다음과 같습니다.//모니터링 걷기 이벤트 추가
이벤트::listen('걷기', function(){
echo "나는 걷고 있어요...n"
})
// 걷기에 대한 일회성 청취 이벤트 추가
이벤트::listen('걷기', function(){
echo "듣고 있어요...n"
}, 사실)
// 걷기 이벤트 트리거
이벤트::trigger('걷기')
/*
걷고 있어요...
듣고 있어요...
*/
이벤트::trigger('걷기')
/*
걷고 있어요...
*/
이벤트::one('say', function($name=''){
echo "저는 {$name}n입니다.";
})
Event::trigger('say', 'deeka'); // 나는 디카입니다
출력
Event::trigger('say', 'deeka') // 실행되지 않음
클래스 푸
{
공개 함수 bar(){
echo "Foo::bar()가 호출되었습니다.";
}
공개 함수 테스트(){
echo "Foo::foo()가 호출되었습니다. agrs:".json_encode(func_get_args())."n"
}
}
$foo = 새로운 푸
이벤트::listen('bar', array($foo, 'bar'))
이벤트::trigger('바')
이벤트::listen('test', array($foo, 'test'))
이벤트::trigger('테스트', 1, 2, 3)
클래스 바
{
공개 정적 함수 foo(){
echo "Bar::foo()가 호출되었습니다.";
}
}
이벤트::listen('bar1', array('Bar', 'foo'))
이벤트::trigger('bar1')
이벤트::listen('bar2', 'Bar::foo')
이벤트::trigger('bar2')
함수 표시줄(){
echo "bar()가 호출되었습니다";
}
이벤트::listen('bar3', 'bar')
이벤트::trigger('bar3');
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.