Tôi chỉ mới bắt đầu với CakePHP và tự hỏi liệu có ai đó có thể giải thích lợi ích thực sự của việc sử dụng JsHelper của mình trên mã hóa thường xuyên jQuery và JS tĩnh hay không. Cho đến nay, tôi không thực sự thấy làm thế nào người trợ giúp sẽ làm cho việc tạo kịch bản dễ dàng hơn hoặc nhanh hơn.Tại sao lại sử dụng JsHelper của CakePHP?
Trả lời
vì lý do tương tự tôi đã viết Trình trợ giúp GoogleMaps;) ý tưởng cơ bản là bạn có thể sử dụng cùng ngôn ngữ (trong trường hợp này) như phần còn lại của ứng dụng và bạn có thể chuyển vào bất kỳ mảng và mảng tùy chọn php nào giữ giá trị dữ liệu và người trợ giúp được coi là chăm sóc bánh của nó.
nó tương tự như cakephp như một trình bao bọc cho php. nó kết thúc tốt đẹp mã của bạn và có thể giúp giữ cho nó khô ráo.
không hiểu sai - tôi chưa bao giờ tự mình sử dụng trình trợ giúp js/ajax. nhưng tôi có thể hiểu lý do tại sao một số muốn chọn nó bằng cách viết JS mình. trong một số trường hợp, đầu ra thậm chí có thể được "chính xác" hơn (nếu bạn không biết về các vấn đề tiềm năng). ví dụ: lỗi IE: nếu bạn xuất {} tùy chọn cho mình và quên xóa tùy chọn cuối cùng, nó sẽ không chạy trong IE6, v.v. không thể xảy ra với người trợ giúp như trình bao bọc - ít nhất nó là shoudnt;)
do đó, với helper nó hoặc không chạy ở tất cả hoặc chạy như một nhóm các nhà phát triển có tay nghề cao thiết kế nó để làm việc. đặc biệt là đối với các nhà phát triển không có kỹ năng, đây thường là một tình huống có lợi: nhanh và đáng tin cậy hơn. bạn luôn có thể bắt đầu chuyển sang công cụ thủ công sau này (nếu bạn thấy đầu ra JS thực tế và bắt đầu hiểu nó).
cũng - khi bất kỳ phương pháp js nào cần phải thay đổi vì một số lý do, cách bạn sử dụng trình trợ giúp thường không. nếu bạn không sử dụng trừu tượng, bạn có thể thấy mình cần điều chỉnh thủ công tất cả các lần xuất hiện.
Giống như bất kỳ Người trợ giúp nào, JsHelper là một cách để phân tích nội dung trong chế độ xem của bạn theo cách đơn giản. Nhưng việc đưa mã JS/jQuery "thô" vào chế độ xem của bạn sẽ hoạt động tốt bằng cách sử dụng ví dụ $this->Html->scriptBlock
.
Không có lợi ích thực sự mà tôi có thể nghĩ ra ngoài việc jQuery thay đổi cú pháp của một hàm cụ thể, bạn sẽ không cần phải điều chỉnh mã của mình khi sử dụng JsHelper. được thực hiện, thay vì bạn phải thay đổi tất cả mã JS "thô" của bạn trong tất cả các chế độ xem của bạn.
JsHelper giống như giàn giáo: rất tiện dụng nếu bạn chỉ cần những thứ cơ bản và chỉ những thứ cơ bản. Đó là, ajaxify một pagination hoặc một số yếu tố. Ngoài ra, tốt hơn là viết mã của riêng bạn, bởi vì bạn sẽ cần những thứ khi bạn cần chúng, chứ không phải cách trình trợ giúp được căn chỉnh theo mặc định.
Như mọi thứ khác trong một khung công tác: đó là một công cụ. Kiểm tra yêu cầu của bạn và sử dụng các công cụ tốt nhất hiện có.
- 1. Tại sao CakePHP 2.0 không sử dụng AppController của tôi?
- 2. Tại sao lại sử dụng AsynchronousFileChannel của Java?
- 3. Tại sao lại sử dụng hashmap?
- 4. Tại sao lại sử dụng NSFetchedResultsController?
- 5. Tại sao lại sử dụng document.write?
- 6. Tại sao sử dụng trình trợ giúp CakePhp AJAX thay vì jQuery?
- 7. Tại sao CakePHP sử dụng các quy ước đặt tên số nhiều/số ít khác nhau?
- 8. Sử dụng Git với dự án CakePHP của bạn
- 9. Tại sao lại sử dụng biến j_username và SPRING_SECURITY_LAST_USERNAME?
- 10. Tại sao lại sử dụng Fragment # setRetainInstance (boolean)?
- 11. Tại sao MVC4 lại sử dụng Service Anti-Pattern Locator?
- 12. Tại sao sử dụng ETW trên EventLog và ngược lại?
- 13. Tại sao lại sử dụng khối "do {} if" trong Perl?
- 14. Tại sao sử dụng setTimeout trong hoãn lại
- 15. Tại sao một người sử dụng lại 'undefined`?
- 16. Tại sao ứng dụng asp.net của tôi lại ném ThreadAbortException?
- 17. Tại sao lại sử dụng lại UITableViewCell theo cách thủ công khi tải lại hàng?
- 18. Tại sao API TrueTime của Google lại khó sao chép?
- 19. Tại sao lại sử dụng khung mocking thay vì xoay vòng tay của chúng tôi?
- 20. Tại sao lại sử dụng Sơ đồ trang web của Google?
- 21. Tại sao sử dụng bộ nhớ String của Java lại cao?
- 22. Tại sao sử dụng NSObjectController
- 23. Tại sao sử dụng mysqli_close()?
- 24. Tại sao sử dụng DialogFragment?
- 25. tại sao sử dụng @ Url.Content
- 26. Tại sao sử dụng từ "invalidate" để yêu cầu xem lại để được vẽ lại?
- 27. Tại sao Sass lại tốt?
- 28. Tại sao Stream.Position lại dài
- 29. Tại sao TestComplete lại chậm?
- 30. Tại sao iframe lại chậm?
+1 chỉ vì tôi chưa bao giờ hiểu được nhu cầu. :) – deceze
điều tương tự đối với tôi :-) – nIcO