2008-09-03 24 views
19

Thông tin nền nhỏ:
Gần đây, tôi đã xem xét một vài khung công tác PHP và đã giảm xuống còn hai. Khung công tác Zend hoặc CodeIgniter.Tích hợp thông minh vào khuôn khổ Mã Igniter

Tôi thích CodeIgniter, vì thiết kế đơn giản của nó. Đó là xương rất trần, và nó chỉ được giữ đơn giản. Điều tôi không thích mặc dù là hệ thống mẫu yếu. Hệ thống mẫu quan trọng đối với tôi, bởi vì tôi sẽ làm việc với một nhà thiết kế khác. Có thể cho anh ta một hệ thống mẫu tốt là một điểm cộng lớn.

Zend là lựa chọn thứ hai, vì hệ thống mẫu tốt hơn được tích hợp sẵn. Zend là một con thú khác so với CodeIgniter. Nó nhấn mạnh "lỏng khớp nối giữa các mô-đun", nhưng là một khuôn khổ lớn hơn. Tôi không thích cảm thấy mình có nhiều thứ chạy dưới mui xe mà tôi chưa từng sử dụng. Đó là chi phí không cần thiết trong quan điểm của tôi, vì vậy tôi nghĩ về việc đưa một hệ thống mẫu vào CodeIgniter: Smarty.

Câu hỏi: Quá trình tích hợp Smarty vào CodeIgniter dễ dàng/khó khăn như thế nào? Từ lần quét đầu tiên của tôi về tài liệu CodeIgniter, tôi có thể thấy rằng bố cục của khung công tác đủ dễ hiểu và tôi dự đoán không có vấn đề gì. Tôi muốn biết nếu có ai đã sử dụng nó trước đây, và do đó nhận thức được bất kỳ "gotchas" bạn của tôi đã có kinh nghiệm đó sẽ làm cho điều này khó hơn nó nên hoặc không thể kéo ra. Tôi cũng muốn biết nếu đây là một điều tốt để làm gì cả. Là hệ thống mẫu trong CodeIgniter đủ để sử dụng bình thường? Có bất kỳ mô-đun mẫu nào khác tốt cho CodeIgniter ngoài Smarty không? Tôi tốt hơn với Zend Framework? Có bánh xe nào được phát minh ở đây không? Cảm ơn sự giúp đỡ của bạn!

+0

Như những người khác đã nói, ví dụ: chính thành phần Zend_View rất mạnh mẽ và có thể mở rộng [với người trợ giúp, v.v.]. Bạn không cần Smarty trong hỗn hợp. Ngoài ra, Smarty là mã PHP4 rất nặng mà nói chung bạn muốn tránh. Bên cạnh đó, hãy sử dụng bất kỳ khung làm việc nào bạn cảm thấy thoải mái hơn. – Till

+0

Kiểm tra [câu trả lời của tôi] [1] trong chủ đề tương tự! [1]: http://stackoverflow.com/a/10297502/934599 – uzsolt

+0

@Tất cả khi tôi biết smarty3 tương thích với php5 và có thể php4 là không đủ. Xin lỗi, tôi không thấy đó là chủ đề cũ :( – uzsolt

Trả lời

1

Tôi đã làm một tìm kiếm google nhanh chóng và tìm thấy những điều sau đây: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/

Nếu người thiết kế là không quen thuộc với Smarty, tôi nghĩ rằng đó là gần như giống nhau, nếu như bạn sử dụng hệ thống CodeIgniter khuôn mẫu sẵn có (mà lá tất cả mọi thứ để PHP thực sự). Nó cũng phụ thuộc vào sự phức tạp của dự án trong tầm tay.

Bạn cũng có thể móc Smarty với Zend Framework. Nó phức tạp hơn với CodeIgniter, nhưng đã có một mồi về cách làm chính xác điều đó trong tài liệu ZF. http://framework.zend.com/manual/en/zend.view.scripts.html Cộng với rất nhiều hướng dẫn trên mạng.

Theo ý kiến ​​của tôi nó gần như giống nhau, bạn có thể sử dụng PHP thuần túy hoặc Smarty làm mẫu của bạn "động cơ", do đó, nó phụ thuộc vào dự án. Ngoài ra, hãy so sánh một nhà phát triển có kinh nghiệm sâu rộng và đã có một thư viện trợ giúp xem để cô ấy sử dụng PHP thuần túy, so với một nhà thiết kế không biết gì về PHP, nhưng có nhiều kinh nghiệm với Smarty. Đôi khi các quyết định phải dựa trên việc ai sẽ làm gì.

2

Hơi OT, hy vọng bạn không nhớ ...

Tôi là một người sử dụng Zend Framework và tôi nghĩ rằng nó có giá trị nói rằng các khớp nối lỏng lẻo có nghĩa là bạn không cần phải bao gồm bất kỳ tập tin bạn không chủ động sử dụng. Hy vọng rằng điều này phủ nhận mối quan tâm của bạn về chi phí không cần thiết.

Với nội dung bố cục được thêm vào trong bản phát hành gần đây của ZF, việc tạo khuôn mẫu của nó thực sự khó khắc phục ... và hoàn toàn có thể cắm được như Favio đề cập. Tôi càng sử dụng ZF, tôi càng thích nó; họ làm mọi thứ theo cách tôi sẽ làm chúng!

3

Xin lỗi bạn đã hồi sinh lại câu hỏi cũ - nhưng chưa có câu trả lời nào được gắn cờ là "được chấp nhận".

Có một thư viện gọi là "mẫu" mà không một công việc tuyệt vời cho phép bạn sử dụng chỉ là về bất kỳ mẫu phân tích cú pháp bạn muốn:

Template CI Library - Parsers

Cú pháp là khá dễ dàng cho việc tích hợp vào ứng dụng CI của bạn và điểm tích hợp thông minh.

0

Không xuất hiện câu trả lời được chọn cho câu hỏi này hoặc không có giải pháp cập nhật để làm việc với phiên bản Codeigniter mới nhất (2.0) và phiên bản mới nhất của Smarty (3.0.5)).

Thư viện này cho phép bạn sử dụng Smarty 3 với Codeigniter 2.0 để bạn có thể sử dụng Smarty 3 các tính năng cụ thể như kế thừa mẫu.

http://ilikekillnerds.com/2010/11/using-smarty-3-in-codeigniter-2-a-really-tiny-ci-library/

0

Lồng ghép Smarty trong CodeIgniter? Đó là một khoe! template system in CodeIgniter rất cơ bản.

Thực hiện theo các bước này cho Smarty 3 trong CI 3:

Tải CodeIgniter 3

Tải Smarty 3 và đặt nội dung của nó trong 'ứng dụng THIRD_PARTY/smarty /' thư mục

Tạo 'Custom_smarty.php 'tập tin trong 'application/thư viện' và thêm mã này:

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

require_once(APPPATH.'third_party/smarty/Smarty.class.php'); 

class Custom_smarty extends Smarty { 

    function __construct() 
    { 
    parent::__construct(); 
    $this->setTemplateDir(APPPATH.'views/templates/'); 
    $this->setCompileDir(APPPATH.'views/templates_c/'); 
    } 
} 
?> 

Tạo 'mẫu' & 'templates_c' lần ERS bên trong thư mục 'application/views'

Tạo đơn giản 'test.tpl' tập tin trong '/ mẫu application/views' thư mục

Open 'autoload.php' trong 'application/config' thư mục và thêm:

$autoload['libraries'] = array('custom_smarty'); 

Và bên trong một bộ điều khiển: $this->custom_smarty->display('test.tpl');

Nếu bạn đang làm việc trên localhost thiết lập cho phép: sudo chmod -R 777 templates_c. Otherwhise liên hệ với dịch vụ lưu trữ của bạn, nếu bạn gặp lỗi Không thể ghi tệp. Trước tiên hãy chắc chắn thư mục templates_c tồn tại.

Nếu không, bạn có thể sử dụng một công cụ mẫu khác như Twig.

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