<?php
define('LARAVEL_START', microtime(true));

require __DIR__.'/../../vendor/autoload.php';


$app = require_once __DIR__.'/../../bootstrap/app.php';

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);

$kernel->terminate($request, $response);


//클래스 생성
$elaClass = new \App\Http\Controllers\ElasticController();

//커넥션 생성
$elaClass->setClient();

//Data insert
$elaClass->insertCount();



라라벨에 컨트롤러로 등록된 코드를 cli로 실행하고 싶을 경우엔 위 코드대로 따로 파일을 만들어 실행하면 된다

다만 require와 require_once 부분의 경우 달라질수 있는데 상위 디렉토리로 올라갈때 laravel 루트 디렉토리가 되어야 한다

예를 들어 보자


DOCUMENT_ROOT는 /var/www/laravel/public 디렉토리이고 
위의 파일읜 /var/www/larvel/module/cli 디렉토리에 있을 경우 위 소스코드처럼 ../../ 두단계 상위디렉토리로 이동하여 실행해야 한다

그 이후엔 일반적인 Class 생성 및 메소드 실행방법이랑 똑같다 
다만 CLI로 돌아가기 때문에 시각적으로 확인할 방법이 없으므로 따로 로그는 남기도록 해서 잘 작동하는지 확인 할 수 있는 방법을 마련해놓는게 좋다



CLI로 실행 할 경우 PHP 위의 코드가 있는 파일을 고대로 php로 실행 시키면 된다


php /var/www/laravel/module/cli/CliElastic.php


이렇게 실행시키면 laravel의 컨트롤러에 있는 코드를 cli로 실행 시킬수 있다


크론탭으로 등록 시키려 할경우엔 아래처럼 등록하면 2분마다 작동한다

*/2 * * * * php /var/www/laravel/module/cli/CliElastic.php


이렇게 하면 매 1분 마다 실행된다


* * * * * php /var/www/laravel/module/cli/CliElastic.php


'Web Development > PHP' 카테고리의 다른 글

PHP mcrypt 함수 마이그레이션  (0) 2018.12.20
MVC 패턴  (0) 2016.02.08
파일 업로드 기능을 구현할떄의 php.ini 설정  (0) 2016.02.08

+ Recent posts