2010-01-14 36 views

Trả lời

0

Trong trường hợp của bạn tôi sẽ đi với (theo thứ tự này):

  1. Kohana
  2. Zend Framework

Vì họ là dễ dàng hơn để nhặt (đặc biệt dành cho người mới bắt đầu) hơn Symphony.

16

Tôi sẽ không đề xuất bất kỳ khung công tác nào cho người biết chỉ những điều cơ bản. Thay vào đó, tôi khuyên bạn nên nắm vững OOP và các mẫu thiết kế phổ biến nhất trước tiên, bởi vì đó là những gì bạn sẽ tìm thấy trong các khuôn khổ này. Nó cũng không làm tổn thương để biết cách của bạn xung quanh các libs và các phần mở rộng PHP có sẵn khác nhau.

+3

Đồng ý với Gordon. Không có điểm nào nhảy vào bất kỳ khung công tác nào khi bạn không làm xước bề mặt. Đó là thời gian quý báu nên được dành cho việc học mysql, mysqli, PDO, xử lý chuỗi, RegEx, cookie, phiên, GD2 và tất nhiên OOP & Design Patterns thay vì khung công tác. – Viet

+0

Tôi không đồng ý.Trên thực tế, tất cả các nhà phát triển cấp cao trong nhóm của tôi đều làm việc trong việc xây dựng các khung công tác và các API trong khi các nhà phát triển cơ sở ít dễ mắc lỗi khi làm việc với các khung công tác. Thiên Chúa cấm nếu chúng ta không sử dụng các khuôn khổ mã sẽ được tất cả các nơi. Tôi đã định cư với CodeIgniter sau khi đánh giá tất cả những điều trên. Kohana không phải là một sản phẩm trưởng thành - ví dụ nó không quan tâm đến khả năng tương thích ngược có nghĩa là nó tốt cho việc học nhưng không phải cho sản xuất. – aleemb

+2

@aleemb Tôi không tin rằng các khung làm cho đàn em viết ít mã sai. Nếu đàn em không có đầu mối về OOD thích hợp, họ sẽ viết mã spaghetti OO, ví dụ: một sai lầm mới bắt đầu phổ biến với các khung MVC là tạo ra các bộ điều khiển chất béo và các mô hình thiếu máu. Điều này thường dẫn đến sao chép mã, mà về cơ bản là * mã trên tất cả các địa điểm *. Họ cũng thường ủng hộ thừa kế và sáng tác trên tổng hợp. Hoặc họ mã chống lại việc triển khai cụ thể thay vì giao diện. Cả hai dẫn đến nguyên khối, khó duy trì cấu trúc. Khung giúp giải quyết các vấn đề cụ thể, không viết mã sạch. – Gordon

3

Mặc dù ZF được thiết lập tốt và có tài liệu tốt, tôi sẽ đề nghị Kohana vì nó hơi phức tạp hơn một chút. Nó rất dễ dàng để bắt đầu mày mò với nó bằng cách đơn giản tải xuống hoặc sao chép ứng dụng mẫu từ github.

Bản giao hưởng không dành cho người mới bắt đầu. Tôi không đồng ý rằng các khung nói chung không dành cho người mới bắt đầu. Bắt đầu với một tập tin trống và không có khung nào để lại tất cả thiết kế kiến ​​trúc cho người không biết họ đang làm gì khi bắt đầu với một khung công tác nhẹ như Kohana cung cấp cho bạn nền tảng và tài liệu được tổ chức tốt để chạy trên mặt đất. Học OO mà không có bất kỳ ví dụ nào để hướng dẫn bạn là rất khó vì bạn chưa biết thiết kế OO tốt trông như thế nào.

Sau khi tải xuống/sao chép ứng dụng mẫu Kohana, nhấn docs và bạn sẽ viết mã OO được thiết kế tốt trong thời gian không.

6

Tôi nghĩ khung là một thanh kiếm hai lưỡi cho người mới bắt đầu. Bạn có thể làm nhiều hơn trong ít thời gian hơn trong nhiều trường hợp nhưng trong các trường hợp khác (không phải một vài) bạn sẽ phạm sai lầm vì bạn không hiểu sự phức tạp của mã khung. Tôi nghĩ rằng bạn sẽ có thể đọc một khuôn khổ và hiểu kiến ​​trúc của nó nếu bạn muốn sử dụng nó.

Điều đó có vẻ như các vết nứt thực sự sử dụng Symfony. Nó có thể trở thành hoặc có thể là khuôn khổ tốt nhất, linh hoạt nhất, mạnh mẽ nhất hiện có. Nhưng nó chắc chắn cần rất nhiều sự hiểu biết về các nguyên tắc lập trình cũng như công nghệ web và công nghệ máy chủ nói chung.

Cũng rất mạnh mẽ và dễ bắt đầu hơn nhiều là Zend Framework. Nó chắc chắn có thể làm nhiều hơn cho bạn hơn Kohana.

