'PHP'에 해당되는 글 5건

  1. 2020.06.16 :: Laravel HTTP 세션
  2. 2020.06.16 :: Laravel flysystem-aws-s3-v3 확장
  3. 2020.06.15 :: [PHP] 텔레그램 api로 알림 받기
  4. 2020.06.05 :: PHP Composer 설치 및 사용법
  5. 2020.05.21 :: 라라벨 orm query log 남기기
PHP 2020. 6. 16. 18:22


반응형

session을 database로 사용할경우

 

session:table 아티즌 명령어를 통해서 이 마이그레이션을 생성할 수 있습니다

php artisan session:table

php artisan migrate

기본 Schema  아래와 같다

Schema::create('sessions', function ($table) {
    $table->string('id')->unique();
    $table->integer('user_id')->nullable();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->text('payload');
    $table->integer('last_activity');
});

.env 파일을 추가/수정해주세요.

SESSION_DRIVER=database
SESSION_LIFETIME=120

 

사용법

#데이터저장
$request->session()->put('key', 'value');


#데이터 삭제하기
$request->session()->forget('key');

$request->session()->flush();

#저장명령어꼭해주세요
 Session::save(); 
 
//이런방법 저런 방법
#세션에 아이템 저장
Session::put('key', 'value');

#배열 세션에 값 푸쉬
Session::push('user.teams', 'developers');

세션에서 아이템 조회
$value = Session::get('key');

 Session::save(); 
저장을 해야 다음 페이지에서 사용할수 있어요.

세션이 페이지를 벗어나 저장이 되지 않을때

 use Session;

 
 Session::save(); 
반응형

'PHP' 카테고리의 다른 글

Laravel flysystem-aws-s3-v3 확장  (0) 2020.06.16
[PHP] 텔레그램 api로 알림 받기  (0) 2020.06.15
PHP Composer 설치 및 사용법  (0) 2020.06.05
라라벨 orm query log 남기기  (0) 2020.05.21
posted by 파인진
:
PHP 2020. 6. 16. 18:08


반응형

AWS S3 연결에 필요한 소스 코드를 확장 시켜 줘야 합니다.

composer require league/flysystem-aws-s3-v3

아래와 같이 결과가 수행됩니다.

2.s3 버짓 설정

버킷 생성시에는 이름 및 지역, 옵션 구성, 권한 설정, 검토의 순서로 진행되는데 다른 부분은 넘어가고 3 권한 설정에서 모든 퍼블릭 엑세스 차단을 해제해 주세요.

3.AWS 의 IAM 키생성

콘솔에 들어가서 s3를 사용할수 있는 엑세스키 생성

4.연동

 .env 파일에 다음 값들을 추가해주세요.

AWS_ACCESS_KEY_ID=AGXAVIK5EY6TCTTS3I4L				                //IAM ACCESS KEY
AWS_SECRET_ACCESS_KEY=Awa8X1/038B6AXe1/EiDBzE9haIyfwGECgHXzABe	    //IAM SECRET KEY
AWS_DEFAULT_REGION=ap-northeast-2		                         	//REGION CODE (링크 참조)
AWS_BUCKET=test-s3-buket               			                    //버킷 명

한국(서울)의 리전 코드값은, ap-northeast-2 입니다.

 

5.저장코드

$fileSize = $request::file($uploadName) Illuminate\Support\Facades\Request 를 이용하며, 파일의 정보를 가져옵니다.

getClientSize() = 파일 용량 반환를 반환합니다.

getClientOriginalName = 파일 명 반환를 반환합니다.

getClientOriginalExtension = 파일 확장자를 반환합니다.

Storage::disk('s3')->put(...) 는 파일을 직접 업로드 합니다.

 

IAM설정,S3권한설정은 다양합니다. 비교적 간단하게 설정하였고 명령어는 많다.

 

-복사, 삭제, 이동, 이름변경
   
Storage::disk('s3')->put('tmp/'.$file, file_get_contents($file) );//추가
Storage::disk('s3')->delete('tmp/' . $file);//삭제
Storage::disk('s3')->files('tmp');//리스트
Storage::disk('s3')->get($file);//내용
Storage::disk('s3')->url($file);//인터넷 주소

Storage::size('file1.jpg');//크기 조회

Storage::copy('old/file1.jpg', 'new/file1.jpg');//복사
Storage::move('old/file1.jpg', 'new/file1.jpg');//이동

