* 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
지금까지 나온 zend eclipse pdt 3.8 (all in one) 은 indigo 버전이다.
한글화를 해주는 babel프로젝트에서 다운받을때도 indigo 버전을 받으면 된다.
http://www.eclipse.org/babel/downloads.php
에서 최신버전을 url을 찾아
install new software 에서 설치하자.
http://download.eclipse.org/technology/babel/update-site/R0.11.0/indigo

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]
확실히 차이 난다.

Site Up Since Server Platform Programming Language
<?php
$app = new \Slim\Slim();
$app->get('/books/:id', function ($id) {
//Show book identified by $id
});
<?php
$app = new \Slim\Slim();
$app->map('/foo/bar', function() {
echo "I respond to multiple HTTP methods!";
})->via('GET', 'POST');
$app->run();
<?php
$app = new \Slim\Slim();
$app->map('/hello', function() {
echo "Hello";
})->via('FOO');
$app->run();
요즘 API개발이 한창이다
많이들 사용하는 방식이 헤더에 Authorization 항목을 넣어서 인증하는 방법이다.
사용자는 해더에 아래와 같이 전송한다.
Authorization: Basic 인증코드
인증코드는 아이디와 패스워드를 :로 구분하여 base64로 인코딩후 넣는다.
Authorization: Basic bWl5dTpkbHN3bGR 이런식?
base64_encode("id:pass") 이렇게 인코딩하면 된다.
그럼 서버쪽에서는?
_SERVER["HTTP_AUTHORIZATION"] : Basic bWl5dTpkbHN3bGR
_SERVER["PHP_AUTH_USER"] : id (자동으로 디코딩 된다)
_SERVER["PHP_AUTH_PW"] : pass (자동으로 디코딩 된다)
이렇게 사용할수 있다.
한차원 높은 보안을 원한다면
base64인코딩 하기전에 token을 사용하여 openssl으로 한번 감싸서 보내도록하자
특정키로 암호화 (AES-256)
base64_encode(openssl_encrypt("id:pass", "aes-256-cbc", $key, true, str_repeat(chr(0), 16)));
복호화
openssl_decrypt(base64_decode("isZXs9diEm43k6uRBtJJRQ=="), "aes-256-cbc", $key, true, str_repeat(chr(0), 16));