2012-02-21 29 views
10

Tôi đang đánh giá các khung công tác PHP cho một số dự án sắp tới, với mục tiêu sử dụng cùng một khuôn khổ cho tất cả chúng. Một khía cạnh khác thường là chúng KHÔNG phải là các ứng dụng dựa trên trình duyệt chuẩn, tất cả chúng sẽ được truy cập bởi các ứng dụng tùy chỉnh mong đợi XML hoặc JSON (hiện chưa quyết định).Khung công tác PHP nào phù hợp cho các ứng dụng chỉ dành cho dịch vụ web?

Hầu hết các PHP framework như Yii, CodeIgniter, CakePHP dường như được thiết kế xung quanh giả định hợp lý rằng các ứng dụng khách hàng sẽ là một browser-- ví dụ, sử dụng cookie để quản lý bền bỉ, chuyển hướng sau khi POST vv

Trong khi tôi chắc chắn tôi có thể nhận được bất kỳ khuôn khổ nào ở trên để thực hiện công việc, có bất kỳ khung chính nào "tốt hơn" phù hợp với phát triển ứng dụng độc lập của ứng dụng khách không?

Trả lời

5

Những cái 'lớn' (CI, Kohana, Zend, Cake, Symfony) Tôi nghĩ Zend mới hơn có hỗ trợ tốt nhất cho các dịch vụ web RESTful, nhưng các phiên bản trước của khung công tác Zend đã thiếu bộ điều khiển còn lại. Tôi đã tạo riêng cho Zend và chỉ sử dụng chúng.

Nếu bạn thực sự muốn có một khung công tác phù hợp với webservice, có rất nhiều dự án nhỏ hơn, không có dự án nào gần với điểm đến nơi tôi đặt cược vào trang trại đó (hoặc sử dụng nhiều hơn một bản trình diễn) dự án).

Lời khuyên của tôi tuân theo khuôn khổ bạn đã biết, xây dựng bộ điều khiển còn lại của riêng bạn (nếu thiếu). Một số chức năng cơ bản để lấy đầu ra và chuyển đổi nó thành XML, json, v.v ... có thể cần được tạo ra, nhưng bạn sẽ tốn ít thời gian hơn là cố gắng tìm hiểu một khung công tác mới. Thêm vào đó, với một biggie, bạn sẽ không bị mắc kẹt với việc phải duy trì một cơ sở mã từ bỏ một ai đó đã mệt mỏi vì theo kịp.

6

Thực ra, Recess PHP có vẻ hoàn hảo cho điều đó ... vốn đã yên tĩnh trước mọi thứ khác.

Cập nhật: Tôi cũng đã chơi với Slim Framework gần đây. Đó là một công cụ khá thú vị về cơ bản là tương đương PHP của Express.js cho nút. Nó là cực kỳ hiệu quả, trọng lượng nhẹ, và thử nghiệm điều khiển.

0

Tôi khuyên bạn nên sử dụng Zend Framework cho các công việc lặt vặt như thế này, cụ thể là vì nó được viết theo cách bạn có thể sử dụng bit và phần của nó mà không cần phải áp dụng hành vi của toàn bộ khuôn khổ. Ví dụ, trong ứng dụng của tôi, tôi sử dụng phần Zend_Db của khung công tác cho các hàm liên quan đến cơ sở dữ liệu và ORM, nhưng tôi sử dụng các đối tượng và khung công tác khác cho các phần khác của ứng dụng.

Khi bạn chỉ ra, hầu hết các khung công tác khác được viết với nhiều giả định về loại ứng dụng bạn đang hy vọng xây dựng (một trong những nhược điểm của mô hình quy ước trên cấu hình).

1

Symfony2 có một khái niệm thú vị miễn là bạn đang tập trung vào HTTP (và bổ sung, nó cũng có CLI (giao diện dòng lệnh).

Đó là khuôn khổ ít hơn nhưng nhiều thư viện khung trong đó bạn có thể chọn các phần bạn cần với một hạt nhân nhỏ cung cấp trừu tượng HTTP cơ bản. Khái niệm nhẹ này giữ đủ chỗ để trang trải rất nhiều cho logic ứng dụng của bạn trong khi không quá nghịch đảo.

Ngoài ra nó cũng được thử nghiệm, có một API được xác định và cho phép dễ dàng mở rộng với tiêm phụ thuộc và được gọi là bó.

Nếu bạn bắt đầu mới và sử dụng PHP, hãy bắt đầu với symfony2.

0

Chắc chắn mọi người đã ngừng sử dụng các dịch vụ an toàn vào năm 2012?

Nếu quen thuộc với khung công tác Ruby on Rails Yii PHP thì đáng xem xét.

Có lẽ đáng để dành một giờ với mỗi khung và xem cái nào bạn thấy dễ sử dụng nhất.

0

Dịch vụ web đơn giản có thể được tạo rất dễ dàng. Bạn sẽ không sử dụng bất kỳ khung công tác nào nhưng vì bạn sẽ đi sản xuất ... bạn cần phải lo lắng về sự an toàn và tính linh hoạt của và tính linh hoạt.

Thực tế nó sẽ thực sự dễ dàng hơn nếu bạn sử dụng một khuôn khổ để quản lý API của mình. Tôi đề nghị bạn đi cho một khung nhẹ.

Toàn bộ quan điểm của khung công tác là xử lý các tác vụ phổ biến và những thứ không tẻ nhạt. REST API thường được xây dựng với PHP, vì vậy rất nhiều khung công tác tồn tại. Cá nhân, tôi sẽ sử dụng một khung công tác nhẹ mỏng như chỉ đơn giản là để xử lý những thứ như định tuyến URI, phân tích cú pháp/làm sạch dữ liệu yêu cầu và tạo ra phản hồi.

Bạn có nhiều tùy chọn như vậy: http://davss.com/tech/php-rest-api-frameworks/

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