제목 | 웹애플리케이션에서 CLI 명령을 실행하는데 클래스를 못찾는 오류가 납니다. | ||
---|---|---|---|
카테고리 | CI 4 관련 | ||
글쓴이 | 엘제이 | 작성시각 | 2024/08/16 19:11:45 |
|
|||
CLI 환경에서 작업 하려고 하는데 아래와 같이 BaseCommand 클래스를 못찾는다고 나오네요 ㅠㅠ System 디렉토리에 들어가보면 분명히 존재하는데 왜 그런지 모르겠습니다. Commands 디렉토리와 ExcelCommand.php 파일은 755 권한을 주었습니다. 실행하는 파일에서 exec(...., $output, $returnVal); 시 $returnVal 은 255 가 출력됨니다. $output 은 출력이 없고요 ㅠㅠ Stack trace: #0 {main} thrown in /var/www/html/app/Commands/ExcelCommand.php on line 10 PHP Fatal error: Uncaught Error: Class 'CodeIgniter\CLI\BaseCommand' not found in /var/www/html/app/Commands/ExcelCommand.php:10 <?php namespace App\Commands; use CodeIgniter\CLI\BaseCommand; use CodeIgniter\CLI\CLI; use PhpOffice\PhpSpreadSheet\IOFactory; use App\Libraires\ExcelLibrary; use App\Models\ExcelModel; class ExcelCommand extends BaseCommand { protected $groups = 'Command'; protected $name = 'command:excel'; protected $descrption = 'sss';
public function run(array $params) { $filePath = $params[0]; $entity = $params[1]; if(! file_exists($filePath)){ CLI::error('error : file not exists'); } try{ $spreadsheet = IOFactory::load($filePath); $ExcelData[] = $spreadsheet->getActiveSheet()->toArray(); // $excelLib = new ExcelLibrary(); // $excelLib->valid($ExcelData); // $model = new ExcelModel(); // $model->import($ExcelData, $entity);
}catch(Execption $e){ //$this->logger->info($e->getMessage()); CLI::error('error : '.$e->getMessage()); } } } |
|||
다음글 | 클라우드플레어와 로그인 이슈가 있을까요? (3) | ||
이전글 | ciboard를 xampp로 설치하여 localhost... (3) | ||
darkninja
/
2024/08/17 12:59:04 /
추천
0
|
cilove
/
2024/08/26 19:01:29 /
추천
0
exec(... 에서 ...내용이 궁금하네요 |
kaido
/
2024/08/27 13:46:45 /
추천
0
CI4 CLI 에서 커멘드로 실행하기 php /var/www/app/appstarter/public/index.php cron scheduler_static
동기식으로 cli pytthon 실행하기
호출 방법은 이렇고 CLI 실행시 조심해야 할 포인트가 몇가지 있습니다. CLI 에서는 세션과 HTTP 라이브러리가 에러가 납니다. 그래서 구분해서 로드해줘야합니다. 만일 BaseCommand 에서 세션을 기본적으로 사용한다면 에러 날 수 있습니다. |
cilove
/
2024/08/27 14:47:03 /
추천
0
|
커맨드 라인을 통한 실행
http://ci4doc.cikorea.net/cli/cli.html
ci4/system/config/AutoloadConfig.php 에
가 정의 되어 있습니다.
codeigniter 의 기능을 사용하기 위해서는
ci4/public/index.php 를 통해 ci 가 정상적으로 로드되어야 합니다
ci 의 도움말을 참고하세요!
namespace 와 autoloader 에 대한 정보가 부족한거 같으신데
ci4/public/index.php 에서 부터 system/autoloader/autoloader.php 에 이르는 흐름을 분석해보시기 바랍니다.