2008-09-03 18 views
19

少しの背景情報
私は最近、いくつかのPHPフレームワークを見てきました。 Zend FrameworkまたはCodeIgniter。CodeIgniterフレームワークへのスマートな統合

シンプルな設計のため、私はCodeIgniterを好んでいます。それは非常に裸の骨です、そして、それは単純に保たれています。私が好きではないことは弱いテンプレートシステムです。私は別のデザイナーと仕事をしているので、テンプレートシステムは私のために重要です。彼に良いテンプレートシステムを与えることができることは大きなプラスです。

Zendは、組み込みのテンプレートシステムが優れているため、2番目の選択肢でした.ZendはCodeIgniterとは異なり、別の獣です。それは "モジュール間の疎結合"を重視していますが、より大きなフレームワークです。私は決して使っていないフードの下で多くのことを実行しているように感じるのは好きではありません。それは私の意見では不必要なオーバーヘッドなので、私は、CodeIgniter:Smartyにテンプレートシステムを組み込むことを考えました。

質問:SmartyをCodeIgniterに統合するプロセスはどれくらい簡単ですか? CodeIgniterドキュメンテーションの最初のスキャンから、フレームワークのレイアウトが理解しやすく、問題はないことがわかりました。誰もが以前にそれを使用していたかどうかを知りたいので、私が経験した経験があることを認識しています。私はまた、これがまったくいいことであるかどうかを知りたいと思っています。 CodeIgniterのテンプレートシステムは通常の使用に十分ですか? Smarty以外のCodeIgniterに適した他のテンプレートモジュールはありますか?私はZend Frameworkの方がいいですか?どんな車がここに発明されていますか?ご協力ありがとうございました!

+0

他にも述べたように、例えば、 Zend_Viewコンポーネント自体は非常に強力で拡張性があります(ヘルパーなどと共に)。ミックスにSmartyは必要ありません。また、Smartyは一般的にあなたが避けたい非常に重いPHP4コードです。それ以外に、あなたがより快適なフレームワークを使用してください。 – Till

+0

同様のトピックで[私の答え] [1]をチェックしてください! [1]:http://stackoverflow.com/a/10297502/934599 – uzsolt

+0

@ smarty3がphp5と互換性があり、おそらくphp4で十分ではないことを知っています。 申し訳ありませんが、私はそれが古いトピックだとは思わなかった:( – uzsolt

答えて

1

私は簡単にGoogle検索を行なったし、次を発見した: http://devcha.blogspot.com/2007/12/smarty-as-template-engine-in-code.html http://codeigniter.com/forums/viewthread/67127/

デザイナーはSmartyのに慣れていない場合には、私はそれはほとんどあなたが既存のCodeIgniterのテンプレートシステムを使用しているかのように(これは葉と同じだと思いますPHPの全てを実際に)。それは、手元のプロジェクトの複雑さにも依存します。

SmartyをZend Frameworkでフックすることもできます。これはCodeIgniterよりも複雑ですが、ZFのドキュメントでこれをどうやって行うのかについての初めがあります。 http://framework.zend.com/manual/en/zend.view.scripts.html多くのチュートリアルがネット上にあります。

私の意見ではほぼ同じです。純粋なPHPやSmartyをテンプレート "エンジン"として使うことができるので、プロジェクトに依存します。また、豊富な経験を持ち、既にビューヘルパーのライブラリを持っている開発者と比較して、純粋なPHPを使用しています。場合によっては、誰が何をするつもりかに基づいて決定する必要があります。

2

少しOT、私はZend Frameworkのユーザーだと私はそれが疎結合はあなたがしているすべてのファイルを含める必要はありません意味と言って価値があると思う

...あなたが気にしないことを望みます積極的に使用していません。うまくいけば、これは不必要なオーバーヘッドに対するあなたの懸念を否定します。

最近のリリースのZFでレイアウトのものが追加されたため、そのテンプレートは本当に難しいものではありません...そして、Favioが言及するように完全にプラグイン可能です。私がZFを使うほど、もっと好きです。彼らは私がそれらを行う方法を行う!

3

古い質問を復活させて申し訳ありませんが、回答はまだ「受け入れ済み」と表示されていません。

あなたが望む任意のテンプレートパーサについてだけで使用できるようにすることの偉大な仕事をして、「テンプレート」と呼ばれるライブラリがあります:

Template CI Library - Parsers

構文は、あなたのCIアプリケーションに統合するための非常に簡単ですが、と上のスマートな統合スポット。

0

これをチェックアウトするcustom CodeIgniter templating library私はすでにいくつかのプロジェクトでそれを使用しており、使いやすいです。私はこの投稿が遅いことを知っていますが、それはチェックアウトする価値があります。

0

この質問に対して回答が選択されていないか、Codeigniter(2.0)の最新バージョンとSmarty(3.0.5)の最新バージョンで動作するように最新の解決策が提供されていません)。

このライブラリを使用すると、Codeigniter 2.0でSmarty 3を使用できるため、テンプレートの継承などのSmarty 3固有の機能を使用できます。 CodeIgniterの中のSmartyを統合

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

0

?それは簡単です! template system in CodeIgniterは非常に基本的です。

ダウンロードCodeIgniterの3

ダウンロードSmartyの3と 'アプリケーション/ THIRD_PARTY/Smartyの' フォルダにその内容を置く

作成「Custom_smarty.php:

はCI 3にSmartyの3のために、次の手順に従ってくださいアプリケーション/ライブラリの中にファイル 『:テンプレート『& 『templates_c』倍に』と、このコードを追加し

<?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/'); 
    } 
} 
?> 

作成』 「アプリケーション/ビュー」フォルダ内のERS

「アプリケーション/ビュー/テンプレート」フォルダ内の単純な「test.tpl」ファイルを作成します

「アプリケーション/設定」フォルダと追加で開く「autoload.php」:

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

とコントローラ内部:$this->custom_smarty->display('test.tpl');

あなたがローカルホスト上で作業している場合は、権限を設定:sudo chmod -R 777 templates_c。あなたがファイルを書き込めないというエラーが発生した場合は、他のサービスがホスティングサービスに連絡してください。まずtemplates_cフォルダが存在することを確認してください。

それ以外の場合は、Twigのような別のテンプレートエンジンを使用できます。

関連する問題