Posted
Filed under 프로그래밍/PHP
Guzzle은 HTTP형태의 API등을 호출하기 쉽게 하는 모듈이다.
사용법도 무쟈게 간단하고...특히 동기,비동기를 구분해서 보낼수가 있는게 젤 맘에 든다.ㅋㅋ
curl 쓰지 말고 이거 쓰자

https://github.com/guzzle/guzzle
http://docs.guzzlephp.org

2015/11/03 15:28 2015/11/03 15:28
Posted
Filed under 프로그래밍/PHP
요즘 해외에서는 Phalcon과 Laravel이 핫하다.
Pahlcon은 C로 컴파일하여 메모리점유율이 낮고 속도가 무쟈게 빠르다고 하다.
Laravel은 CI와 Slim을 짬뽕해놓은것 같은 느낌인데 국내에는 정보가 그닥 많지 않다.
속도가 생각만큼은 안나오네...

Phalcon사이트에 있는 이미지를 한장 올리겠다.
Slim은 micro framework 이긴하지만 Phalcon 다음으로 처리속도가 빠른것으로 나와있다.
Phalcon은 full stack framework 이다.

다음에는 Phalcon을 사용해 볼까?

사용자 삽입 이미지

일본사람이 벤치마크한 부분에는 속도는 여전히 Phalcon이 넘사벽이지만 메모리 사용에서는
ci,slim하고 같은것으로 표시되고 있다.

http://blog.a-way-out.net/blog/2015/03/27/php-framework-benchmark/


2015/11/03 15:18 2015/11/03 15:18
Posted
Filed under 프로그래밍/PHP
vi /etc/php5/fpm/pool.d/www.conf

아래 항목이 주석이 되어있는데 주석을 푸고 원하는 확장자를 추가해주자
기본은 .php 만 허용이다.

security.limit_extensions = .php .html .htm

php5-fpm 재시작

2015/08/25 12:23 2015/08/25 12:23
Posted
Filed under 프로그래밍/PHP
slim framework 이 워낙 간단하기때문에 조금만 생각해보면 다국어 지원도 뭐 아주 간단히 해결가능하다.


http://nesbot.com/2012/6/26/multilingual-site-using-slim

https://fiberonofiber.wordpress.com/2014/02/13/slim-php-multi-language-urls/

2015/06/23 14:26 2015/06/23 14:26
Posted
Filed under 프로그래밍/PHP
오호~ slimframework 이 좋아지고 있다.
언제부턴인가 싱글톤도 지원을 하네..ㅋㅋ

class TestTest {
 public function test() {
  echo "a";
 }
}
$app->container->singleton('test', function () {
 return new TestTest();
});
print_r($app->test->test());
exit;


편리하도다~

2015/03/24 11:29 2015/03/24 11:29
Posted
Filed under 프로그래밍/PHP
php5 .5대를 사용하고 있는데도 json_decode에서 JSON_BIGINT_AS_STRING을 사용했는데 아래와 같은 오류가 나온다면?

option JSON_BIGINT_AS_STRING not implemented


설치해주자.

pecl install jsonc 

그럼 해결~

2015/03/05 12:09 2015/03/05 12:09
Posted
Filed under 프로그래밍/PHP
너무나도 유용하다~

<?php
$input 
"Alien";
echo 
str_pad($input10);                      // "Alien     "을 생성.
echo str_pad($input10"-="STR_PAD_LEFT);  // "-=-=-Alien"을 생성.
echo str_pad($input10"_"STR_PAD_BOTH);   // "__Alien___"을 생성.
echo str_pad($input"___");               // "Alien_"을 생성.
?>


http://ua2.php.net/manual/kr/function.str-pad.php





2014/11/06 16:14 2014/11/06 16:14
Posted
Filed under 프로그래밍/PHP
마법 상수..ㅋㅋㅋㅋ

