티스토리 뷰
PHP도 DI가 가능하다
DI
(의존성 주입)는 Java
진영의 Spring
프레임워크가 폭발적으로 유행시킨 개념이다. Phalcon
프레임워크를 이용하면 PHP에서도 DI가 가능하다. 이번 글에서는 Phancon에서의 DI 사용법을 설명하고자 한다.
사전지식
DI 사용하기
use Phalcon\Di\FactoryDefault;
use Phalcon\Http\Response;
use Phalcon\Mvc\Micro;
// 1
$di = new FactoryDefault();
$di->set("something", function () {
return array(
[
"some_key" => "some_value",
"another_key" => "another_value"
]);
});
// 2
$app = new Micro();
$app->setDI($di);
// 3
$app->get(
"/v1/something",
function ($name) use ($app) {
$res = new Response();
$res->setStatusCode(200);
$res->setContentType("application/json", 'UTF-8');
$res->setContent(json_encode(array(
"something" => $app["something"]
), JSON_PRETTY_PRINT));
return $res;
}
);
$app->handle();
- 1:
FactoryDefault
오브젝트를 생성하면set()
을 이용하여 Key, Value 형태로 디펜던시 인젝션(DI
)이 가능하다. 인젝션이 가능한 예로는 데이터베이스 연결 정보를 담은Phalcon\Db\Adapter\Pdo\Mysql
오브젝트, INI 파일 정보를 담은Phalcon\Config\Adapter\Ini
오브젝트를 들 수 있다. - 2:
Micro
오브젝트의setDI()
를 이용하여 앞서 설정한 DI 오브젝트를 주입하면$app
이 이용되는 프로젝트 전역 범위에서 인젝션된 오브젝트에 접근하여 이용할 수 있다. - 3: 앞서 DI된 something이란 이름의 오브젝트를
$app["something"]
의 형태로 가져와서 이용할 수 있다.
참고 글
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- spring
- Docker
- node.js
- DynamoDB
- 구동계
- 태그를 입력해 주세요.
- maven
- jstl
- 로드바이크
- JHipster
- 평속
- bootstrap
- CentOS
- Eclipse
- JavaScript
- java
- Tomcat
- MySQL
- jsp
- jpa
- Kendo UI Web Grid
- 자전거
- Spring Boot
- 알뜰폰
- Kendo UI
- Spring MVC 3
- 로드 바이크
- chrome
- kotlin
- graylog
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함