| 제목 | 베이스 클래스를 만들고 그것의 확장클래스를 만들려고하는데.. | ||
|---|---|---|---|
| 글쓴이 | 데브 | 작성시각 | 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 |