CI 묻고 답하기

제목 크론, CLI 질문좀 드릴께요ㅠㅠ
글쓴이 터프키드 작성시각 2011/11/28 18:34:34
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 18181   RSS
CI 버전 : 2.0.3
운영체제 : 윈도우즈 서버 2005

매시간 관리자에게 현재 상태를 메일로 보내주려고 합니다
메일은 지메일을 사용하므로, 메일서버는 없어도 됩니다;
(브라우저에서 실행할 경우에는 잘 보내집니다)

커멘드 라인에서 직접실행 해보려고 여기저기 둘러봤습니다
이상하게
public function __construct()
    {
     parent::__construct();
 }
parent::__construct() 에서 아예 먹혀버리네요
윗줄에 echo "asdf"; exit; 찍으면 잘 찍히고
아래줄에서는 안찍힙니다.

브라우저 에서는 잘 되는데 커멘드라인에서만 그러네요

그래서 주석을 걸고 메소드를 바로 실행하면 database를 사용할수가 없더군요;
$this->db->query($sql)
여기서 query 메소드가 에러라고 뱉네요

문제는, 메뉴얼에 있는 tools 를 그대로 따라해도 실행이 안됩니다
<?php
class Tools extends CI_Controller {

 public function message($to = 'World')
 {
  echo "Hello {$to}!".PHP_EOL;
 }
}
?>
여기에 public function __construct() 메소드를 추가해야 정상적으로 작동하더군요. 아래처럼요
<?php
class Tools extends CI_Controller {
        public function __construct() {
        }
 public function message($to = 'World')
 {
  echo "Hello {$to}!".PHP_EOL;
 }
}
?>

메뉴얼 예제는 데이터베이스를 사용하지 않지만, 저는 사용해야 합니다. ㅠㅠ
parent::__construct() 부분에서 먹히니 아무것도 못하겠고 주석을 거니, db사용을 못하고.. 어떻게 해야 할까요?
구글링, 엘리스랩 모두 답이 없네요..

제 코드는 아래와 같습니다.
<?php 
class SendMail extends CI_Controller {
 
 public function __construct()
        {
          parent::__construct();
 }

 public function sendEmail() {
             //DB에 접속해서 내용과 메일링리스트 가져옴
      ...
             $this->load->library('email', $config);
             ...
             $this->email->message($html);
             $this->email->send()
 }

}

/* End of file sendMail.php */
/* Location: ./application/controllers/sendMail.php */
실행은

C:/APM_Setup/Server/PHP5/php.exe D:/projects/pms/root/index.php sendMail sendEmail

이렇게 했네요

생성자 함수를 빼고 데이터베이스를 사용할 수 있는 방법은 없나요?
왜 생성자가 없으면 실행이 안될까요? ( 메뉴얼의 tools도)

머리아퍼 죽겠네요ㅠㅠ
도움좀 부탁드려요
 다음글 업로드 질문드립니다~ ㅠㅠ (2)
 이전글 이니시스 결제 시스템 관련 문의 (6)

댓글

milosz / 2011/11/28 18:43:15 / 추천 0
 웹으로 된다면 crontab으로 wget을 돌려주면... 근데 윈도우네요 ;ㅅ;
터프키드 / 2011/11/28 18:46:55 / 추천 0
어디서 먹는지 따라가보니 /system/core/Controller.php 에 52번째줄
echo "b";
$this->load->set_base_classes()->ci_autoloader();
echo "a";
여기서 b 만 찍히네요..
저기서 무슨일이 일어나는 걸까요
터프키드 / 2011/11/28 18:47:46 / 추천 0
@milosz 네 아쉽게도 클라이언트가 M$ 팬이라...
milosz / 2011/11/28 19:03:24 / 추천 0
 autoloader에서 먹는다면 경로문제로 추측되네요.
터프키드 / 2011/11/29 10:58:50 / 추천 0
또 찾았는데 왜 데이터베이스를 못불러오는지 모르겠네요
/system/core/Loader.php 에서 1088줄
$this->database();
에서 문제가 생기네요
변종원(웅파) / 2011/11/29 14:00:22 / 추천 0
 logs디렉토리의 로그와 아파치(또는 iis) 로그 보시면 답이 있습니다.
터프키드 / 2011/11/29 16:16:16 / 추천 0
@웅파 해결했습니다^^ php.ini 패스가 서로 달라서 나온 문제네요 팁게에 1원팁으로 올렸어요 (팁이라기 보다는 기록용으로 ㅎㅎ)