PHP가 버전 업그레이드를 함에 따라 
레거시 버전 PHP에서 사용하던 mcrypt_encrypt 관련 암호화 함수들을 쓰기 힘들게 됬다



때문에 openssl_encrypt 함수를 


만약 레거시 코드에서 mcrypt_encrypt 암호화 방식에서 AES 암호화로 MCRYPT_RIJNDAEL_128를  사용했다면 


openssl_encrypt에선 AES-256-CBC로 사용하면 레거시 코드와 호환이 가능하다 



복호화도 동일 


php7.2부턴 mcrypt 사용이 불가능 하기 때문에 openssl_encrpyt를 써야 한다 
레거시 코드를 마이그레이션 할때 만약 mcrypt를 사용했다면 참고

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

Laravel에서 PHP CLI 실행  (0) 2018.12.20
MVC 패턴  (0) 2016.02.08
파일 업로드 기능을 구현할떄의 php.ini 설정  (0) 2016.02.08
<?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

MVC 패턴이란


Model

View

Controller

3가지 단어의 앞글자를 따서 만든 디자인 패턴이다


Controller는 페이지가 열렸을떄 알맞은 Model을 불러오게 하고

Model은 주로 DB와 연결되어 정보를 가져오고

View는 Model에서 가져온 정보를 사용자들에게 보여준다



일반적으로 PHP를 처음 공부해서 개발하다 보면 

한개의 php파일 안에서 SQL을 보내고 그 값을 받고 그 페이지에서 보여주게 된다.

하지만 이렇게 개발할 경우 후에 유지보수나 코드 재사용성이 크게 저하된다.

보기 엄청 힘들다



Model, View, Controller를 분리할 경우 

코드가 유연해지고 수정하기 쉬워진다

예전 스타일의 PHP코드는 페이지 하나에 HTML, PHP, JavaScript가 짬뽕되 있기 때문에 가독성이 

엄청나게 떨어질 뿐더러 코드 분석하기가 힘들어진다


떄문에 class를 사용하여(보통 PHP를 처음 공부하면 class 안한다.) 

MVC 패턴으로 개발을 하는것이다. 

이 MVC 패턴은 디자인 패턴중 하나로서 다양한 디자인 패턴들이 있다


작은 크기의 파일을 업로드할때는 상관이 없지만 

파일크기가 클 경우에는 파일이 업로드 되지 않는다

이럴떄는 보통 멘붕을 겪게 되는데 

php.ini에서 설정을 해주어야 한다.



파일 업로드는 POST 방식으로 전송이 되는데 

보통 파일업로드가 되지 않을때는 크게 3가지 설정을 확인해봐야 한다.


upload_max_filesize

memory_limit

post_max_size

이 3가지를 확인 해야한다.


post_max_size는 말 그대로 post 방식으로 보내거나 받는 값의 최대 크기를 설정하는 것이다.


upload_max_filesize는 업로드 할 수 있는 최대 파일크기를 제한하는 것이다.

이미지 파일 올리는대 굳이 2G씩 잡을 필요는 없다.


만약 메모리제한 설정을 활성화 시켰다면 

memery_limit이 post_max_size보다 커야 한다.


즉 

memory_limit > post_max_size > upload_max_filesize 순으로 크기가 제한되어야 한다.














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

PHP mcrypt 함수 마이그레이션  (0) 2018.12.20
Laravel에서 PHP CLI 실행  (0) 2018.12.20
MVC 패턴  (0) 2016.02.08

+ Recent posts