2008-11-19 56 views
8

Tôi đang chạy một trang web về PHP Frameworks, nhưng tôi không thể tìm thấy một định nghĩa chính xác cho nó, và tôi luôn luôn nghĩ một câu hỏi, làm thế nào để tạo ra một khuôn khổ PHP tốt? Tính năng, đặc điểm? Hướng dẫn sử dụng? Hiệu quả? Hay gì đó?Khung PHP là gì và khung tốt nhất là gì?

Trả lời

7

Một PHP Framework trong mắt tôi là một bộ sưu tập của các lớp học giúp bạn phát triển một ứng dụng web.

Trong công ty của tôi, chúng tôi sử dụng Khung công tác Zend. Tôi phải nói rằng bắt đầu với Framework này là khá khó khăn, nhưng nếu bạn có được cách sử dụng API và Hướng dẫn tham khảo bạn có một Framework tuyệt vời. Ngoài ra nó interessting bởi vì họ có Zend người ngồi trên dự án để họ có thể sử dụng những thủ đoạn nội bộ và nhận được một số hiệu suất tăng những người khác không thể có được.

gì cũng khác ZF từ những người khác là khả năng để tạo ra các chương trình dòng MVC không có rắc rối lớn.

+0

"để họ có thể sử dụng các thủ thuật nội bộ đó và nhận được một số hiệu suất mà người khác không thể đạt được". - thật vớ vẩn. Zend Framework được viết bằng PHP thuần túy, vì vậy nó không có nhiều tính năng hơn sau đó mọi người khác. Cách bạn sử dụng PHP là một câu hỏi khác. – cweiske

27

Yêu cầu một diễn đàn lập trình một khuôn khổ tốt là những gì giống như yêu cầu một diễn đàn xe một chiếc xe tốt là gì. Các ý kiến ​​rất khác nhau, và trong 95% các trường hợp, nó thực sự không quan trọng những gì bạn chọn, miễn là nó được phát triển tích cực. Hầu hết các câu trả lời của bạn sẽ dựa trên tôn giáo và không so sánh chủ quan. :)

14

Về cơ bản khung là cấu trúc mà bạn có thể chọn để xây dựng chương trình của mình. Nó có thể cho phép bạn kết nối với nhiều API khác nhau cũng như xác định cấu trúc của ứng dụng của riêng bạn. Tôi sử dụng khung công tác Zend. Nó không phải là dễ nhất để tìm hiểu, nhưng chắc chắn có mọi thứ bạn cần cho một ứng dụng tuyệt vời. Tôi sẽ đề nghị đi qua các hướng dẫn QuickStart trên trang web để có được quả bóng lăn với điều này. Nó sử dụng Model-View-Controller vốn rất cần thiết trong quan điểm của tôi. Một khi bạn đã cấu hình nó, nó làm cho mọi việc cực kỳ dễ dàng hơn!

Các khung công tác khác bao gồm CodeIgniter và Symfony. Một số giống như CodeIgniter cho dấu chân nhỏ hơn của nó. Đó là một vấn đề ưu tiên. Cho dù bạn chọn chắc chắn để sử dụng tài liệu trên các trang web vì nó là điều cần thiết để hiểu cách tốt nhất để sử dụng nó. Ngoài ra, đừng ngại leo lên từng mã một lần để hiểu rõ hơn cách mọi thứ hoạt động.

2

khuôn khổ PHP là một thư viện mà làm cho cuộc sống của nhà phát triển trang web dễ dàng hơn bằng ví dụ ẩn số phức tạp của giao thức HTTP hoặc bằng cách thêm một số chức năng hữu ích. Ví dụ: CakePHP thực hiện được gọi là MVC làm cho nhà phát triển nghĩ mức cao hơn HTTP. Đây là những gì tôi đã học được cho đến nay.

+2

Nó cũng đưa bạn đến PHP4. Kính thưa chúa. D: < –

+0

Nó không còn nữa. Tôi biết tôi đang trả lời một bài đăng hai tuổi, nhưng tôi chỉ đảm bảo rằng ai đó đọc bài viết này để tìm hiểu về các khung công tác (ví dụ: tôi) không nghĩ rằng đó vẫn là trường hợp. :) – Vache

10

Khung cung cấp giàn giáo có thể cho phép bạn phát triển nhanh hơn/sạch hơn. Chúng thường cung cấp các bộ công cụ cho cả các thành phần UI và truy cập cơ sở dữ liệu bên dưới.

Đối với (rất) dự án nhỏ, một khuôn khổ có thể quá mức cần thiết, nhưng thông thường, sẽ rất hữu ích khi cung cấp cho bạn nhiều mã có thể sử dụng lại được.

Một số khuôn khổ đáng chú ý cho PHP: Zend Framework CodeIgniter Symfony CakePHP Mojavi

A comparison chart. A more detailed review site.

+0

Không phải tất cả các khung công tác đều sử dụng giàn giáo, tức là. Tạo mã. Tôi nghĩ ít nhất Zend và CI không làm điều đó. – PhiLho

2

Có rất nhiều điều để nói cho các khuôn khổ - và các bài viết tốt ở đây. Tuy nhiên, hãy lưu ý rằng chúng không phải lúc nào cũng là giải pháp tốt nhất.Lý do khiến bạn muốn tránh họ là

  1. Do kích thước codebase họ có xu hướng chậm (Tôi đã nhìn thấy con số 10 lần đơn giản chậm hơn PHP cung cấp trang nhúng báo đối với Zend ví dụ - phải thừa nhận là một trong những những cái lớn hơn).

  2. Chúng có thể không linh hoạt bên ngoài 'miền' mà chúng có ý định làm việc. Việc mở rộng một khung làm việc gì đó không chuẩn có thể khó khăn hơn nhiều so với việc chỉ viết mã từ đầu.

  3. Một số sự hy sinh của mô đun là bắt buộc. Lợi thế của việc sử dụng hệ thống tệp mẫu/điều khiển đơn giản hơn (chẳng hạn như TinyButStrong) là mỗi trang là một đơn vị riêng biệt, điều này có xu hướng làm cho hệ thống của bạn dễ dàng hơn trong việc kiểm thử đơn vị và mạnh mẽ.

  4. Chúng có xu hướng dễ bị các vấn đề về kiểm soát phiên bản. Mọi thứ đều tốt đẹp và phát triển tốt nhất, nhưng sau khi bạn có hàng tá trang web được phát triển, bạn có thể thấy bạn đang sử dụng ba hoặc bốn phiên bản phát hành của khung công tác và bạn có mash-mash các codebases làm việc với - và đồng bộ hóa mọi thứ cần có thời gian bạn có thể sẽ không có.

Không có điều nào ở trên là lý do chính đáng để sử dụng khung, trong nhiều trường hợp, lợi thế sẽ đạt điểm cao hơn, nhưng bạn không nên liên hệ với họ mà không xem xét yêu cầu của bạn là gì và là giải pháp tốt nhất cho từng vấn đề cụ thể.

+0

họ có cập nhật các khuôn khổ (như Zend forexample) để làm việc với các phiên bản PHP mới mà không cần tôi thay đổi mã của tôi không? ngoại trừ việc thay thế khung công tác bằng khung mới) ...? –

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