問題タブ [zend-framework-mvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zend-framework - Zend Framework でビューに渡されるアクセス/ハンドル オブジェクト/モデル データを制御するための最良のアプローチ
ビューにデータを渡したいのですが、2 つのオプションが考えられます (より良い方法を知っている場合は、言及してください)。
私は Zend_Based ORM システムを使用しており、データベースに新しいフィールドを追加すると、モデル内で自動的に使用できるようにコーディングされています。
1つ目: モデルのデータを配列に変換し、その配列をビューに渡します。このようにして、ビュー内ですべてのデータを利用できますが、モデルの機能/操作は利用できません。また、特定の機能が必要な場合に備えて、ビュー ヘルパーをコーディングしますが、モデル内で同じ機能が既にコーディングされている可能性があります。たとえば、特定の形式で日付を取得します。
2番目: または、完全なモデル オブジェクトをビューに渡します。この方法では、モデルのすべての機能を使用できますが、ビューはモデルの保存機能にアクセスできますが、これは悪いことです。モデル内に機能を追加して読み取り専用にすることはできますが、それは余分な作業になります。
どのアプローチが優れているかの提案。
php - Zend_Controller_Request から Zend_Navigation_Page_Mvc インスタンスを作成する
アプリケーションにナビゲーション ツリーを構成するページがあります。リクエストの値を使用して、ナビゲーションにページを動的に挿入したいと考えています。addPage()
ページを見つけてメソッドを呼び出すロジックは既にあります。私が探しているのは、そのページを追加できるようにZend_Controller_Request
値を簡単に渡す方法です。Zend_Navigation_Page::factory()
たぶんプラグインとして書かれていますか?
解決
AngelP が最も近かったので、彼の功績を称えますが、私の解決策は次のとおりです。
このコードはコントローラー アクションから実行されます。 私がビューに持っている $this->view->siteNav
インスタンスです。インスタンスから簡単に渡され、インスタンスのメソッドに渡されます。Zend_Navigation
getParams()
Zend_Controller_Request
Zend_Navigation_Page::factory()
setParams()
Zend_Navigation_Page_Mvc
php - Zend_View_Helper_Navigation_XXX で使用される ID プレフィックスを設定する方法
ビューでインスタンスをレンダリングするとZend_Nagivation
、デフォルトでアンカー タグにビュー ヘルパーのプレフィックス、ダッシュ、ページの ID が割り当てられた ID が割り当てられます。
ページ 1 のアンカー ID の例 (すべて同じZend_Nagivation
インスタンスを使用):
Zend_View_Helper_Navigation_Menu
= "メニュー1"Zend_View_Helper_Navigation_Breadcrumbs
= "ブレッドクラム-1"My_View_Helper_Navigation_MyMenu
= "マイメニュー-1"
これはほとんどの場合に最適ですが、そのプレフィックスを手動で設定したいのですが、その方法が見つかりません。
解決
プレフィックスを指定するには、次のコードを追加し、setIdPrefix()
レンダリング時に呼び出します。
model-view-controller - ZendのMVC代替
Zendを使用して最初のプロジェクトを作成しようとしていますが、非常に混乱しています。IMOの構成/ブートストラップは非常に複雑です。
そのため、Zendのすべてを使用するのではなく、自分にとって役立つと思われるクラスのみを使用することを考えていました。テンプレートシステムには、Savant3を使用できます。
私の質問は、MVCアスペクトに何を使用できるかということです。このためのphpプロジェクトはありますか?私はフレームワークを探しているのではなく、すべてのリクエストを処理して自分で作成したコントローラーに送信するフレームワークを探しています。そして、それらをSavantに送ります。
(私は実際にこれらのことを行うcodeignitersの方法が好きですが、これは学校のプロジェクトのためのものであり、Zendと協力する必要があります)
私はあなたのほとんどがおそらくZendのMVCに固執するか、別のフレームワークを試すことをお勧めすることを知っていますが、それは私が求めているものではありません:)
model-view-controller - Zend MVC では、コントローラの変数セットをレイアウトにどのように渡しますか?
ページのタイトル名とメタ情報をレイアウトに渡す必要がありますが、これを行う方法がわかりません =/
zend-framework - すべてのコントローラの init() 関数で同じ行を実行する方法は?
すべてのコントローラーで同じ 2 行が必要です。各コントローラーには独自の初期化ロジックがありますが、これらの 2 行はすべてのコントローラーで共通です。
コードの繰り返しを避けるにはどうすればよいですか?
アップデート:
OK、FlashMessenger は一例にすぎません。たとえば、'someAction' @ 'someController' を除くすべてのアクションにログ行を書き込む必要があるとします。したがって、新しい共通線はそうあるべきです。
問題は、各コントローラーのすべての init() でこれらの行を繰り返さないようにするには、これらの行をどこに配置する必要があるかということです。これらの行は、bootstrap? に配置する必要があります。その場合:「someAction」のログ行をスキップするにはどうすればよいですか。または、「BaseController」を実装して、すべてのコントローラーをそこから拡張する必要があります。もしそうなら:どうすればオートロードできますか?(致命的なエラー: クラス 'BaseController' が見つかりません) .
php - Zend / MVCで、サブアプリケーションまたはサブモジュールのコントローラーとビューを設定するにはどうすればよいですか?
私はこのようなすべてのzendアプリケーションを持っています
このようなゲームのURLを作成する必要があります
モジュールやサブアプリケーションのように、このディレクトリ構造にコントローラとビューを設定するにはどうすればよいですか?
zend-framework - Zend Framework : 無効なコントローラが指定されました (エラー) ??? ヘルプ
プロジェクトを Windows から ubuntu に移動しましたが、プロジェクトを実行しようとしたときに次のエラーが発生しました。
デフォルトモジュールに ErrorController.php ファイルがありました:
私のプロジェクトは Windows では非常にスムーズに実行されましたが、Ubuntu で実行すると上記のエラーが常に発生します。どうすればこの問題を解決できますか?? 私を助けてください!ps : 英語が下手ですみません。
zend-framework - アイデア ディスカッション: zend MVC 実装における動的なビュー スクリプトの切り替え
これは基本的に「私は正しくやっていますか?」質問。
実行時にデフォルト/モバイル バージョン/管理領域のビューを透過的に切り替える方法を考えています。そして、このアプローチの長所と短所を知りたいです。
主な要件は次のとおりです。
- コーディングをほとんどまたはまったく行わずにアプリケーション全体を切り替える
- 上書きではなく、zend MVC ワークフローに統合します
- デフォルトへのフォールバック
- 標準機能を保持
- コントローラーは変更を認識すべきではありません
ここに私の疑似ヘルパーがあります
ヘルパーをどのように構成する必要があるかは重要ではなく、その部分はスキップされました
これがどのように機能するかの例を次に示します:
$this->_setBasePaths(); ビューのベース パスをapplication/views/default/およびapplication/views/admin/
に設定します
$this->_setVrPathSpecs(); パス指定を ' :module/:controller/:action.:suffix 'に設定します
foo-baz-bar の場合、
1. application/views/admin/scripts/foo/baz/bar.phtml
2. application/views/default/scripts/foo/baz/bar.phtml (
ビュー スクリプトが見つからない場合) を検索します。デフォルトの ViewRenderer にフォールバックします:
3. application/modules/foo/views/scripts/baz/bar.phtml
聞き逃したことがあれば質問する
Upd: 調査の結果、アクション ヘルパーを使用して、インフレクターの仕様と指定された変数に基づいて、ビューの scriptPath を自動登録することにしました。また、他のモジュールからの部分的な要求があった場合に scriptPaths を登録するように、部分的なヘルパーを変更しました。
これは大雑把ですが、動作するアクション ヘルパーのバージョンです。
php - Zend_Authのベストプラクティス
私の目標は、特定のページへのログインを要求することです。Zend Framework MVCを使用しており、ベストプラクティスに関する例を見つけようとしています。
私が探しているものに関するいくつかのメモ:
- ログインしていないユーザーがログインボックスを取得し、認証されたらログインバージョンのページに戻るようにしたい
- 依存性注入を使用し、シングルトンを避けたい
- 小さなコードフットプリント-ZendMVC構造に結び付けます
- ログインボックスは別のコントローラーであり、ヘッダーリダイレクトを行う必要がありますか?認証が成功した後、ランディングページに戻るにはどうすればよいですか?ログインコントローラーアクションを呼び出して、ランディングページにログインボックスを表示するというアイデアですか、それとも検索エンジンのインデックス作成に関する不利な点ですか?
- Cookieを処理するために外部ライブラリを使用できる
または完全に異なる何か。私はZendフレームワークにかなり慣れていないので、「正しい方法で」やりたいと思っています。