Zend フレームワーク マルチモジュール マルチレイアウト構成_PHP チュートリアル
Jul 21, 2016 pm 03:32 PM使用中にこの種の問題に遭遇する人は多いと思いますが、zend フレームワークはバージョン 1.11 になりましたが、インターネット上の多くの情報はまだ古いバージョンであるため、ここでは最新のバージョン 1.11 を例に挙げて簡単に紹介します。 Zend フレームワークを使用してモジュール式アプリケーションを作成する方法。今後のフレームワークのバージョンアップにより、内容が古くなってしまう場合がございますので、最新の取扱説明書を適時ご参照ください。
1.準備
まず、Web サーバーと PHP をデプロイし、最新バージョンの zend フレームワークをダウンロードし、オリジナルの zend フレームワーク プロジェクトを作成し、デフォルトのアクションにアクセスできると仮定します。 zend フレームワーク ツールを使用してプロジェクトを作成できます。具体的な操作については、「zend フレームワークを使用したプロジェクトの作成」を参照してください。もちろん、フォルダーやファイルを自分で手動で作成することもできます。zend フレームワークが推奨するプロジェクトのディレクトリ構造を参照してください。
いくつかの重要なデフォルトディレクトリを簡単に見てみましょう。
1 つ目は public で、プログラムのエントリ ポイントのindex.php を保存するだけでなく、画像、CSS、JavaScript ファイルなども保存できます。
2 つ目はライブラリです。これは、独自に定義したクラス ライブラリやサードパーティのクラス ライブラリを含む、いくつかのクラス ライブラリを保存するために使用されます。
次に、単体テストなどのテスト ファイルを保存するために使用される test があります。
最後に、これは、ここで説明するアプリケーションに最も密接に関連するディレクトリでもあります。アプリケーション ディレクトリに入ると、次のディレクトリがあります。
configs: 設定ファイルを保存します。通常は、メインの設定ファイル application.ini が存在します。
controllers: デフォルトの IndexController.php などのコントローラ。ロジック、データ モデル、およびその他のファイル。
views: ビュー レイヤー スクリプト。通常は接尾辞として .phtml が付きます。
modules: ツールのデフォルト オプションを使用して自動的に生成され、このディレクトリはありません。追加する必要があります。手動で。モジュールには、admin などのモジュール名にちなんだ名前の複数のフォルダーを含めることができます。デフォルトでは、その下のフォルダー構造はアプリケーション ディレクトリと似ており、コントローラー、モデル、ビューなどのディレクトリも含めることができます。 、など。モジュールの下のコントローラーの下にあるファイルのクラス名には、モジュール名を付ける必要があることに注意してください。たとえば、application/modules/admin/controllers/IndexController.php のクラス名は Admin_IndexController です。
autoloaderNamespaces.thirdParty = "ThirdPartyLibrary_"
2. モジュールを作成します
次に、管理モジュールを作成しましょう。 ディレクトリは次のとおりです。 application/modules/admin/controllers
application/modules/admin/views
application/ modules/admin /views/scripts
application/modules/admin/views/helpers
application/modules/admin/views/filters
そして次のファイルを作成します:
application/modules/admin/controllers/IndexController.php (クラス名はAdmin_IndexController)
application /modules/admin/views/scripts/index/index.phtml
新しいモジュール ファイルの作成に加えて、構成ファイル application.ini を変更し、次の行がある場合は削除する必要もあります。
次の行を追加します:
resources.frontController.defaultModule = "default"
resources.modules[]
このようにして、http にアクセスすると、次のようになります。 //localhost/admin にアクセスすると、管理モジュールの内容の出力が表示されるはずです。
コードは次のとおりです:
保護された関数 _initAppAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'App',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.layout.layout = "layout"
admin.resources 。 layout.layout = "admin"
次に、さまざまなモジュールのレイアウト スクリプト ファイルがそれぞれのモジュール フォルダーに保存されます
アプリケーションの下に次のディレクトリとファイルを作成できます:
application/layouts/scripts/layout.phtml
application /modules /admin/layouts/scripts/layout.phtml
構成ファイル application.ini に次の行を追加します:
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts "
resources.layout.layout = "layout"
admin.resources.layout.layoutPath = APPLICATION_PATH "/modules/admin/layouts/scripts"
1番目のタイプであっても、2番目のタイプであっても、 http://localhost/admin にアクセスすると、システムが予想される admin.phtml をレイアウト ファイルとして使用せず、デフォルトのlayout.phtml を使用することがわかります。これは、設定の管理行がシステムがデフォルトで処理できる有効な設定ではないため、自分で処理する必要があるためです。
新しいファイルを作成します: library/Rockux/Controller/Action/Helper/LayoutLoader.php,
最初のケースのコードは次のとおりです:
クラス Rockux_Controller_Action_Helper_LayoutLoader は Zend_Controller_Action_Helper_Abstract を拡張します
{
パブリック関数 preDispatch()
{
$bootstrap = $this->getActionController()
->getInvokeArg('ブートストラップ');
$config = $bootstrap-> getOptions();
$module = $ this->getRequest()->getModuleName();
if (isset($config[$module]['resources']['layout']) ) {
$layoutScript = $config[ $module]['resources']['layout']['layout']
$this->getActionController()
->getHelper('layout')
-> ;setLayout($layoutScript);
}
}
}
{
パブリック関数 preDispatch()
{
$bootstrap = $ this->getActionController()
->getInvokeArg('bootstrap');
$config = $bootstrap->getOptions(); $this->getRequest()->getModuleName();
if (isset($config[$module]['resources']['layout']['layoutPath'])) {
$layoutPath =
$ config[$module]['resources']['layout'] ['layoutPath'];
$this->getActionController()
->getHelper('layout')
->setLayoutPath($layoutPath);
}
}
}
次に、それを application/Bootstrap.php に追加する必要があります
$layout = Zend_Controller_Action _HelperBroker: :addHelper(
new Rockux_Controller_Action_Helper_LayoutLoader());
http://localhost/admin に再度アクセスすると、指定されたレイアウトが表示されるはずです。使用されているファイル。
特定のコントローラーに特定のレイアウトを使用したい場合は、コントローラーの init() メソッドに次のコードを追加できます:
コードは次のとおりです:

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











CrystalDiskmarkとはどのようなソフトウェアですか? -crystaldiskmarkの使い方は?

foobar2000のダウンロード方法は? -foobar2000の使い方

BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は?
