2013-07-22 29 views
11

私はなぜ開発者がphalcon Voltテンプレートエンジンを使うのか分かりません。phalcon Voltテンプレートエンジン - なぜそれを使用するのか利点は何ですか

最終的に、コンパイル後に同じPHPファイルが作成されるため、最初に手動で書き込むことができます。私にとって、それはパフォーマンスに悪影響を与えるだけであるように見えます。

答え - ".voltファイルをフロントエンドの人に渡すことができますか?"

おかげで、 Temuri

+0

まだ回答がありません。 – yergo

+0

いいえ、いずれの回答も説得力がないためです。私はVoltなしでPhalconと一緒に約2.5年働いていましたが、なぜそれを使うのかまだ分かりません。 – temuri

答えて

22

は、答えはあなたのアプリケーションの開発にあります。純粋なPHPではなく、なぜフレームワークを使用していますか?手続き型/ストレート型のPHPが高速である場合に、オブジェクト指向プログラミングを気にするのはなぜですか?

もちろん、多くの理由があり、長い議論です。要約は、使いやすさと保守性に優れています。

ボルトと同じです。プレーンなphtmlファイル(そこにPHPタグ付きのHTML)を作成すると、ボルトテンプレートを使用してより長い時間がかかることになります。テンプレート継承、パーシャル、テンプレート内の計算(各ループ用)などがあります。

パフォーマンスに関しては、テンプレートエンジンを使用すると常にパフォーマンスが低下します。幸いなことに、PhalconはPhalconの一部です。Phalconはその機能を提供するためにここにあるファイルを使用するのではなく、メモリ内のすべての困難な作業を行っているため、パフォーマンスの低下はほとんどありません。

決定はあなた次第です。 Volt、Smarty、Twigなどがアプリケーションの開発に役立ちます。あなたの決定は、テンプレートエンジンを使用するかどうかを決定するものです。

+0

パフォーマンスヒットのために、私は最終的にテンプレートをCにコンパイルしてファイルとしてロードするフレームワークを取得することを望んでいました。開発のためのrelauches/stagingイベントを除いて、テンプレートが決して変化しないプロダクションシステムで時間を無駄にすることは信じられません。 2015年までに改善の余地が残っています。 – Lothar

+0

@Lotharあなたは正しいです、そこにパフォーマンスヒットがあります。あなたのためのオプション:あなたのアプリケーションを実行/テンプレートをコンパイルし、それらをソースとして使用すると、Zephir(zephir-lang.org)を使ってシステムに.soファイルを作成し、そこから使用することができます。はるかに簡単なアプローチは、ラムディスクを作成するか、Linuxマシンの共有メモリドライブを使用して、コンパイルされたテンプレートファイルを保存することです。その後、(表示される前に)読み込まれているテンプレートファイルに対処するだけで済みますが、記憶装置がメモリ上にあるため非常に高速です。 –

4

これは古い質問ですが、いくつかの洞察を加えたいと思います。

PhalconテンプレートエンジンであるVoltを使用する理由を尋ねましたが、あなたの説明では、より一般的に、テンプレートエンジンを使用する理由を知りたいと思っています。あなたの質問への短い答えは:はテンプレートエンジンを使ってHTMLとPHPを混ぜないようにする必要があります。

でも、私は主な質問にも答えたいです。なぜボルト? Voltのオーバーロードは他のすべてのテンプレートエンジンと比較して最小であり、C言語で記述されているためではありませんが、独自のPHPファイルが生成されるためです。

おそらく、twigはおそらく最も完全なテンプレートエンジンです。 TwigにはVoltと比較して多くの機能があります。とにかく、Twigは一意のPHPファイルを生成しませんが、お互いを呼び出すメソッドを持つPHPクラスの束を生成します。あなたがTwig C Extensionを使用している場合、Twigはとにかく遅くなるでしょう。

ボルトと比較しても、本当にゆっくりとしているし、良い古いスマイも。だから、あなたがPhalconを使っているのならおそらく、最高のパフォーマンスを達成したくて、たくさんのページリクエストを提供したいからです。この場合、ボルトはあなたの友人です。

+5

"PHPとHTMLとの混同を避けるために" - IMO、PHPコードや他の種類のテンプレートマークアップとの混合に大きな違いはありません。 – temuri

+2

違いがあります、私を信じてください。テンプレートは、読んだり、書いたり、維持したり、拡張したりするのがはるかに簡単です。何の偏見もなくそれを試してみてください。 :-) – noun

+0

MVCパターンに準拠するには、この答えは正しいです。 – ash

2

