Posted
Filed under 프로그래밍/PHP
난 PHPSTORM 을 쓰니까...
플러그인에서 power mode 라고 검색하면 Power Mode II 라는게 있는데 이걸 설치한다.
그럼 아래처럼 타이핑 할때마다 파파파팍~~
너무 심한것 같으면 설정에서 정도를 조절한다.

사용자 삽입 이미지



https://plugins.jetbrains.com/plugin/8251


2016/10/26 11:52 2016/10/26 11:52
Posted
Filed under 프로그래밍/PHP
프로젝트 디렉토리에서 실행 

composer.phar이 없으면 가지고 온다.
 
curl -sS https://getcomposer.org/installer | php
 


guzzle 설치
 
./composer.phar require guzzlehttp/guzzle
 


index.php 에 추가
$container['guzzleHttp'] = function ($container) {
 $client = new \GuzzleHttp\Client();
 return $client;
};


사용은 이런식으로..
 
echo $container['guzzleHttp']->get('http://www.naver.com')->getBody();
 


주의 : AWS SDK를 사용한다면 이미 AWS SDK에서도 guzzle을 로드하기때문에 충돌난다.
이럴때는 그냥 AWS SDK에 포함되어있는 guzzle을 사용하면된다.

참조 : http://docs.guzzlephp.org/en/latest/quickstart.html



2016/09/19 15:34 2016/09/19 15:34
Posted
Filed under 프로그래밍/PHP
기본적으로 PHP-FPM에서 오류가 기록되지 않는다.

1. fpm/pool.d/www.conf  파일을 연다. (보통 /etc/php5/fpm/pool.d/www.conf 여기에 있다)

2.  아래 내용의 주석을 푼다. (주석은 ; 이다)
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on

3. 로그파일을 생성한다. (슈퍼유저로 실행)
touch /var/log/fpm-php.www.log; 

4. 로그파일에 권한을 준다. (슈퍼유저로 실행)
www-data는 php-fpm의 실행 유저이다.
chown www-data.www-data /var/log/fpm-php.www.log

5. php5-fpm 재실행
service php5-fpm restart

6. 끝

2016/09/09 19:06 2016/09/09 19:06
Posted
Filed under 프로그래밍/PHP
array의 내용중에 하나또는 여러개를 unset으로 삭제했을때
json_encode를 하면 인덱스가 안맞아서 다른형태로 나오게 된다.
이럴때 사용해도 되고 여러곳에 응용.

  
$var_array = array_values(array_filter($var_array));
 





2016/08/31 14:20 2016/08/31 14:20
Posted
Filed under 프로그래밍/PHP
5.5.0부터는 @ 만으로 파일을 전송할수 없다.
CURLFile Class를 사용해야 한다.

http://php.net/manual/en/class.curlfile.php

CURLOPT_POSTFIELDS The full data to post in a HTTP "POST" operation. To post a file, prepend a filename with @ and use the full path. The filetype can be explicitly specified by following the filename with the type in the format ';type=mimetype'. This parameter can either be passed as a urlencoded string like 'para1=val1&para2=val2&...' or as an array with the field name as key and field data as value. If value is an array, the Content-Type header will be set to multipart/form-data. As of PHP 5.2.0,value must be an array if files are passed to this option with the @ prefix. As of PHP 5.5.0, the @ prefix is deprecated and files can be sent using CURLFile. The@ prefix can be disabled for safe passing of values beginning with @ by setting the CURLOPT_SAFE_UPLOADoption to TRUE.


2016/06/03 16:47 2016/06/03 16:47
Posted
Filed under 프로그래밍/PHP
국내 php 개발자들 대부분이 디버깅을 안하는걸로 알고 있다.
아직도 editplus를 쓰는곳이 허다하니...

제발 디버깅 하자~~~~~


* php에 xdebug설치
apt-get install php5-xdebug

* 20-xdebug.ini 에 추가
xdebug.remote_enable = 1
php5-fpm 리스타트

* 크롬에서 Xdebug helper 설치
https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

* phpstorm 에서 가운데 전화기 벌레모양 킨다
사용자 삽입 이미지




 브레이크 포인트를 하나 걸어놓고

* 크롬 Xdebug helper의 Debug를 키고 새로고침 한다.

* 처음 접근시에는 accpet  화면 나오는데 그냥 accpet누른다.

