問題タブ [hmvc]
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.
php - 特定のフォルダHMVCにモデルクラスを自動ロードする最良の方法
私は現在、HMVCデザインパターンを使用した学習演習として、独自のPHPフレームワークを作成しています。それはすべて機能します:)が、PHPコードで静的クラスを参照するのは悪い習慣だと何度も読んだことがあります。これは、autoload関数で行っていることとまったく同じです。
ご覧のとおり、静的呼び出しを使用して現在のアプリケーションを取得しますDispatcher::getApplicationName()
。これは、依存関係を導入するため、多くの人にとっては悪いことです。debug_backtrace()
モデルを開始するクラスにはApplicationNameがプロパティとして含まれているため、を使用してapplicationNameを取得することもできます。それは良いですか、それとも私が考えていなかった他の選択肢がありますか?
ありがとう!
編集:上記のコードには別の問題があることを忘れてしまいました。HMVCデザインパターンを使用しているため、コントローラーのアプリケーションがディスパッチャーのアプリケーションと常に一致するとは限りません(コントローラーはコントローラー内と呼ばれます)。これは、を使用してのみ修正できますdebug_backtrace
。
Dispatcher::getApplicationName()
編集:私が今使用する代わりにRequest::getCurrentApplicationName()
。リクエストクラスがすべてのアプリケーションを保存するため、再び機能するようになりました。これは良いですか、それとももっと良い方法がありますか?
asp.net - HMVCパターンの正確な使用/消費?
私は HMVC と、現在の MVC アプリでそれをどのように、または考慮する必要があるかを理解しようとしています。
[this][1] MVC アーキテクチャに関する質問からのこの引用については、
Hierarchical-Model-View-Controller (HMVC) パターン (別名 Presentation-Abstraction-Control) は、より複雑なインターフェイスやアプリケーションの要求に対処するのに適している場合があります。
「しかし、従来の MVC スコープは、GUI 要素 (ウィジェット) の制御に関しては不十分です。MVC は、データ管理、イベント管理、およびアプリケーション フローの複雑さを処理しません。MVC トライアドの適応として、HMVC - - Hierarchical-Model-View-Controller -- パラダイムは、上記の問題のいくつかを是正しようとしています。」
Jason Cai、Ranjit Kapila、および Gaurav Pal (2000 年 7 月)。「HMVC: 強力なクライアント層を開発するためのレイヤード パターン」. JavaWorld マガジン。
[1]: https://stackoverflow.com/questions/113602/when-to-use-mvc-architecture
私は PAC/HMVC を理解しようとしてきましたが、上記の文章は心に響きました。HMVC のトライアドの抽象化は、ページの「ウィジェット」に適用できます。または、ASP.Net ビュー エンジン (対 Razor ビュー エンジン) を使用してページの「コントロール」に変換する方法です。
それは HMVC パターンの正確な適用でしょうか?
もしそうなら、それがどのように実装されるか正確にはわかりません。メインページが正常にロードされ、ユーザーコントロール/ウィジェットの一部がエラーアウトした場合、ページは引き続きロードされるという点で、これの利点がわかります。
では、メイン ページ コントローラーはそのウィジェット コントローラーを呼び出すのでしょうか? メイン ビューから、単純な MVC ページのビューでモデルのオブジェクトを使用するのと同じように、モデルの継承が有効になると推測しています。
これはコードではどのように見えるでしょうか? トップレベル ビューからチェーンをたどって、たとえば 2 つまたは 3 つのトライアドからモデル データを呼び出しますか?
codeigniter - タンク認証を使用した Codeigniter HMVC のセットアップ
hmvc と tank auth (モジュールとして設定) が正しく設定された Codeigniter バージョン 2.0.3 を正しく動作させるのに問題があります。CIを適切にインストールしてから、次の指示に従ってHMVCをインストールします https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
HMVCが機能していることを意味する例として、ウェルカムコントローラー/ビューに問題なくアクセスできます。次に、modules フォルダー内のフォルダーに追加して、tank auth をプロジェクトに追加しようとします。タンク認証内に適切なコントローラー/ビュー/モデルなどを設定します。ルートに次のようなものを追加しました
$route["auth"]="認証/ログイン";
また、認証モジュール内のコントローラーを、指示どおりに MX_Controller に拡張しました。また、私が持っているコンストラクターで:
モジュールに正常にリダイレクトしているようですが、 :: というエラーが表示されます
エラーが発生しました
要求されたクラスをロードできません: セキュリティ
私は何を間違っていますか?モジュールとして HMVC と tank auth を使用した CI インストールが機能している人はいますか?その方法を確認できますか? HMVCは初めてです、ありがとう
php - CodeIgniter のモジュールとは?
CodeIgniter のモジュールについて知りたいのですが、モジュールの開発方法はどこで学べますか?
php - CentOS で CodeIgniter モジュラー拡張機能が壊れている
私は CodeIgniter (1.7.2+) を何年も使用しており、15 以上の本番環境で実行しています (大好きです)。最近、私のチームと私は、標準の MVC よりも少し複雑なものを必要とする非常に複雑なシステムを特定したので、CI 用の HMVC Modular Extension (2.0.3) の調査を開始しました。これまでのところ、ローカル システムの XAMPP および MAMP 環境で問題なく起動しており、まさに必要なもののように見えます。CentOSにロードしようとすると問題が発生します。
ローカル インストールで動作するまったく同じ SVN リポジトリを取得し、それを CentOS サーバーにプルすると (2 つの別々の CentOS ボックスを試しました)、白い画面が表示され、ログに 500 エラーが表示されます。この同じ CentOS インストールが基本 CI インストールを問題なく実行しているため、HMVC モジュールの内部にあると確信しています。
トラブルシューティングを行うために、データベースをロードする autoload エントリを削除すると、次の出力が画面に表示されます。
CentOSボックスでのみこれを取得します。そのファイルの58行目はあまりわかりません.HTTPDエラーログにも有用なものは何も表示されていません. 誰かがこの問題を経験したことがありますか? 他の誰かがそれを再現できますか? ベースCIが必要とするもの以外のサーバー依存関係について言及したことは一度もなかったので、途方に暮れています。このプロジェクトではどうしても HMVC を使用する必要がありますが、ロードすることさえできないものを市場に出すことはできません。
何か悪いものを挿入する可能性をさらに制限するために、CI を新しくインストールし、HMVC モジュールを再ロードし、他には何も触れませんでした... FAIL! まったく同じ結果、CentOS 5.5 で同じエラーで壊れたローカルで実行されます。
どんな助けでも大歓迎です...
アップデート
エラーが通知にすぎないことに気付きました (私はやりたくないのですが) 何が起こったのかを確認するためだけに、エラー報告をオフにしました。すぐに 500 エラーをスローするだけに戻ります。私は die() ステートメントを index.php に入れ、画面に出力を得ることができます. 私はシステムを通して die() を試み、それを行っている実際の行を見つけようとしています.... 喜び..
Craig A Rodway から要求されたレベル 4 の CI ログ ファイル
アップデート #2
OK、問題の原因は 2 つあると思われます。完全に解決したわけではありませんが、システムで作業できるようになりました。まず、Windows マシンで HMVC を解凍し、SVN にコミットし、CentOS にプルダウンすると完全に BORKED になりました。WGET を介してすべてを直接 CentOS にプルダウンし、サーバーにセットアップすると、問題なく動作しました。非常に奇妙ですが、少なくともこれは回避策です。PHP や Apache を調整する必要はありません。最初のプロセスで行末や何かがジャックされたと考えられます。
2 つ目は、HMVC モジュールを使用している場合、コア システムのオートローダーを使用してデータベースをロードできないことです。トライアド内に手動でロードすることも、トライアドの config/autoload.php ファイルを使用してオートロードすることもできますが、試してもコア システムは 500 をスローします。それは癖であり、悪化していますが、私はそれを回避できます.
みんなの提案に感謝します。これは単なる変わり者でした。
シェーン
codeigniter - Code Igniter モジュール拡張 Default_controller
私は現在、モジュラーにする必要があるアプリケーションを設計しています。このために、コードイグナイターにモジュラー拡張 - HMVC を使用しています。
application/config/config.php ファイルで定義されているように、default_controller をデフォルトのモジュール コントローラー (users/controllers/login など) に変更しようとしています。
私は無駄に次のことを試しました:
ご覧のとおり、私のモジュール ディレクトリは application/modules/ にあります。どんなアイデアでも大歓迎です。
cookies - Kohana : サブリクエストの (HMVC) Cookie の変更を取得する方法
次のコードを使用して、HMVC 構造でサブリクエストを実行します。
「page1」へのリクエストは、次のコードによって「page2」へのサブリクエストを作成します。
「page2」で実行すると、cookie 項目の値が追加/変更されます。
ここで、「Page1」の Cookie「new_var」の新しい値を取得する必要があります。では、どうすればそれを行うことができますか?
PS: いくつかの制限により、Cookie に「new_var」を設定する必要があるため、セッションに配置することは答えではありません。
==========更新 =============
zerkms によって提案されたように、私は次のようなことをしました:
「前」と「後」のログ エントリの結果は、どちらも空の配列です。:(
codeigniter - コード イグナイター 2.0.2 でのコントローラーとモデル名のあいまいさ
以下はシナリオです: CodeIgniter 2.0.2 に HMVC を統合しました。次の構造のモジュールを作成しました。
/アプリケーション/モジュール/ログイン
/アプリケーション/モジュール/ログイン/コントローラー
/application/modules/login/controllers/login.php
/application/modules/login/models/login.php
/application/modules/login/views/login_form.php
controller/login.php コード
/views/login_form.php
/models/login.php
出力: 未定義のメソッド Login::validate() を示すエラーが発生 しました。コントローラ ログインで validate() メソッドを作成すると、機能します。しかし、それは起こるべきではありません..ログインという名前のモデルをロードしているにもかかわらず、なぜそれがログインコントローラーを指しているのか.
誰でも私を助けることができますか?私のやり方は正しいですか?提案を歓迎します...
model-view-controller - CodeIgniter-モジュラー?
同様の「モジュール」を必要とするいくつかのサイトを構築しています。たとえば、サイトのログインシステム、フォーラムなどがまったく同じである場合があります。
これらのモジュールを一度作成して、これらのさまざまなサイトに「ドロップ」する方法はありますか?私が見る課題のいくつか:
- さまざまなサイトでコードの一貫性を保つ。モジュールに加えられた変更は、そのモジュールを使用するすべてのサイトに反映される必要があります。アップグレードする方法が必要だと思いますか?
- データベース:これらの機能は、より大きなアプリケーションの一部として機能する必要があります。モジュールは、それぞれのサイトの他のテーブルとの関係を定義する必要があるかもしれません。
もっと問題があると思います。私はこれを見るべきだと思います:https ://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home 、しかし私はそれについての経験がありません。
だから、私はこのアイデアの解決策、提案、またはより多くの問題を探しています。
codeigniter - echo modules::run() は HTML 内で doctype の前にジャンプします
ビューで HMVC を使用し、モジュールを呼び出しています。ただし、場合によっては、モジュールが Doctype! の前に表示されます。ページに複数のモジュールを呼び出すことが原因のようですが、これが起こらずにこれを行った場合があります。
次のように、コントローラーからビューに表示するモジュールを解析しています。
その後、ビューで
これらの div は正常に出力され、本来あるべき場所にとどまりますが、何らかの理由でモジュールが doctype の前にジャンプします。ページ全体のすべての div が閉じていることを確認しました。これは、2 つのモジュール内のコードが干渉しているなどのためですが、まだ途方に暮れています
これまでにこれに遭遇したことはありません。誰か助けてもらえますか? ありがとう :)