2012-04-20 24 views
9

Tôi đã sử dụng thông minh trong quá khứ, trong x-cart, jobberbase và thành phần jomestate của Joomla và một số thành phần Joomla khác. Tôi thấy rằng mọi thứ được kết hợp chặt chẽ trong x-cart và nhiều thứ dường như phức tạp hơn là chúng phải ở trong jobberbase và tôi có ấn tượng rằng điều này là do thông minh.Tôi có nên sử dụng công cụ mẫu thông minh với MVC như Yii không?

Bây giờ tôi sẽ sử dụng Yii trong một dự án, được đề xuất bởi khách hàng. Và bản thân Yii là khung MVC. Vì vậy, tôi nên sử dụng smarty với nó? Tôi muốn biết rằng tôi nên sử dụng smarty cho nó, tôi có nghĩa là sẽ có một số ưu của việc sử dụng smarty trong Yii? Hay không? Hoặc nó sẽ chỉ là một chi phí hoặc sẽ có một số khuyết điểm của việc sử dụng smarty trong nó? Tôi có hiểu biết về thông minh. Nhưng tôi nghĩ rằng đôi khi làm cho mọi thứ trở nên phức tạp hơn. Vì vậy, tôi muốn biết từ các bạn, đó chỉ là một ý nghĩ thống trị do các khuôn khổ xấu hoặc có một số thực tế trong đó, vì vậy tôi nên sử dụng thông minh hoặc có một số điều khác tốt hơn?

Trả lời

11

Là người quen sử dụng thông minh trước khi Yii tôi nói không có điểm.

Smarty là tuyệt vời vì nó ngăn bạn trộn logic và xem trong một tệp. Kiến trúc MVC định nghĩa rằng các bộ điều khiển (có chứa logic) và khung nhìn nên được tách biệt. Tôi khuyên bạn nên viết quan điểm của bạn như bạn sẽ trong các mẫu thông minh, nhưng chỉ cần sử dụng cú pháp php. Nếu bạn đang sử dụng một IDE tốt (như netbeans) nó sẽ tự động thụt lề mã của bạn quá (see code formatting in netbeans).

Cũng có một cái nhìn tại Alternative syntax for control structures

Có thể ý kiến ​​của Yii tạo

Yii bản thân có nguồn gốc từ Prado đó là dự án trước Qiang Xue. Prado có một ngôn ngữ hấp dẫn và Yii (ra khỏi hộp) tôi không cho rằng điều này có nghĩa là Qiang tin rằng một ngôn ngữ templating là không cần thiết.

Smarty Overhead

Smarty mẫu được tuân thủ để PHP một lần mỗi thay đổi (nếu bộ nhớ đệm được kích hoạt), điều này có nghĩa rằng hầu hết các chi phí chỉ xảy ra đối với các yêu cầu đầu tiên, nhưng tôi muốn thừa nhận vẫn còn một số chi phí trong các cuộc gọi hàm bổ sung để kiểm tra xem chế độ xem đã biên dịch có tồn tại hay không và điều này sẽ ảnh hưởng đến mọi yêu cầu. Vì vậy, có một chi phí để thông minh, nhưng nó có thể không đáng kể.

+0

Tôi hiểu cú pháp thay thế nhưng chỉ muốn konw đó là có lợi thế của smarty trong khi sử dụng kiến ​​trúc MVC đã được? hoặc sẽ có một chi phí không? – Hafiz

+0

Điều đó phụ thuộc hoàn toàn vào những gì bạn sẽ xem xét lợi thế của smarty? –

+0

Không có sự khác biệt giữa việc sử dụng smarty trong một ứng dụng riêng biệt và sử dụng nó trong một khung công tác. Trộn quan điểm và logic luôn luôn là thực hành xấu IMO. Nhưng nếu bạn nghiêm khắc với bản thân và các nhà phát triển khác, bạn không cần phải thông minh để thực thi –

1

Smarty sẽ không ở trên đầu nếu được biên dịch sang php.

tôi sẽ chỉ sử dụng Smarty khi có vai trò riêng của nhà phát triển và nhà thiết kế (ai muốn sử dụng Smarty)

Ngoài ra nó chỉ là một ngôn ngữ khác để học hỏi.

2

Smarty giống như bất kỳ ngôn ngữ mẫu nào, chi phí đắt đỏ.

Như Rasmus Lerdorf đã nói, PHP đã là một công cụ tạo mẫu. Có lý do gì để thêm một ngôn ngữ khác với các cấu trúc điều khiển khác, mà bạn đã có trong PHP không?

Công cụ tạo mẫu chỉ hữu ích vì chúng nhúng logic bộ nhớ cache. Nếu bạn không thể tự xây dựng một logic bộ nhớ đệm, hãy tìm hiểu nó.

+1

Bạn không cần sử dụng công cụ mẫu để có logic bộ nhớ cache trong yii, có một bản dựng trong bộ nhớ cache mà bạn có thể kích hoạt – darkheir

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