Storage::files($directory);//파일 목록
Storage::allFiles($directory);//하위 폴더 포함

Storage::directories($directory);//폴더 목록
Storage::allDirectories($directory);

Storage::makeDirectory($directory);//폴더 만들기
Storage::deleteDirectory($directory);//폴더 삭제

//참고
http://stayregular.net/blog/how-to-upload-images-using-amazon-s3-and-laravel
https://dzone.com/articles/how-to-upload-files-to-amazon-s3-using-laravel

 

How to Upload Files to Amazon S3 Using Laravel - DZone Cloud

Take a look at this tutorial that shows you how you can leverage the scalabilty of cloud with powerful development capabilities of the Laravel framework.

dzone.com

 

How to Upload Images using Amazon S3 and Laravel

Stay Regular Media is a team of artists with decades of combined experience in the design and cannabis industries.

stayregular.net

 

반응형

'PHP' 카테고리의 다른 글

Laravel HTTP 세션  (0) 2020.06.16
[PHP] 텔레그램 api로 알림 받기  (0) 2020.06.15
PHP Composer 설치 및 사용법  (0) 2020.06.05
라라벨 orm query log 남기기  (0) 2020.05.21
posted by 파인진
:
PHP 2020. 6. 15. 16:26


반응형

PC/모바일 에서 아이디로 로그인후에 사용합니다.

https://telegram.me/botfather 주소로 접속합니다.

@botfather
/help 명령입니다.

과거 BBS하는거 같죠?

봇이름을 입력을 기다리고 있습니다.
봇의 사용자 이름을 입력합니다.
HTTP API 아래 부분이 토큰값입니다.
t.me/finejinbot 클릭후에 시작을 하게 되면 이렇게 됩니다. 다른 이름은 @finejinbot 입니다.

/start 를 두번~ 세번 해주세요.

https://api.telegram.org/bot1156614402:AAEkQsIV22U0NF_qtEaytva3ot2pc5b8cuM/getUpdates

위주소를 처음 접속하게 되면 아무런 메세지가 없습니다.

Result 값이 비어 있습니다.
메세지를 입력해주세요. "안녕하세요"
일부에  from 에 id 116372418을 기억해주세요.

 

여기서 잠시  위 내용에서 매번 이렇게 사용자를 받아야 하나요?

-> 메시지에서 특정 문자가 들어 왔을때 대화 하는 코드를 넣어 주시면 됩니다.

즉 "addid" 일경우 자동으로 message 사용자의 id를 받는 사람으로 등록하도록 하는것

삭제는 "deleteid" 처럼 하게 되면 등록 삭제를 할수 있습니다.

이런 부분을 대화로 풀면 챗봇이 됩니다. 문장을 이해 하는 것은 형태소 분석이나 키워드 조합하여 지식 DB 서치 하는 방식이거나

아이들놀이처럼 스무고개로 문제를 해결하면 멋진 챗봇 프로그램이 완성 되겠습니다.

주의 사항: 알림으로 할경우 동일한 매세지를 모든 사용자에게 보내는것과 대화 모드에서 프로그램과 그 사용자와 대화는 구조가 다릅니다. 간혹 비밀 메세지처럼 보내질거라고 생각하고 사용을 주의해주세요.

<?php
 
//받은 토큰값
define('BOT_TOKEN', '565256823:AAF-kLlJzCtHYh6VbmuKkcOl7u4A0ISSRus');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
 
 //메세지 받을 사용자 아이디값
$_TELEGRAM_CHAT_ID = array('222820526');
 
function telegramExecCurlRequest($handle) {
 
    $response = curl_exec($handle);
 
    if ($response === false) {
        $errno = curl_errno($handle);
        $error = curl_error($handle);
        error_log("Curl returned error $errno: $error\n");
        curl_close($handle);
        return false;
    }
 
    $http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE));
    curl_close($handle);
 
    if ($http_code >= 500) {
        // do not wat to DDOS server if something goes wrong
        sleep(10);
        return false;
    } 
    else if ($http_code != 200) {
 
        $response = json_decode($response, true);
 
        error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n");
 
        if ($http_code == 401) {
            throw new Exception('Invalid access token provided');
        }
 
        return false;
    } 
    else {
 
        $response = json_decode($response, true);
 
        if (isset($response['description'])) {
            error_log("Request was successfull: {$response['description']}\n");
        }
 
        $response = $response['result'];
    }
 
    return $response;
}
 
function telegramApiRequest($method, $parameters) {
 
    if (!is_string($method)) {
        error_log("Method name must be a string\n");
        return false;
    }
 
    if (!$parameters) {
        $parameters = array();
    } 
    else if (!is_array($parameters)) {
        error_log("Parameters must be an array\n");
        return false;
    }
 
    foreach ($parameters as $key => &$val) {
        // encoding to JSON array parameters, for example reply_markup
        if (!is_numeric($val) && !is_string($val)) {
            $val = json_encode($val);
        }
    }
 
    $url = API_URL.$method.'?'.http_build_query($parameters);
 
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($handle, CURLOPT_TIMEOUT, 60);
 
    return telegramExecCurlRequest($handle);
}
 
// 메시지 발송 부분
foreach($_TELEGRAM_CHAT_ID AS $_TELEGRAM_CHAT_ID_STR) {
 
    $_TELEGRAM_QUERY_STR    = array(
        'chat_id' => $_TELEGRAM_CHAT_ID_STR,
        'text'    => "안녕 반가워요.\nhttp://daum.net",
        //<- url일경우 타입을 지정하면 자동으로 보인다.
        //자세한 내용은 api를 참조
        "entities"=> array( 
            "offset"=> 0,
            "length"=> 15,
            "type"=> "url"
          )
    );
 
    telegramApiRequest("sendMessage", $_TELEGRAM_QUERY_STR);
}
?>

 

모든 길은 만든 곳의 도큐먼트에 존재 한다. 

 

https://core.telegram.org/api

 

Telegram APIs

We offer two kinds of APIs for developers. The Bot API allows you to easily create programs that use Telegram messages for…

core.telegram.org

 

https://core.telegram.org/bots/samples

 

Bot Code Examples

If you want to learn more about Telegram bots, start with our Introduction to Bots » Check out the FAQ, if you have questions.…

core.telegram.org

https://core.telegram.org/bots/samples/hellobot

 

Hellobot

This sample PHP bot demonstrates the basics of the Telegram Bot API. If you have questions, try our FAQ or check out this…

core.telegram.org

 

반응형

'PHP' 카테고리의 다른 글

Laravel HTTP 세션  (0) 2020.06.16
Laravel flysystem-aws-s3-v3 확장  (0) 2020.06.16
PHP Composer 설치 및 사용법  (0) 2020.06.05
라라벨 orm query log 남기기  (0) 2020.05.21
posted by 파인진
:
PHP 2020. 6. 5. 13:16


반응형

설치

 

방법1

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin/

 

방법2

php -r "readfile('https://getcomposer.org/installer');" | sudo php -- --install-dir=/usr/local/bin/

 

사용하기 쉽게 symbolic link 연결

 

sudo ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

 

 

사용법 예시

composer require monolog/monolog 1.11.\*

 

 

 

반응형

'PHP' 카테고리의 다른 글

Laravel HTTP 세션  (0) 2020.06.16
Laravel flysystem-aws-s3-v3 확장  (0) 2020.06.16
[PHP] 텔레그램 api로 알림 받기  (0) 2020.06.15
라라벨 orm query log 남기기  (0) 2020.05.21
posted by 파인진
:
PHP 2020. 5. 21. 14:03


반응형

 laravel-sql-logger 패키지 사용

 

  1. 패키지 설치

    composer require mnabialek/laravel-sql-logger

     

  2. config/app.php 의 providers 등록

    Mnabialek\LaravelSqlLogger\Providers\ServiceProvider::class,

     

  3. publishing

    php artisan vendor:publish --provider="Mnabialek\LaravelSqlLogger\Providers\ServiceProvider"

     

  4. config/sql_logger.php 설정 
  5. 또는 .env 에 동작 설정

    SQL_LOG_QUERIES=true

    SQL_LOG_SLOW_QUERIES=true

    SQL_SLOW_QUERIES_MIN_EXEC_TIME=100

    SQL_LOG_OVERRIDE=false

    SQL_LOG_DIRECTORY=logs/sql

    SQL_CONVERT_TIME_TO_SECONDS=false

    SQL_LOG_SEPARATE_ARTISAN=false

     

 

Ref

반응형

'PHP' 카테고리의 다른 글

Laravel HTTP 세션  (0) 2020.06.16
Laravel flysystem-aws-s3-v3 확장  (0) 2020.06.16
[PHP] 텔레그램 api로 알림 받기  (0) 2020.06.15
PHP Composer 설치 및 사용법  (0) 2020.06.05
posted by 파인진
: