제목 | 베이스 클래스를 만들고 그것의 확장클래스를 만들려고하는데.. | ||
---|---|---|---|
글쓴이 | 데브 | 작성시각 | 2012/02/09 18:07:05 |
|
|||
application/libraries/ 아래에 A라는 클래스를 만들고 A.php class A{ public function test(){ return "A"; } } B.php class B extends A{ public function test(){ return "B"; } } B라는 클래스는 A클래스의 확장클래스로 만들었는데 테스트해보니 A클래스의 test메써드는 잘나오는데 B클래스는 A클래스를 찾을수없다고 에러가나오네요.. 확장클래스 사용 불가능한건가요?? |
|||
다음글 | [초보] form_validation 질문요 (2) | ||
이전글 | $this->email->send()를 비동... (5) | ||
변종원(웅파)
/
2012/02/09 18:15:18 /
추천
0
ci에서 library는 그렇게 사용하실 수 없습니다.
|
데브
/
2012/02/09 18:17:27 /
추천
0
웁스... 그럼 사용자가 만든 클래스를 확장클래스로 재가공 할수있는방법은 없는건가요??
|
SEB
/
2012/02/09 23:03:02 /
추천
0
라이브러리 로드 메서드 말고 그냥 include A.php 하시고 b를 콜하면 되지 않을까요?
|
한대승(불의회상)
/
2012/02/10 08:16:13 /
추천
0
데브// SEB님이 지적 하신것 처럼
b.php 에 include_once('a.php'); class B extends A{ public function test(){ return "B"; } } 라고 하시면 될거 같은데요. |
데브
/
2012/02/10 09:08:05 /
추천
0
오오! 감사합니다~~
왜 이생각을 못했지..ㅋ; |
리버
/
2012/02/11 14:07:50 /
추천
0
제가 CodeIgniter 2.1.0 버전으로 테스트를 했는데 include_once 안해도 B 클래스에서 오류가 안나던데요.
<?php class ExtendsTest extends CI_Controller { public function index() { $this->load->library('a'); $this->load->library('b'); echo $this->a->test(); echo $this->b->test(); } }
|
변종원(웅파)
/
2012/02/11 20:30:01 /
추천
0
리버/ 질문한 상황과 다릅니다.
질문은 a클래스를 b클래스에서 확장하여 선언을 하고 사용하는 것을 의미합니다. 리버님이 사용하신 구문은 각자 다른 클래스를 선언하여 사용하는 경우입니다. (정상적인 경우) |
리버
/
2012/02/12 13:46:06 /
추천
0
제가 잘못 생가했습니다. B 클래스에서 A 클래스를 찾지 못하겠다고 나오네요. 다음을 참고해서 해결가능할 것도 같은데요. __autoload 이횽해서.
philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY |