Smarty

Phần mềm chụp màn hình:
Smarty
Các chi tiết về phần mềm:
Phiên bản: 3.1.5
Ngày tải lên: 11 May 15
Nhà phát triển: New Digital Group, Inc.
Giấy phép: Miễn phí
Phổ biến: 1

Rating: nan/5 (Total Votes: 0)

Smarty không thực sự là một "Template Engine", nó sẽ được mô tả chính xác hơn là một "Template / Presentation Framework." Nghĩa là, nó cung cấp cho các lập trình viên và mẫu thiết kế với vô số công cụ để tự động hóa các nhiệm vụ thường xử lý tại các lớp trình bày của một ứng dụng. Tôi nhấn mạnh đến Khung word vì Smarty không phải là một tag-thay thế đơn giản mẫu động cơ. Mặc dù nó có thể được sử dụng cho một mục đích đơn giản như vậy, trọng tâm của nó là phát triển nhanh chóng và không gây đau đớn và triển khai các ứng dụng của bạn, trong khi duy trì hiệu suất cao, khả năng mở rộng, an ninh và phát triển trong tương lai.
Vì vậy, là Smarty phù hợp với bạn? Những gì nó đi xuống đến là sử dụng đúng công cụ cho công việc. Nếu bạn muốn thay thế biến đơn giản, bạn có thể muốn nhìn vào một cái gì đó đơn giản hơn hay thậm chí cuộn của riêng bạn. Nếu bạn muốn có một khuôn khổ khuôn mẫu mạnh mẽ với nhiều công cụ để hỗ trợ bạn như ứng dụng của bạn phát triển trong tương lai, Smarty có thể là một lựa chọn tốt.
Tại sao sử dụng nó?
Một trong những mục tiêu Smartys thiết kế chính là để tạo thuận lợi cho việc tách các mã ứng dụng từ trình bày. Thông thường, các mã ứng dụng có chứa các logic nghiệp vụ của ứng dụng của bạn, viết và duy trì trong mã PHP. Mã này được duy trì bởi các lập trình viên. Các bài trình bày là cách nội dung của bạn được trình bày cho người dùng cuối, được viết và được duy trì trong các tập tin mẫu. Các mẫu được duy trì bởi các nhà thiết kế mẫu.
Tại chức năng cơ bản nhất của nó, các mã ứng dụng thu thập nội dung, gán nó cho các mẫu động cơ và hiển thị nó. Các nội dung có thể là một cái gì đó giống như tiêu đề, khẩu hiệu, tác giả và cơ thể của một bài báo. Các ứng dụng mã không có mối quan tâm như thế nào nội dung này sẽ được trình bày trong bản mẫu. Các nhà thiết kế mẫu có trách nhiệm trình bày. Họ sửa các tập tin mẫu, thêm đánh dấu và đưa nó đến khi hoàn thành. Điều này thường liên quan đến những thứ như các thẻ HTML, cascading style sheets và các công cụ khác được cung cấp bởi các mẫu động cơ.
Mô hình này phục vụ nhiều mục đích:
) Nhà thiết kế không thể phá vỡ các mã ứng dụng. Họ có thể gây rối với các mẫu như họ muốn, nhưng mã vẫn còn nguyên vẹn. Các mã này sẽ được thắt chặt hơn, an toàn hơn và dễ dàng hơn để duy trì.
) Lỗi trong các mẫu được giới hạn trong Smartys thói quen quản lý lỗi, làm cho họ như là đơn giản và trực quan nhất có thể cho các nhà thiết kế.
) Với trình bày trên lớp riêng của mình, các nhà thiết kế có thể thay đổi hoặc hoàn toàn thiết kế lại nó từ đầu, tất cả mà không cần sự can thiệp từ các lập trình viên.
) Các lập trình viên không rối tung với các mẫu. Họ có thể đi về việc duy trì các mã ứng dụng, thay đổi cách thức các nội dung được mua lại, làm cho quy tắc kinh doanh mới, vv mà không làm phiền các lớp trình bày.
) Templates là một đại diện gần gũi của những gì các kết quả cuối cùng sẽ được, đó là một cách tiếp cận trực quan. Nhà thiết kế không quan tâm thế nào nội dung đã cho mẫu. Nếu bạn có dữ liệu liên quan trong các mẫu như một câu lệnh SQL, điều này mở ra nguy cơ phá vỡ mã ứng dụng vô tình xóa hoặc thay đổi bởi các nhà thiết kế.
) Bạn không được mở máy chủ của bạn để thực thi mã PHP tùy ý. Smarty có nhiều tính năng bảo mật được xây dựng trong thiết kế như vậy sẽ không vi phạm an ninh, cho dù cố ý hay vô tình. Họ chỉ có thể làm những gì họ được giới hạn trong các mẫu.
Mặc dù mã ứng dụng được tách ra từ trình bày, điều này không nhất thiết có nghĩa là logic mà được tách ra. Các ứng dụng mã số rõ ràng là có logic, nhưng các mẫu có thể có logic dựa trên các điều kiện mà nó là dành cho chỉ trình bày. Ví dụ, nếu các nhà thiết kế muốn thay thế màu sắc dòng của bảng hoặc trên trường hợp một số nội dung được phân công, họ có thể. Đây là logic trình bày, một cái gì đó các lập trình viên không cần quan tâm. Làm thế nào thường có bạn đã trình bày một số hiển thị trong một cột duy nhất và sau đó bạn muốn có nó trong hai hoặc ba cột, do đó, các mã ứng dụng cần điều chỉnh để thích ứng với điều này? Một cách tiếp cận tốt hơn là để chỉ định các nội dung trong một mảng duy nhất và để cho các mẫu xử lý các bài thuyết trình. Điều này sẽ đơn giản hóa các ứng dụng của bạn và giữ cho mẫu của bạn linh hoạt. Smarty cung cấp các công cụ để xử lý tình huống này.
Điều này không có nghĩa là Smarty ngăn bạn đưa logic ứng dụng trong các mẫu, bạn phải có một chút tự kỷ luật. Dưới đây là một ví dụ về cách nhúng logic kinh doanh trong các mẫu (đó là đúng, tránh làm điều này nếu có thể):
{If $ smarty.session.user và ($ user_type eq "biên tập viên" hoặc $ user_type eq "admin")}
chỉnh sửa
{/ If}
Logic sẽ kiểm tra nếu người dùng đang đăng nhập và họ hoặc là một biên tập viên hoặc quản trị viên, sau đó họ được phép chỉnh sửa này để các hộp kiểm chỉnh sửa hiển thị lên. Đó là logic mà thuộc về các mã ứng dụng. Mẫu không quan tâm đến những gì thông tin người dùng này có, nó chỉ cần biết nếu hộp sửa được hiển thị hay không! Vì vậy, chúng ta hãy xem xét một cách tiếp cận phù hợp hơn:
{If $ edit_flag}
chỉnh sửa
{/ If}
Nó là đến các lập trình ứng dụng để gán $ edit_flag, một đơn giản và dễ hiểu biến trong các mẫu. Bằng cách này, các mẫu không còn dựa vào cấu trúc dữ liệu cơ bản của bạn. Nếu định dạng của cấu trúc dữ liệu session bao giờ thay đổi, không có gì cần phải được điều chỉnh trong các mẫu.
Bây giờ cho phép xem xét một vài điều bạn có thể làm với Smarty. Một điều có thể làm là chức năng tùy chỉnh. Đây là những thẻ trong mẫu mà thực hiện một nhiệm vụ nhất định. Ví dụ:
{File html_image = "masthead.gif"}
Ở đây chúng ta có một chức năng gọi là "html_image". Chức năng này có các hình ảnh được đưa ra trong "tập tin" thuộc tính và hiện tất cả các công việc cần thiết để đến với các mã HTML sau đây:

