문제

저는 PHP에서 TDD 스타일을 코딩하려고 하는데 (괜찮은 IDE가 없다는 점을 제외하면) 가장 큰 걸림돌 중 하나는 모든 모의 개체를 제대로 삽입하기 위해 해킹된 IoC 컨테이너를 직접 만들어야 한다는 것입니다.

PHP에서 Ioc 컨테이너를 사용한 사람이 있나요?내가 찾을 수 있었던 전부는 항상 짜증나는 phpclasses.org의 PHP IOC 문서도 거의 없고 다음 항목도 많지 않은 것 같습니다.

도움이 되었습니까?

해결책

저는 일부 PHP용 DI 프레임워크를 사용해 보았지만 프로덕션 환경에서는 사용해 본 적이 없습니다.몇 가지 링크가 있습니다:

  1. http://www.stubbles.net/ 내가 시도한 가장 오래된 것 같아요
  2. http://php.xjconf.net/
  3. 흐름3 - 나는 이것이 아주 좋은 프레임 워크가 될 것이라고 믿는다 (지금 베타 베타)

TDD에 사용할 것이라고 말씀하셨는데요. 한 번 살펴보세요. PHP의 단위 테스트에 대한 종속성 주입

다른 팁

펨토 다시 개발되고 있으며 매우 유망한 IMHO로 보입니다.

살펴보고 싶은 몇 가지 다른 유사한 프로젝트는 다음과 같습니다.

버킷 (부인 성명:제가 이 글의 주 저자입니다)

그만큼 피코컨테이너의 PHP 포트, 오랫동안 존재해 왔습니다.더 이상 활발하게 개발되고 있다고는 생각하지 않지만, 한편으로는 상당히 안정적이라고 생각합니다.그래도 오랜만에 살펴보았네요.

제가 최근에 우연히 발견한 다소 새로운 프로젝트는 다음과 같습니다. 교활한.하지만 얼마나 많은 사람들이 그것을 사용하는지 확실하지 않습니다.

나도 보고 있어요 매운, 재미있어 보이네요.

Java용 Spring(tm)을 모델로 한 Ding(http://marcelog.github.com/Ding)을 사용해 볼 수도 있습니다.AOP도 지원하는 제어 및 종속성 주입 컨테이너의 완전한 반전입니다.

는 어떻습니까? 심포니 의존성 주입 또는 PHP 5.3+ 상당 요소 심포니 2.0 프로젝트에서.

PHP-DI 또 다른 종속성 주입 컨테이너입니다.

이를 통해 종속성 주입 기능을 제공합니다. 주석 그리고 최소한의 구성, 예는 다음과 같습니다.

class Foo {
    /**
     * @Inject
     * @var Bar
     */
    private $bar;
}

사용하기 매우 쉽고 예를 들어 Zend Framework와 통합됩니다.

(예, 저는 이 프레임워크 작업을 하고 있습니다)

나는 다음 작업을 해왔다. PHP IoC/DI 컨테이너 지난 6개월 동안 Substrate로 명명되었습니다.아직 많은 작업이 진행 중이지만 이미 완료되었습니다. 프로덕션에 배포 한 달 반 동안 지금까지 꽤 잘 작동해 왔습니다.

Substrate는 Spring Framework에서 영감을 얻었지만 PHP의 장점과 한계를 염두에 두고 작성되었습니다.현재 문서는 아주 최소한이지만, 몇 가지 사항이 있습니다. 샘플 코드, 단위 테스트 예시 포함.이것이 TDD에 사용할 수 있다고 생각하시나요?

Laravel 4는 최고의 IoC 및 DI 프레임워크를 갖추고 있습니다.프레임워크를 사용해도 괜찮다면 Laravel 4를 사용하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top