라벨이 PHP/cakephp인 게시물 표시

2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

[메모] 시간표 출력 프로그램 복습하며 느낀 점

작년에 중간까지 만들다가 중단(다른 일 하게 된 것도 있지만 반쯤은 실력부족으로 인한 포기에 가깝지 않았나) 했던 시간표 출력 프로그램을 다른 개발자가 완성한 소스코드를 보고 느낀점 및 팁을 메모함. 필요한 상수를 const 정의함, 그때그때 변수로 쓰는게 아니라 공통적으로 쓰는 값은 상수로 미리 정의한 후, 클래스 전체에서 사용하게 함. -> 나는 보통 클래스 내부에서 변수로 만들고 그것만 사용하고 말거나 혹은 그 값을 파라메터로 넘기거나 하는데 확실히 이런 부분에서 경험부족이 나오는 듯.. MVC패턴에서 View에 값을 보내는 부분과 처리하는 부분을 확실하게 나눌 것. CakePHP에서 Controller와 View(Template) 사이에서 데이터를 전송하는 경우, 기본적인 Class에서는 View에 표시할 데이터만 처리하고 실제적으로 처리를 하는 부분은 별도의 Class를 만들어서 호출하는 형식으로 개발함. 특히 Ajax를 사용해서 값을 전달하고 받아서 처리하는 경우, request의 is메소드로 ajax임을 확인한 후, 처리하는 별도의 함수를 만들어서 호출함. 나 같은 경우에는 기본 Class에 모든 처리를 다 때려넣으려는 경향이 있었고, 그게 Phpspreadsheet 플러그인과 CakePhp 사이에서 충돌이 났던 원인 중 하나이지 않았을까, 라는 생각이 듦. public function sheet_output() {      if ($this->request->is('ajax')){           $this->_roomsheetAjax(); // ファイル出力してAJAXで返す処理      return;      } } public function _roomsheetAjax() {      $this->autoRender = false;     ...

디버그 파일 만들 때 신경쓸 것

재활용성 : 파라메터는 최대한 줄이고 기능을 단순화 시킬 것 로그정보에 출력할 데이터는, 일자&접속처&케이스나모듈명&에러종류&메세지 임 가능하면 한줄로 출력할 것 래퍼 함수를 이용해서 케이스 이름 등을 추가해서 인쇄 가능하게 할 것 함수명에는 앞에 _를 붙여서 외부나 브라우저에서 읽지 못하게 하는 것이 안전함 로그를 남기는 경로는 풀 패스를 기록하는 것이 좋으며 상수화 시키면 편리함 ok 로그를 출력할 때 시간은 반드시 함수 안에서 현재시간을 찍을 것, 상수화 시키면 안 된다. 로그를 출력하는 순서는 처리과정에 따라서 시작 -> 처리 -> 종료 -> 리다이렉트경로? 같은 식으로 순서를 남기는 것이 알기 쉬움. // 사용법 -> 어떤 기능이나 함수 실행 시 다음과 같이 시작과 끝을 명기할 것 $this->_putLog(LG_INFO, '<IN>', __CLASS__, __FUNCTION__); $this->_putLog(LG_WARNING, 'authorization キーがない'); $this->_putLog(LG_INFO, '<OUT*>', __CLASS__, __FUNCTION__); // 操作ログ (예제)     function _putLog($f_level = LG_INFO, $s_msg = null, $s_class = null, $s_func = null) { $levels = array(             LG_ERROR =>   'error  :',             LG_WARNING => 'warning:',             LG_NOTICE =>  'notice:', ...

여러 도메인들 간 쿠키 공유하기

도메인들 간 쿠키 공유하기 (Sharing cookies across multiple domains hosted on different servers) 이 글은  http://www.innovativephp.com/sharing-cookies-across-multiple-domains-hosted-on-different-servers/  의 글을 번역한 글입니다. 도메인들간 쿠키 공유에 대한 간단한 소개 왜 필요한가? 웹사이트나 웹어플리케이션을 개발할때 필요에 따라 단일 도메인이나 별개의 도메인 또는 서브도메인을 사용할수 있다. 그리고 일반적으로 보안이나 성능, 서버부하 등에 대한 이유로 서브 도메인 형식으로 구성한다 구글은 이 개념을 이해하는데에 좋은 예이다. 구글은 메일, 검색, 구글+ 등의 서비스에 대해 서브도메인 형식으로 서비스를 제공한다. 구글은 자신들의 서비스에 단일 로그인 정보를 사용하기 때문에 서비스 간에 로그인 정보를 공유할수 있는 방법이 필요하다. 보통 로그인 데이터는 브라우저 세션에 저장된다. 이때 각 서브도메인은 별개의 세션을 유지하기 때문에 세션 기능을 이용하는한 로그인 정보를 공유하는것은 불가능하다. 바로 이점이 쿠키가 필요한 이유다. 쿠키값은 여러 사이트에서 접근할수 있으며 각각의 어플리케이션에 필요한 정보를 유지할수 있다. PHP는 도메인들간 쿠키를 공유하는 기능을 지원한다 도메인 간 쿠키 공유의 제한점 비록 도메인 간에 쿠키값을 저장하고 접근하는것이 가능하긴 하지만 몇가지 제한사항이 있다. 다른 도메인의 쿠키값은 저장할수 없다는 것이다. 단지 동일한 사이트의 서브도메인 쿠키를 이용할수 있을 뿐이다. 동일한 서버에서 서비스되는 www.example1.com 와 www.example2.com 이라는 사이트가 있다고 가정하자. 이 두개는 같은 서버에 있기는 하지만 도메인 이름이 다르다. 따라서 이 두 사이트간 쿠키를 공유할 수는 없다. 하지만 www.example.com 과 이 사이트...

php로 csv 파일을 import/export 하는 샘플코드

요건 임포트 하는 코드 ㅋㅋ 【PHP】 CSVをいい感じにインポートする方法を紹介します      // ファイル取得      $filepath   =  "../file/test.csv" ;      $file   =  new   SplFileObject( $filepath );       $file ->setFlags(SplFileObject::READ_CSV);        // 全行のINSERTデータ格納用      $ins_values   =  "" ;                 // ファイル内のデータループ        foreach   (  $file   as   $key   =>  $line   ) {                   // 配列の値がすべて空か判定          $judge   =  count (  array_count_values (  $line   ) );                     if (  $judge ...