ホームページ >php教程 >PHP开发 >Zend Framework の入門知識ポイントの概要

Zend Framework の入門知識ポイントの概要

高洛峰
高洛峰オリジナル
2017-01-05 10:54:261430ブラウズ

この記事では、Zend Framework の入門知識ポイントを要約し、分析します。参考として皆さんと共有してください。詳細は次のとおりです:

zend フレームワークは MVC パターンの実装です。すぐに始めるには、Zend_Controller Zend_View 部分を見てください。

1.Zend_Controller部分。最も重要なクラスは Zend_Controller_Front です。これを使用する古典的なコードは非常に簡単です:

$front=Zend_Controller_Front::getInstance();
$front-> setControllerDirectory("./app/controllers");
$front->dispatch();

ここで説明したいのは、new を使用して Zend_Controller_Front を取得することはできず、getInstance メソッドを呼び出してインスタンス (my) を返すことしかできないということです。 zend_framework は 1.01 を使用します)。ここで指定したコントローラー ディレクトリは、www ドキュメント ルート ディレクトリの app フォルダーの下にあります。一般的に、アプリはドキュメント ルート ディレクトリに配置すべきではありません。いわゆるセキュリティの問題です。設定が厳密でないと、www ドキュメント ルート ディレクトリ内のファイルが訪問者に見える可能性があります。通常、これは別のディレクトリに配置する必要があります。たとえば、ドキュメントのルート ディレクトリと同じレベルに配置する場合は、次のように指定できます。

余分な「.」があります。ここでは相対パスが使用されます。フルパス名を使用して他のディレクトリを指定できます。例:

$front->setControllerDirectory("../app/controllers")

この部分はインデックスに含まれています。 phpで。正しい構成では、すべてのリクエストは書き換え関数によってこの $front (フロントエンド コントローラー Zend_Controller_Front インスタンス) にリダイレクトされます。すべての認証およびその他の処理は、発送前に処理する必要があります。

2.Zend_View で一般的に使用されるコードは次のとおりです。

$front->setControllerDirectory("E: /server/app/controllers")

Zend_Framework が推奨するディレクトリ構造がデフォルトで採用されます。つまり、ビューとコントローラーのモデルは両方ともアプリケーション ディレクトリにあります。ビューの下には、スクリプト ヘルパー フィルターという 3 つの兄弟ディレクトリがあります。このように、コントローラーを定義するときは、コントローラーの下位にあるテンプレートを保存するために、スクリプトの下に新しいディレクトリを作成する必要があります。たとえば、単純な

$view=new Zend_View();
Zend_Registry::set("view".$view);

の場合、それに応じてインデックス ディレクトリを作成し、そのインデックス ディレクトリにindex.phtml テンプレートを作成する必要があります。 IndexController の下に別の関数 addAction() を作成する場合は、index に新しい add.phtml を作成する必要があります。別の UserController がある場合は、スクリプトの下に対応するユーザー ディレクトリが必要です。これらの *.phtml ファイルは HTML ファイルに似ており、出力するコンテンツの表示方法を定義します。空白のままにすることもできます。ただし、省略することはできません。省略すると、無効なコントローラの「エラー」が表示されます。これは、デフォルトの ErrorController がすでに登録されているためです。デフォルトの ErrorController は、フロントエンド コントローラーが対応するコントローラー ディストリビューションを見つけられない場合に呼び出されます。

デフォルトのディレクトリ構造やデフォルトの phtml タイプのビュー テンプレートを使用したくない場合があります。現時点では、

Class IndexController extends Zend_Controller_Action
{
 function IndexAction()
 {
 }
}

を使用して、デフォルトの phtml タイプのディレクトリ設定をキャンセルできます。

$view->setParam ("noViewRanderer",true);

を使用してデフォルトの ErrorController に書き込みます。

$view->setParam ("noErrorHandler",true);

を使用して、テンプレートの場所を設定します。これは、Smarty テンプレートを使用する場合に便利です。

は次のように記述できます:

$view->setscrīptPath ("./app/views");

を使用すると、次のように取得できます:

$view=new Zend_View_Smarty();
$view->setParam("noViewRanderer",true);
$view->setParam("noErrorHandler",true);
$view->setscrīptPath("./app/views");
Zend_Registry::set("view".$view);

3. 最初に接触したとき、モデルは単純にデータ オブジェクトとして理解できます。 Zend_Db_Table は非常に優れたカプセル化クラスであり、一般的な使用には十分です:

$view=Zend_Registry::get("view");

もちろん、テーブルの名前を指定するだけで十分です。この場合、zendf はデフォルトでクラス名を使用してデータベーステーブルを検索します。 Zend_Db_Table のdefaultAdapter を指定することを忘れないでください:

class data extends Zend_Db_Table
{
 protected $_name="data";
}

config.ini は [general]

$config = new Zend_Config_Ini('./application/config.ini', 'general');
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);

に似ています。この記事が Zend Framework フレームワークに基づいた PHP プログラムの設計に役立つことを願っています。

Zend Framework の入門知識ポイントのまとめに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。