Các chức năng chụp ảnh đã làm các việc vặt để tìm ra chiều cao và chiều rộng và cung cấp những cờ khẩu mặc định. Tất nhiên bạn chỉ có thể sử dụng các thẻ HTML tĩnh trong các mẫu thay thế, nhưng điều này chứng tỏ một chức năng tùy chỉnh có thể được sử dụng để đơn giản hóa một nhiệm vụ rất phổ biến. Các nhà thiết kế có thể tập trung vào thiết kế và ít hơn vào các công cụ kỹ thuật. Hơn nữa, nếu các nhà thiết kế quyết định thả trong một hình ảnh kích thước Ngữ khác nhau, các mẫu không cần chỉnh.
html_image là một chức năng mà đi kèm với Smarty. Bạn cũng có thể thực hiện các chức năng tùy chỉnh của riêng bạn. Dưới đây là một ví dụ về những gì người ta có thể trông giống như:
{Type html_link = "bài viết" id = "abc123" text = "Fire sẽ ra Hotel"}
Điều này được sử dụng một chức năng tùy chỉnh được gọi là "html_link". Nó đi kèm với mã HTML sau đây:
Fire sẽ ra khách sạn
Điều này không thực hiện những gì? Đối với một, các nhà thiết kế không cần phải quan tâm đến định dạng của một URL đến một bài viết. Với URL mã hóa cứng, những gì sẽ xảy ra nếu một ngày các lập trình quyết định để làm sạch những thứ lên, và thay đổi cú pháp URL từ /display_article.php?id=abc123 đến / ART / abc123? Chúng tôi sẽ phải chỉnh sửa mọi mẫu với một URL bài viết. Đây chỉ là một ví dụ về cách một hàm mẫu có thể làm cho mẫu dễ dàng hơn để duy trì.
Bây giờ cho một chút về lập trình và các mẫu. Trước đó nó đã được đề cập rằng các lập trình viên không có người chăm sóc cho những gì các mẫu làm với nội dung. Ở một mức độ khái niệm này là đúng, nhưng trong thực tế, bạn sẽ không mong đợi các thiết kế mẫu để có để xây dựng tất cả các mẫu trong không khí mỏng. Sau khi tất cả, logic kinh doanh không xác định những nội dung được gán cho các mẫu. Vì vậy, các lập trình viên thường sẽ thiết lập bộ xương mẫu cho các nhà thiết kế để bắt đầu. Điều này thường có các thành phần nguyên liệu như các biến nội dung và phần vòng, và có thể một vài thẻ đánh dấu đơn giản để họ không bắt đầu với các nội dung trong một mess lớn. Dưới đây là một ví dụ về một mẫu xương mà vòng qua một danh sách các bài báo và hiển thị chúng trong một bảng:


{Tên section = loop nghệ thuật = $ bài viết}


{/ Section}
{$ bài viết [nghệ thuật] .headline}
{$ bài viết [nghệ thuật] .date}
{$ bài viết [nghệ thuật] .author}

Các đầu ra có thể giống như thế này:







Làm thế nào phía tây đã giành chiến thắng
02 Tháng 12 1999
John Wayne
Team thua, HLV bỏ
02 tháng hai 2002
John Smith
Gourmet Nấu ăn
23 tháng 1 năm 1954
Betty Crocker

Bây giờ cho một số câu hỏi phổ biến:
Tại sao sử dụng mẫu ở tất cả? Điều gì là quá khó khăn về cách viết Thay vì {$ title}?
Làm những điều dễ dàng hơn để đọc không phải là một mục tiêu thiết kế, nhưng nhiều hơn một tác dụng phụ. Sử dụng các mẫu có lợi ích rất lớn, nhiều trong số đó đã được giải thích ở trên. Kể từ khi chúng tôi đang ở trong một môi trường mẫu anyways, {$ title} là ít tạp hơn , Đặc biệt là khi bạn bắt đầu nhìn nó trong trang dài của nội dung, do đó, nó là khá hiển nhiên rằng một cú pháp đơn giản giúp để làm mẫu dễ dàng hơn để đọc và duy trì.
Template mất thời gian để phân tích, làm cho các ứng dụng chậm hơn nhiều.
Điều đó có thể đúng trong một số trường hợp, nhưng với Smarty nó là không có chậm hơn so với thực hiện một kịch bản PHP. Về việc thực hiện đầu tiên của một mẫu, Smarty chuyển đổi các file template thành kịch bản PHP (gọi là mẫu biên dịch.) Sau đó, kịch bản PHP là chỉ bao gồm. Cặp vợ chồng này có một máy gia tốc PHP và bạn thực sự có một môi trường khuôn mẫu nhanh chóng với chi phí tối thiểu.
Smarty là quá phức tạp, làm thế nào nó có thể được nhanh vậy?
Lõi Smarty là khá nạc xem xét những gì nó có khả năng. Hầu hết các chức năng của nó nằm trong các plugin. Các plugin kiến ​​trúc được thiết kế để chỉ các plugins cần thiết được nạp theo yêu cầu. Với khuôn khổ này, thêm thậm chí hàng trăm plugin mới sẽ không ảnh hưởng đến hiệu suất. Điều này làm cho Smarty nhanh, khả năng mở rộng và linh hoạt.
Smarty cũng có tính năng bộ nhớ đệm có thể tự động làm mới và giữ các phần của trang Uncached tại theo ý thích của bạn. Caching lưu trữ các sản phẩm của các mẫu biên soạn, tiết kiệm sự cần thiết phải thực hiện chúng trên mỗi lời gọi.
Tất cả điều này nói về máy gia tốc, như thế nào Smarty chạy mà không có một?
Trên thực tế nó chạy khá tốt mà không có một. Smarty không yêu cầu một máy gia tốc, nhưng các mẫu tập tin bản thân sẽ tận dụng lợi thế của một trong, một cái gì đó mà là duy nhất cho Smarty (AFAIK). Nếu bạn không có một máy gia tốc, thực hiện mẫu là không nhanh nhưng không chậm bằng bất kỳ phương tiện, vì họ không phân tích! Bạn cũng giữ lại tất cả những lợi ích khác và các tính năng của Smarty. Ngoài ra, kể từ khi các máy gia tốc là tự do sẵn có không phải là thực sự là một cái cớ để không được sử dụng một. Họ sẽ giúp hiệu suất với tất cả các ứng dụng PHP, sử dụng Smarty hay không.
Làm thế nào nó có thể được dễ dàng hơn để duy trì?
Một số điều không thể giải thích được, nhưng chỉ có kinh nghiệm. Lợi ích của việc tách logic ứng dụng từ trình bày không thể được nhấn mạnh đủ. Smarty cũng có một số tính năng xử lý lỗi tốt đẹp và tích hợp điều khiển gỡ lỗi để bạn có thể xem các mẫu phân cấp và phân công các biến trong nháy mắt. Thêm tính năng tùy chỉnh để Smarty là dễ dàng như thả chúng vào thư mục plugin và nhắc đến họ trong các mẫu.
Các thẻ mẫu không dựa trên XML, biên tập viên của tôi không thích nó.
Các {} ký tự phân cách chỉ là một mặc định, họ dễ dàng để phân biệt giữa các thẻ HTML. Nếu bạn không thích chúng, thay đổi dấu phân cách của bạn hoặc có thể là một cái gì đó giống như XMLish Ngoài ra còn có rất nhiều đóng góp cho người sử dụng dreamweaver và như thế, cung cấp cho họ một cái nhìn trong khu vực đóng góp Của.
Đó là Smarty trong Tóm lại, hy vọng bạn có thể thêm nó vào kho vũ khí của bạn các công cụ để xây dựng ứng dụng web. Để thực sự tìm hiểu thêm, hãy đọc top dẫn xuống dưới, tham gia các diễn đàn và xem những gì mọi người đang thảo luận

