2008-09-09 34 views
20

Tôi đang cố gắng để mã TDD phong cách trong PHP và một trong những trở ngại lớn nhất của tôi (khác với thiếu một IDE phong nha) là tôi phải làm cho riêng của tôi bị tấn công với nhau IoC container chỉ để tiêm tất cả các đối tượng giả của tôi đúng cách.Đảo ngược vùng chứa điều khiển cho PHP?

Có ai đã sử dụng vùng chứa Ioc trong php không? Tất cả những gì tôi có thể tìm thấy là PHP IOC on the ever-annoying phpclasses.org và dường như hầu như không có tài liệu và không có nhiều tài liệu sau đây.

+0

Hãy xem dự án tiêm phụ thuộc của tôi cho PHP 5: https://github.com/jamolkhon/Sharbat – Jamol

+0

tại sao câu hỏi này bị đóng đề tài? Đây là một trong những chủ đề quan trọng nhất những ngày này –

+0

Tôi đồng ý, câu hỏi là nếu có tồn tại, không phải là một đề nghị (và được hỏi sáu năm trước). Nhưng vì không có câu trả lời "chính xác", tôi có thể thấy lý do tại sao nó có thể được xem là chủ đề không chính xác. –

Trả lời

7

Tôi đã chơi với một số khung DI cho PHP, nhưng tôi chưa sử dụng một khung trong sản xuất. Có một số liên kết:

  1. http://www.stubbles.net/ mà Tôi nghĩ là lâu đời nhất tôi đã cố gắng
  2. http://php.xjconf.net/
  3. FLOW3 - I belive này sẽ trở thành một khuôn khổ rất đẹp ( beta của nó ngay bây giờ)

Bạn đã đề cập bạn sẽ sử dụng nó cho TDD - vì vậy có thể có một cái nhìn tại Dependency Injection for Unit Tests in PHP

1

Tôi đã làm việc theo số PHP IoC/DI Container có tên là Substrate trong sáu tháng qua. Nó vẫn còn rất nhiều công việc đang tiến triển nhưng nó đã được deployed in production trong một tháng rưỡi và đã hoạt động khá tốt cho đến nay.

Chất nền được lấy cảm hứng từ Spring Framework, nhưng được viết với những điểm mạnh và hạn chế của PHP trong tâm trí. Tài liệu này là khá nhỏ tại thời điểm này, nhưng có một số sample code, bao gồm một ví dụ kiểm tra đơn vị. Đây có phải là thứ mà bạn nghĩ bạn có thể sử dụng cho TDD không?

6

Phemto đang được phát triển lại và trông khá hứa hẹn IMHO.

Một vài dự án tương tự khác, mà bạn có thể muốn xem xét:

bucket (Disclaimer: Tôi là tác giả chính của một này)

Các , đã được khoảng một thời gian dài . Tôi không nghĩ rằng nó đang được tích cực deveoped nữa, nhưng mặt khác, tôi tin rằng nó khá ổn định. Đã lâu rồi tôi mới nhìn vào nó.

Một dự án khá mới, gần đây tôi đã gặp phải là Crafty. Không chắc chắn có bao nhiêu người sử dụng nó mặc dù.

Tôi cũng đang xem sphicy, trông thú vị.

+0

Tải xuống liên kết cho Crafty bị hỏng. Tôi đã nói chuyện với tác giả, ông cho biết một dự án đã chết của nó, các phiên bản PHP mới hơn đã phá vỡ nó do những thay đổi trong api phản ánh PHP. –

+0

OK - Tôi đã cập nhật bài đăng cho phù hợp. – troelskn

3

Bạn cũng có thể muốn thử Ding (http://marcelog.github.com/Ding) được mô hình hóa sau Spring (tm) cho Java. Nó hoàn toàn đảo ngược vùng chứa kiểm soát và vùng chứa phụ thuộc, cũng hỗ trợ AOP

2

PHP-DI là một vùng chứa phụ thuộc khác.

It features dependency injection qua chú thíchcấu hình tối thiểu, đây là một ví dụ:

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

Nó rất dễ sử dụng, và nó tích hợp với Zend Framework ví dụ.

(vâng tôi làm việc trong khuôn khổ này)

+0

+1 Tôi biết một số người từ Zend và tôi biết họ đã làm việc trong vài năm qua để làm cho khái niệm tự nhiên hơn trong php và hiểu rõ hơn trong cộng đồng php. –

0

Laravel 4 có khuôn khổ IoC và DI tốt nhất. nếu bạn không nhớ bằng cách sử dụng một khung làm việc, Laravel 4 là cách để đi

+3

Đó là zeh Best !! 1 Zeh Best !!! Uhh ... tại sao? – Gordon

Các vấn đề liên quan