약간의 "마법" PHP 상수
이름설명
__LINE__ 파일의 현재 줄 번호
__FILE__ 파일의 전체경로와 파일명. 포함한 파일 안에서 사용하면, 포함된 파일명을 반환합니다.. PHP 4.0.2부터, __FILE__은 언제나 절대 경로를 가지고 있습니다. 이전에는 특정한 경우에서 상대 경로를 가지고 있었습니다.
__DIR__ 파일의 디렉토리. 포함한 파일 안에서는, 포함된 파일의 디렉토리를 반환합니다. 이는 dirname(__FILE__)과 동일합니다. 디렉토리명은 루트 디렉토리가 아닌 이상, 마지막에 슬래시가 없습니다. (PHP 5.3.0에서 추가)
__FUNCTION__ 함수명. (PHP 4.3.0에서 추가) PHP 5부터 이 상수는 정의된 그대로의 함수명을 반환합니다. (대소문자 구분) PHP 4에서는 항상 소문자였습니다.
__CLASS__ 클래스명. (PHP 4.3.0에서 추가) PHP 5부터 이 상수는 정의된 그대로의 클래스명을 반환합니다. (대소문자 구분) PHP 4에서는 항상 소문자였습니다.
__METHOD__ 클래스 메쏘드명 (PHP 5.0.0에서 추가) 메쏘드 명은 정의한 대로 반환됩니다. (대소문자 구분)
__NAMESPACE__ 현재 이름공간 이름 (대소문자 구분). 이 상수는 컴파일 시에 정의됩니다. (PHP 5.3.0에서 추가)


http://php.net/manual/kr/language.constants.predefined.php
2014/10/30 15:54 2014/10/30 15:54
Posted
Filed under 프로그래밍/PHP
JSON 형태로 인증 TOKEN을 사용하는 방법 

https://github.com/firebase/php-jwt
2014/10/28 18:10 2014/10/28 18:10
Posted
Filed under 프로그래밍/PHP

class Timer {

 var $classname = "Timer";
 var $start     = 0;
 var $stop      = 0;
 var $elapsed   = 0;

 # Constructor
 function Timer( $start = true ) {
  if ( $start )
   $this->start();
 }

 # Start counting time
 function start() {
 $this->start = $this->_gettime();
 }

 # Stop counting time
 function stop() {
 $this->stop    = $this->_gettime();
 $this->elapsed = $this->_compute();
 }

 # Get Elapsed Time
 function elapsed() {
 if ( !$elapsed )
 $this->stop();

  return $this->elapsed;
 }

 # Get Elapsed Time
 function reset() {
 $this->start   = 0;
 $this->stop    = 0;
 $this->elapsed = 0;
 }

 #### PRIVATE METHODS ####

 # Get Current Time
 function _gettime() {
 $mtime = microtime();
 $mtime = explode( " ", $mtime );
 return $mtime[1] + $mtime[0];
 }

 # Compute elapsed time
 function _compute() {
 return $this->stop - $this->start;
 }
 
}

$t=new Timer();

2014/04/07 10:49 2014/04/07 10:49
Posted
Filed under 프로그래밍/PHP
UTF-8로 된 CSV를 엑셀에서 불러오면 한글이 깨진다.

왜일까? 이유는...복잡하다.

그냥 파일의 맨 처음에 아래 한줄 넣어주면 잘 된다.

fputs($fp,"\xEF\xBB\xBF");


2014/01/23 18:28 2014/01/23 18:28
Posted
Filed under 프로그래밍/PHP

* config/database.php 아래 추가

$db['pdo']['hostname'] = 'mysql:host=localhost;dbname=codeigniter';
$db['pdo']['username'] = 'codeigniter';
$db['pdo']['password'] = 'codeigniter';
$db['pdo']['database'] = 'codeigniter';
$db['pdo']['dbdriver'] = 'pdo';


* 사용하는 방법 (CI 그대로 사용)

//load the pdo db config
$this->pdo = $this->load->database('pdo', true);

//using the pdo config
$stmt = $this->pdo->query("SELECT * FROM users"); 
var_dump($stmt->result());

//using the pdo config with active record
$stmt = $this->pdo->get("users"); 
var_dump($stmt->result());


예제: http://codeigniter-kr.org/user_guide_2.1.0/database/examples.html

출처: http://codebyjeff.com/blog/2013/03/codeigniter-with-pdo

2013/10/15 18:36 2013/10/15 18:36
Posted
Filed under 프로그래밍/PHP

PHP 5.5에서부터는 Zend Opcache가 내장되어있다.
설정도 기본으로 사용이다.

이 판넬은 opcache의 상태를 보여준다.

https://gist.github.com/ck-on/4959032


간단하게 opcache 성능을 비교해봤는데

non opcache
- Requests per second:    98.23 [#/sec]

use opcache
- Requests per second:    190.80 [#/sec]

확실히 차이 난다.




사용자 삽입 이미지

2013/10/07 17:58 2013/10/07 17:58