Tính năng .

  • Caching: Smarty cung cấp tính năng bộ nhớ đệm hạt mịn cho bộ nhớ đệm tất cả hoặc một phần của một trang web trả lại, hoặc để lại phần uncached. Các lập trình viên có thể đăng ký mẫu chức năng như khả năng lưu nhớ hoặc không cachable, Nhóm các trang được lưu trữ thành các đơn vị hợp lý cho việc quản lý dễ dàng hơn, vv.
  • Configuration Files: Smarty có thể gán biến kéo từ các tập tin cấu hình. Thiết kế mẫu có thể duy trì các giá trị chung cho một số mẫu trong một vị trí mà không có sự can thiệp từ các lập trình viên, và các biến cấu hình có thể dễ dàng được chia sẻ giữa các chương trình và trình bày các phần của ứng dụng.
  • Security: Templates không chứa mã PHP. Vì vậy, một nhà thiết kế mẫu được không tung ra với toàn bộ sức mạnh của PHP, nhưng chỉ có các tập hợp con của các chức năng được cung cấp cho chúng từ các lập trình viên (mã ứng dụng.)
  • Sử dụng dễ dàng và Duy trì: thiết kế trang Web không phải đối phó với cú pháp mã PHP, nhưng thay vì một cú pháp khuôn mẫu dễ sử dụng không khác nhiều so với đồng bằng HTML. Các mẫu này là một đại diện rất gần của sản phẩm cuối cùng, rút ​​ngắn đáng kể các chu trình thiết kế.
  • Modifiers Variable: Các nội dung của các biến giao thì có thể dễ dàng được điều chỉnh tại màn hình hiển thị thời gian với bổ, chẳng hạn như hiển thị trong tất cả các chữ hoa, html-thoát, định dạng ngày tháng, cắt bỏ các khối văn bản, thêm không gian giữa các nhân vật, vv Một lần nữa , điều này được thực hiện không có sự can thiệp từ các lập trình viên.
  • Template Chức năng: Nhiều chức năng có sẵn cho các thiết kế mẫu để xử lý các tác vụ như tạo ra các đoạn mã HTML (dropdowns, bảng, cửa sổ pop-up, vv), hiển thị nội dung từ các mẫu khác trong dòng, Looping trên mảng nội dung , định dạng văn bản cho sản lượng e-mail, đi xe đạp mặc dù màu sắc, vv.
  • Filters:. Các lập trình viên có quyền kiểm soát hoàn toàn của mẫu đầu ra và biên soạn nội dung mẫu với pre-bộ lọc, sau lọc và đầu ra bộ lọc
  • Tài:.
  • Mẫu có thể được kéo từ bất kỳ số nguồn bằng cách tạo ra các trình xử lý tài nguyên mới, sau đó sử dụng chúng trong các mẫu
  • Plugins: Hầu như mọi khía cạnh của Smarty được điều khiển thông qua việc sử dụng các plugins. Họ nói chung là dễ dàng như thả chúng vào thư mục plugin và sau đó nhắc đến họ trong các mẫu hoặc bằng cách sử dụng chúng trong các mã ứng dụng. Nhiều người dùng đóng góp, cộng đồng cũng có sẵn. (Xem phần bổ sung của các diễn đàn và wiki.)
  • Add-ons: Nhiều người dùng cộng đồng góp phần Add-ons có sẵn như Pagination, Form Validation, Drop Down Menus, Calander ngày hái, vv Những công cụ này giúp tăng tốc độ chu kỳ phát triển, không có nhu cầu để lại phát minh ra bánh xe hoặc debug mã số đó là đã ổn định và sẵn sàng cho việc triển khai. (Xem phần Add-ons của diễn đàn và wiki.)
  • Debugging:. Smarty đi kèm với một
  • xây dựng trong gỡ lỗi giao diện điều khiển để thiết kế mẫu có thể xem tất cả các biến số được giao và các lập trình viên có thể tra tốc độ dựng hình mẫu
  • Biên dịch:
  • Smarty mẫu biên dịch thành mã PHP đằng sau hậu trường, loại bỏ thời gian chạy phân tích của các mẫu.
  • Performance: Smarty thực hiện rất tốt, mặc dù tính năng thiết lập rộng lớn của nó. Hầu hết các khả năng của Smarty nằm trong plugins được tải theo yêu cầu. Smarty đi kèm với rất nhiều công cụ thuyết trình, giảm thiểu mã ứng dụng của bạn và kết quả nhanh hơn, ít xảy ra lỗi ứng dụng phát triển / triển khai. Mẫu Smarty được biên dịch để PHP tập tin nội bộ (một lần), loại bỏ file mẫu tốn kém quét và tận dụng tốc độ của máy gia tốc PHP op-code.

là gì mới trong phiên bản này:

  • trở lại thay đổi truy cập siêu toàn cầu, và thay vì dựa trên USE_SUPER_GLOBALS cho bảo mật

là gì mới trong phiên bản 2.6.23 trở lên:

  • backticks dải từ {} toán phương trình (mohrt)
  • lỗi khi ném mẫu tồn tại nhưng không thể đọc được (mohrt)

là gì mới trong phiên bản 2.6.22:

  • Phiên bản này đề cập đến một vấn đề gặp phải với Smarty 2.6 0,21 phát hành và một lỗi động cơ PCRE trong PHP 5.2. Phương pháp xâu chuỗi đã được loại bỏ để tránh lỗi. Phương pháp chaining sẽ tái xuất hiện trong Smarty 3.

Phần mềm khác của nhà phát triển New Digital Group, Inc.

Smarty
Smarty

13 Apr 15

Ý kiến ​​để Smarty

Bình luận không
Nhập bình luận
Bật hình ảnh!