Nếu bạn muốn có khung nhẹ, Kohana cũng là một lựa chọn tốt. Nó đã đi một chặng đường dài những tháng cuối cùng và tôi nghĩ rằng nó nhanh chóng thiết lập chính nó như là yêu thích mới nhẹ. Vì vậy, tất cả trong tất cả, ba khung công tác mà bạn đã đề cập là ba khung công tác hàng đầu trên thị trường khung PHP vào lúc này và bạn sẽ không phạm sai lầm với bất kỳ khung công tác nào trong số đó.

+2

Họ khuôn khổ được gọi là "symfony";) –

1

Đối với người mới bắt đầu và sử dụng ba ví dụ bạn đã cho, tôi sẽ nói bắt đầu với Kohana (hoặc Trình đánh mã) vì những lý do này.

  1. Đó là một khung nhẹ mà là một điểm khởi đầu tốt cho sự phát triển PHP đầy đủ vì nó đóng vai trò như một hướng dẫn làm thế nào để tổ chức một dự án trong một ngôn ngữ mà không có rất nhiều cấu trúc trên của riêng nó
  2. Giới thiệu các khái niệm MVC cơ bản.
  3. Có các tính năng cơ bản sẽ hữu ích trong bất kỳ dự án PHP nào, ví dụ: bộ nhớ đệm, lọc dữ liệu vv

sau đó tôi sẽ di chuyển về Zend Framework nếu bạn có kế hoạch hoặc phấn đấu để làm việc trên các dự án lớn vì những lý do:

  1. Kohana tài liệu còn thiếu rất nhiều (đó là quản lý cho người mới bắt đầu bởi vì bạn kết thúc việc lén lút xung quanh và xem điều gì tạo nên sự đánh dấu khuôn khổ để họ không thấy như mã thánh đáng ngại này là một điểm cộng, nhưng trong một dự án lớn với thời hạn gây phiền nhiễu)
  2. Kohana thực thi các quy ước nhất định bất tiện trong các dự án lớn
  3. Thiếu các tính năng dành cho người trưởng thành hữu ích trong phát triển "doanh nghiệp", ví dụ: một hệ thống thử nghiệm đơn vị phong nha (có các mô-đun phpunit thô sơ để sử dụng trong Kohana và bạn chắc chắn có thể sử dụng PHPUnit cơ sở nhưng ngược lại Zend Framework đã mở rộng chức năng PHPUnit lên bộ khung tốt hơn)
  4. Hỗ trợ tốt hơn. Khung công tác Zend có Công ty Zend đằng sau nó cũng như một cộng đồng lớn. Đây là một chiến thắng lớn cho họ bởi vì nó thấm nhuần trong mọi thứ về khuôn khổ, ví dụ: cấu hình được cho là tốt hơn nhiều trong khung công tác Zend, các tính năng bảo mật mạnh mẽ hơn, tự động nạp lớp thích hợp dựa trên các không gian tên PEAR và nó có rất nhiều thành phần được đóng góp. Một số trong những lợi ích này bạn có thể nhún vai khi bắt đầu nhưng trở nên vô giá khi tham gia vào các dự án lớn.

Tôi đã không sử dụng symfony nhưng từ những gì tôi có thể nói cũng có một số tính năng hữu ích sau khi bạn hiểu hơn về PHP (ORM tốt hơn, dàn dựng tốt hơn, v.v.). Nội dung tóm tắt: Kohana là một khởi đầu tốt nhưng tôi khuyên bạn nên chống lại ở đó nếu bạn dự định truy cập vào PHP ngoài các trang web nhỏ.

0

Tôi luôn tự hỏi tại sao mọi người nói rằng không cung cấp một hệ thống kiểm tra đơn vị là một trở ngại lớn trong một khuôn khổ. Kiểm tra ứng dụng của bạn là trách nhiệm của bạn và bạn nên sử dụng các công cụ bạn cảm thấy thoải mái nhất. Tôi, ví dụ, thích SimpleTest và được làm phiền với khuôn khổ đi kèm với và thúc đẩy việc sử dụng hệ thống kiểm tra của riêng họ. Tại sao phải tìm hiểu hệ thống kiểm tra đơn vị khác khi SimpleTest là quá đủ?

Lưu ý rằng việc cung cấp hệ thống kiểm tra đơn vị và thử nghiệm đơn vị khung là hai điều hoàn toàn khác nhau. Khung nên được đơn vị kiểm tra, thời gian. Nhưng đối với nhiệm vụ này, các nhà phát triển của khung công tác có thể sử dụng công cụ họ thích nhất. Họ thậm chí có thể cuộn khuôn khổ kiểm tra của riêng mình (có vẻ như một số người không bao giờ tìm hiểu và tiếp tục phát minh lại bánh xe). Tuy nhiên, (IMHO) các thử nghiệm khuôn khổ nên được giữ riêng biệt với khung chính nó. Nó thậm chí không nên được bao gồm trong khuôn khổ tarball, nhưng được giữ như một gói riêng biệt mà chỉ quan tâm đến các nhà phát triển của khung công tác.

Chỉ cần 2c của tôi.

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