2012-01-02 2 views
4

저는 CodeIgniter와 곧은 PHP에서 나오는 Kohana와 연극을 시작했습니다. 왜 Kohana가 정상 생성자 및 소멸자가 아닌 before()after() 함수를 사용하는지 궁금합니다. 인스턴스가 생성되고 파괴 될 때 호출되는Kohana가 before()와 after()를 사용하는 이유

constructordestructor :

+4

이렇게하면 더 큰 수준의 제어가 가능하기 때문입니다. – hakre

답변

8

2 사이에 미묘한 차이가있다.

beforeafter 메서드는 컨트롤러의 동작이 실행되기 전후에 호출됩니다.

그 외에, 당신은 constructordestructor 전과 작업이 실행 된 후라고 보장 할 수 없습니다, 그러나 당신은 beforeafter 방법에 대한 것을 보장 할 수 있습니다.

+4

응용 프로그램을 복구 할 수없는 경우를 제외하고는 소멸자가 보호됩니다. 반면에'after()'도 호출되기 전에 앱이 손상되었을 때 호출되지 않습니다. – KingCrunch

+0

나는 액션의 실행 전후에 호출되는 생성자/소멸자를 보장 할 수 없다는 것을 의미한다고 생각한다. 내가 의미 한 것을 더 명확히하기 위해 이것을 조금 바꿀 것이다. – SpadXIII

+0

또한 생성자가'before()'전에 호출되고'after()'이후에 소멸자가 호출되는 것을 보장합니다 : D 그러나 나는 상상할 수 있다고 생각합니다 : 당신은 더 이상 제어 할 수 없을 때까지는 _when_'__destruct()'이 호출됩니다. 그러나, 나는 어쨌든, 흥미로운 부분이 명확 해지기 때문에 이미 upvoted. – KingCrunch

관련 문제