0

いくつかの Symfony 2 コンポーネント/バンドルを Magento フレームワークに統合するのはどれほど簡単でしょうか?

質問は一般的にどのコンポーネントにも当てはまりますが、特に小枝テンプレートエンジンを考えていますか?

4

2 に答える 2

0

symfony に結び付けられていないスタンドアロン コンポーネントであるため、任意の php プロジェクトで twig テンプレート エンジンを使用するのは非常に簡単です。

twig でプロジェクトを強化するには、次の 3 つの簡単な手順が必要です。

ここで説明されているように、最初にコードを取得する必要があります。次に、オートローディングとテンプレート エンジンを初期化する必要があります。

// setup autoloader
require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

// initialize template engine
$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
    'cache' => '/path/to/compilation_cache',
));

その後、プロジェクト内の任意の場所で使用して、テンプレートをレンダリングできます。

// load a template
$template = $twig->loadTemplate('index.html');

// render the template
echo $template->render(array('the' => 'variables', 'go' => 'here'));

symfony の他の部分と同様に、コンポーネントは他のプロジェクトに簡単に統合できます。コンポーネント ページを見てください。

バンドルは symfony コアに関連付けられており、symfony の完全にブートストラップされたインスタンスを必要とするため、少しオーバーヘッドがかかりますが問題はないため、バンドルの使用はもう少し複雑です。レガシーアプリからsymfony機能にアクセスすることに関するこの質問の私の答えを見てください。

于 2012-06-19T11:21:03.017 に答える
0

一般的に小枝を使用するのは非常に簡単です。Mage_Core_Block_Template で定義されたブロック メソッドの一部を上書きする独自の Block を作成する必要があります。または、さらにレベルを上げて Mage_Core_Block_Abstract を直接拡張し、独自の _toHtml() メソッドを記述します。

twig がデフォルトで提供する機能はわかりませんが、Symfony の機能のいくつかは実装が少し難しいかもしれません。

これには magento の制限を回避する必要があるため、最大の問題はオートローダーを登録することです。ただし、オートローダーの登録を解除し、オートローダーを登録した後、magento を再登録するという一般的なソリューションが存在します。これをどのように解決するかはあなたの決定ですが、magento オートローダーが実行された後は、他にオートロードの機会がありません。また、magento はモジュールとコントローラーの自動ロードを別々に処理するため、別のオートローダーによって引き起こされるセキュリティの問題についてはわかりません。

コードの行数は 50 ~ 60 行以内ですが、適切に実装するには、magento について少し知っておく必要があります。

于 2012-12-05T00:12:36.677 に答える