2010-05-30 36 views
6

Tôi đã đến Smarty vốn là một công cụ tạo mẫu. Nhưng cũng có các khung công tác Zend, CakePHP. Smarty như Zend hay chúng hoàn toàn khác nhau? Smarty chỉ tách logic khỏi màn hình - điều này tương tự như một khung công tác như Zend?Sự khác nhau giữa Smarty và Zend là gì?

Trả lời

12

Smarty là một công cụ mẫu trong khi Zend là một khuôn khổ php hoàn chỉnh.

Smarty

Smarty là một hệ thống mẫu web viết bằng PHP. Smarty chủ yếu được quảng bá như một công cụ để tách mối quan tâm, đó là một chiến lược thiết kế chung cho một số loại ứng dụng nhất định. [1] [2]

Smarty tạo nội dung web bằng cách vị trí thẻ Smarty đặc biệt trong tài liệu. Các thẻ này là được xử lý và thay thế bằng mã khác .

Thẻ là chỉ thị cho Smarty rằng được bao quanh bởi các dấu phân tách mẫu. Các chỉ thị này có thể là các biến, biểu thị bằng ký hiệu đô la ($), , các câu lệnh logic hoặc vòng lặp. Smarty cho phép các lập trình viên PHP xác định các chức năng tùy chỉnh có thể được truy cập bằng cách sử dụng các thẻ Smarty .

Smarty được thiết kế để đơn giản hóa ngăn cách, cho phép trình bày trang web để thay đổi riêng biệt từ phía sau. Lý tưởng nhất, điều này giúp giảm chi phí và nỗ lực liên quan đến bảo trì phần mềm. Khi áp dụng thành công chiến lược phát triển này, các nhà thiết kế được che chắn từ mã hóa phía sau và lập trình viên PHP được che chắn từ mã trình bày .

Zend

ZF là một khuôn khổ use-tự nguyện. Không có mô hình hoặc mô hình phát triển duy nhất mà tất cả người dùng Zend Framework phải tuân theo, mặc dù ZF cung cấp các thành phần cho các mẫu thiết kế MVC, Bảng dữ liệu cổng và Cổng dữ liệu hàng. Zend Framework cung cấp các thành phần riêng cho nhiều yêu cầu chung khác trong phát triển ứng dụng web. [1]

Zend Framework cũng tìm cách thúc đẩy các phương pháp hay nhất về phát triển web trong cộng đồng PHP; các quy ước không thường được sử dụng trong ZF như trong nhiều khung công tác khác, thay vào đó các đề xuất được đưa ra bằng cách đặt các giá trị mặc định hợp lý có thể bị ghi đè cho mỗi yêu cầu cụ thể của ứng dụng ZF. [4]

+2

Vì vậy, Smarty là 'cơ bản' hơn và chỉ tách mã của bạn thành logic/hiển thị. Trong khi Zend cung cấp cho bạn toàn bộ khuôn khổ, chức năng và nội dung. ? – jpjp

+0

@jpjp: Đúng vậy :) – Sarfraz

+1

Để lặp lại những gì anh ta nói. Smarty chỉ là một công cụ tạo mẫu. Zend là một khuôn khổ php hoàn chỉnh. Zend có rất nhiều thành phần mà bạn có thể cắm vào và phát triển, bao gồm một công cụ mẫu, danh sách điều khiển truy cập, ftp, vv. Hãy nghĩ về Zend như một thư viện các công cụ trong khi Smarty chỉ là một công cụ. – WhiskeyTangoFoxtrot

2

Zend là một khung ứng dụng web nguồn mở.

Smarty là hệ thống mẫu web.

Kiểm tra ZendSmarty.

1

Zend là một triển khai JIT của ngôn ngữ PHP. Nó xử lý tất cả mã PHP của bạn và biên dịch nó thành mã máy để thực thi. Các khung làm việc đệm như APC cung cấp bộ nhớ đệm mã hóa để cải thiện hiệu năng.

Smarty là ngôn ngữ mẫu được triển khai trong PHP. Nó tách logic kinh doanh và trình bày.

Zend -> PHP -> Smarty -> Website của bạn

+0

Tôi nghĩ OP có nghĩa là Zend Framework, không phải là Zend Engine cơ bản :-) – richsage

+0

Vâng đọc các câu trả lời khác khá rõ ràng. Oh well! –

3

Một động cơ mẫu (Smarty) chỉ đơn giản là cung cấp một phương pháp để tách màn hình từ mã thực tế.

Một khung (Zend, CakePHP, Drupal vv) về cơ bản cung cấp một phần mở rộng ngôn ngữ trên đầu trang của PHP. Sau đó, bạn sử dụng 'ngôn ngữ' này để viết trang web của mình. Nó cung cấp cho bạn các phương pháp để đạt được các nhiệm vụ phức tạp dễ dàng hơn (ít nhất là ít nhất). Nó thường giúp với những thứ như truy cập cơ sở dữ liệu, bảo mật, i18n/l10n, bộ nhớ đệm, templating, v.v.

+0

đó là mô tả hay! Vì vậy, với một khuôn khổ, họ làm tất cả các công việc "bẩn" và bạn chỉ cần sử dụng các chức năng? do đó, một khuôn khổ có giống như các chức năng có thể giúp bạn với xác nhận và các công cụ? – jpjp

+0

Yup. Ví dụ: xem http://book.cakephp.org/view/125/Data-Validation –

0

Bạn đang trộn một số khái niệm đó.

Công cụ tạo mẫu không tách logic khỏi hiển thị nhưng đó là phương tiện để đạt được điều đó. Mặt khác, một khung công tác là một trừu tượng trong đó mã chung cung cấp chức năng chung có thể được ghi đè có chọn lọc hoặc chuyên biệt bởi mã người dùng cung cấp chức năng cụ thể [Wikipedia]. Một số khung công tác, bao gồm khung công tác Zend, cung cấp với việc thực hiện mô hình kiến ​​trúc MVC (Model View Controller), làm cho nó đơn giản để cô lập sự kiên trì, logic và các lớp trình bày.

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