2009-06-06 16 views
4

私はヘッダーフッターとWebページの他の共通部分を管理するためにUserControlsを利用しているASP.NETで多くのWebアプリケーションを開発しました。今私はPHPでアプリを開発しています、私はUserControlsの代替として使用することができますか?PHPのASP.NETのUserControlsの代わりに?

私はPHPで同様の概念をどのように実装できますか?

ありがとうございます。

答えて

2

ここで詳細に説明するのが少し難しい2番目の答えは、独自の 'UserControl'クラスを構築することです。クラスには必要なプロパティがあり、スクリーンにコントロールを出力するRenderHTML()メソッドがあります。

+0

hmmmmmm ...見た目がクールです。これを適用することはできますが、すべてのコントロールに対して、別々のUcontrolクラスを作成する必要がありますか? – Prashant

+0

すべてのコントロールクラスが同じように動作するようにインターフェイスを使用します。しかし、あなたが望むすべてのユーザーコントロールに対して別々のクラスを作成する必要があります。しかしこれはAsp.netでも同じです。すべての通常の継承規則が適用されます.1つのコントロールが別のコントロールなどから継承する可能性があります。 –

+0

はい、すべての異なるコントロールに対して、asp.netでUserControlを作成しなければならず、PHPクラスメソッドにも適用できます。 :) – Prashant

1

UserControlの概念はPHPには明示的に存在しませんが、必要な機能をファイルにカプセル化してinclude()関数を使用して、必要なページに配置することができます。

<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <?php include('header.php'); ?> 
    <?php include('pageBody.php'); ?> 
    <?php include('footer.php'); ?> 
</body> 
</html> 

Smarty処理やレンダリングのより良い分離を提供し、事のこのタイプは、超滑らかになること。

+0

私はインクルードをよく知っていますが、インクルードを使うとUserControlsで簡単に行うことができるPropertyとして変数を渡すことができません。もっと明確にするために、変数ma usercontrolに変数を渡したいとしましょう。私のウェブサイトのナビゲーションでは、ヘッダ内の現在のメニューを選択したり選択解除したりします。しかし、どのように私はこれを行うことができますインクルードを使用して?? – Prashant

+0

Smartyをチェックしてください。この種のことはテンプレートエンジンを使って可能です。それはあなたのための少しのパラダイムシフトになります。 –