* phpstorm에서 잡힌다~
사용자 삽입 이미지








* 잘 쓰삼~

2016/04/14 18:35 2016/04/14 18:35
Posted
Filed under 프로그래밍/PHP
PHP버전을 5.6.11로 업그레이드를 했더니 Disallowed Key Characters. 오류가 난다.
해결 방법은...

1. system/core/input.php 을 연다.
2. function _clean_input_keys($str) 을 찾는다.
3. 수정한다.
 if ( ! preg_match("/^[a-z0-9:_\/-]+$|/i", $str))
 {
 exit('Disallowed Key Characters.'. $str);
 }



추가로...
Common.php 257번째줄에 notice가 나오면 수정
 $_config[0] =& $config;
 return $_config[0];



2016/03/14 16:21 2016/03/14 16:21
Posted
Filed under 프로그래밍/PHP
  • Log Levels

    Monolog supports the logging levels described by RFC 5424.

    • DEBUG (100): Detailed debug information.

    • INFO (200): Interesting events. Examples: User logs in, SQL logs.

    • NOTICE (250): Normal but significant events.

    • WARNING (300): Exceptional occurrences that are not errors. Examples: Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong.

    • ERROR (400): Runtime errors that do not require immediate action but should typically be logged and monitored.

    • CRITICAL (500): Critical conditions. Example: Application component unavailable, unexpected exception.

    • ALERT (550): Action must be taken immediately. Example: Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up.

    • EMERGENCY (600): Emergency: system is unusable.




2016/01/06 17:19 2016/01/06 17:19
Posted
Filed under 프로그래밍/PHP
Slim문서좀 보려고 들어갔더니 12월7일 Slim Framework 3.0.0 안정버전이 발표됐다.
쩝...이게 참 파이썬2에서 3넘어가듯이 2에서 개발한거 못쓴다.
아...이번 프로젝트 3으로 개발할까 말까..아 고민....

업그레이드 가이드



2015/12/29 11:58 2015/12/29 11:58
Posted
Filed under 프로그래밍/PHP

 if(!preg_match('/^[0-9a-zA-Z]([\-.\w]*[0-9a-zA-Z\-_+])*@([0-9a-zA-Z][\-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9}$/', $email))
 {
     // 통과못했을경우
 }


2015/11/19 18:45 2015/11/19 18:45
Posted
Filed under 프로그래밍/PHP
Nibbleblog는 별도의 DB를 사용하지 않는다.
그래서 백업도 폴더를 그대로 복사하면된다.
가벼워서 라즈베리파이B 에서도 상당히 빠르게 돌아간다.

기본적으로 한글팩이 포함되어있지 않다.
cd languages
wget http://nblang.nibbleblog.com/download/thebe/language/ko_KR.bit

이 한글팩은 나온지 좀 됐지만 사용하기에 무리는 없다.
관리자 설정에사ㅓ 언어를 한국어로 변경해준다.

Nibbleblog 에서 짧은 주소(Friendly URLs)를 nginx에서 사용하려면
아래 설정을 추가하면 된다.

 location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  #try_files $uri $uri/ =404;
  try_files $uri $uri/ @rewrites;
 }

 location @rewrites {
  rewrite ^/category/([^/]+)page-([0-9+])$ /index.php?controller=blog&action=view&category=$1&number=$2 last;
  rewrite ^/category/([^/]+)/$ /index.php?controller=blog&action=view&category=$1&number=0 last;
  rewrite ^/tag/([^/]+)/page-([0-9]+)$ /index.php?controller=blog&action=view&tag=$1&number=$2 last;
  rewrite ^/tag/([^/]+)/$ /index.php?controller=blog&action=view&tag=$1&number=0 last;
  rewrite ^/page-([0-9]+)$ /index.php?controller=blog&action=view&number=$1 last;
  rewrite ^/post/([^/]+)/$ /index.php?controller=post&action=view&post=$1 last;
  rewrite ^/post-([0-9]+)/(.*)$ /index.php?controller=post&action=view&id_post=$1 last;
  rewrite ^/page/([^/]+)/$ /index.php?controller=page&action=view&page=$1 last;
  rewrite ^/feed/$ /feed.php last;
  rewrite ^/([^/]+)/$ /index.php?controller=page&action=$1 last;
 }


2015/11/06 12:34 2015/11/06 12:34