PHPの歴史が始まったときには、HTMLがPHPスクリプトの中で直接生成されていたことが標準でした。しかし、これまでに最も普及しているWebプログラミング言語の1つに成長したときにいくつかの問題が発生します。

巨大なプロジェクトで働く人々が自分の仕事に慣れないようにする。 Webサービスを開発するときに、どこにMVCアーキテクチャーパターンが発明されましたか。モデルは、データを格納し、それらを保守して再現性のある方法で処理するために使用されます。 Vを表示すると、適切な出力が生成されます。 Cコントローラは、コマンドのモデルへの送信などを担当し、アプリケーションのコアロジックです。

ユーザがサービスを提供するコマンドを送信すると、コントローラがそれを処理して理解しています。適切なモデルの変更をトリガーし、View Controllerに達する限り、他のコントローラーにアクションを転送することができます。 View Controllerは適切なビューを取得し、生成されたデータを注入して実行し、ユーザーに送り返す出力を作成します。ビューのテンプレートがまだ生成されていない場合は、それを実行するテンプレートエンジンを起動します。

フルMVCの適切な実装は、プログラマー、システムアーキテクト、フロントエンド開発者などの両方にとって非常に役立ちます。しかし、一方ではデータベースを維持するのが難しくなるため(ORMが開発された)、システムの反対側では、ビューを維持する。

MVCの原則の1つは、Logic(巨大な "L"を持つ)はコントローラ内にしかないということです。したがって、ビューには論理はありません。テンプレートエンジンを使用することで、自己のロジックの貧弱なサポートのために、その実現が容易になります。プログラマが「怠け者」であることは秘密ではありません。したがって、より高度なロジックを目にする機会があれば、彼らはそれをやるでしょう。

私はすべてのフロントエンド開発者がプロ​​グラミングスキルを持っていると思います。問題はそれらがあなたと一緒にとどまるようにすることです。 PHPを混在させたたくさんのビューを持つ巨大なプロジェクトに取り組むことで、彼らは夢中になるでしょう。テンプレートエンジン用に書かれたコードを読む方がはるかに簡単です。

テンプレートエンジンのアイデアは、ループのような基本ロジックを使用できるように単純な言語を提供し、の場合はステートメントの1つ以上の部分をシステムに追加することです。一方のテンプレートエンジンは、それをPHPファイルに変換するテキストファイルの種類を受け取って、すべての重要なHTMLのハイパードーズを混ぜています。

開発者だけであれば、PHPとHTMLを混在させたファイルを使用することは誰にとっても重要です。

<html> 
<head> 
    <title><?=$title?></title> 
    <? foreach($metas as $meta) { ?> 
    <meta name="<?=$meta['name']?>" content="<?=$meta['content']?>"/> 
    <? } ?> 

しかし、任意のフロントエンドの開発者ではなく、この道を探して、ファイル上で動作するようにしたいと思い:それはこれにおそらく近い見えます

<html> 
<head> 
    <title>{{ title }}</title> 
    {% for meta in metas %} 
     <meta name="{{ meta.name }}" content="{{ meta.content }}" /> 
    {% endfor %} 

それ高い可読性のために。テンプレートに何らかの種類のJavaScriptがインライン展開されていると、非常に便利です。 結局のところ、手作業で作ることができる同じファイルで終わるが、このファイルはあなたのために生成され、保存されるので、コアファイルは変更されないので、長く生成されない。。特に、VoltエンジンがC言語で書かれている場合は、特に性能が0になるものをデプロイ中にテンプレートを生成しています。

テンプレートエンジンのもう一つの便利な点は、急いで。自殺を計画している場合を除いて、あなたは手作りのテンプレートを細分化することはありません。

だから、世界的に、それはの場合です:

ので、あなたが渡すことができます。フロントエンドの男にファイルを転送する

しかし、それはMVCパターンで働く効果です。 PhalconはMVCの原則を満たすように作られています。私は推測しようとしていない、あなたはテンプレートエンジンを使用していない〜2.5年の間、このソフトウェアをどのように扱うことができたのか。たぶんあなたは一人で働いているかもしれません

0

すべての人が違う味を持っていますが、私はあなたに私のビジョンを教えています。

私はのでボルトが便利だと思う:すべてのphalconフレームワークとして

、きれいに簡単、かついずれかであるので、私は、phalcon階層レンダリングを愛し誰かが何かの見解を知ることができる、デザイナーや他の非技術者のための理想的な場所を理解する

そして値を追加するために、いくつかのphalcon部分を修正して、アプリケーションモジュールを使ってその階層的レンダリングを適用します。

関連する問題