問題タブ [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 モジュールからコントローラーのパブリック コントローラー プロパティにアクセスする
codeigniter の wiredesignz モジュラー拡張機能を使用しています。たとえば、モジュールのコントローラーから通常の codeigniter コントローラーのパブリック プロパティにアクセスできるかどうか疑問に思っていました。これは通常の ci コントローラーです。
これはモジュールコントローラーです
templates - テンプレート ライブラリと共に HMVC モジュールとして使用される Codeigniter Tank_Auth
Codeigniter 2.1.0 のクリーン インストールで HMVC を正常に構成して実行しました。次に、テンプレート ライブラリを含めました。/system/library/Template.php、/application/config/template.php、そして最後にテンプレート ファイル自体 (/views ディレクトリ内のどこか) の 3 つのファイルのみで構成されます。
作成したモジュールの 1 つを読み込んで、テンプレート ライブラリをテストしました。/system/library/Template.php に移動してパスを修正し、デフォルトの CI のものではなくモジュール/ビューを指すようにする必要がありました。その後、テストしましたが、問題ないようでした。
3 番目のステップは、Tank_Auth 認証ライブラリを含めることです。モジュールにも常駐させたい (/modules/auth)。このモジュールは、通常のアプリ ディレクトリと同じディレクトリ構造 (構成、コントローラー、言語、ライブラリ、モデル、ビューなど) を持つ必要があるため、Tank_Auth のファイルを Auth モジュールのそれぞれのディレクトリにコピーできます。
基本的に、私はすでにそのコピー部分を行っています。しかし、今http://adresar.local/auth/auth/loginを実行しようとすると、
私も変えてみました
に
しかし、役に立たない。
誰かが有益なアドバイスを投げてくれるなら、私はそれを大いに感謝します.
codeigniter-2 - HMVC 要求されたファイルをロードできません
こんにちは、問題があります。Codeigniter Modular Extensions - HMVC を使用しています。
問題は、モジュールを表示しようとするときです。
エラーが発生しました
要求されたファイルを読み込めません: quicklinks_show.php
私は2つのモジュールを持っています
1.ダッシュボード 2.クイックリンク
ダッシュボード モジュールで別のモジュールを呼び出して表示しようとすると、問題が発生します。このコードを Dashboard/view/dashboard_view.php モジュールに入れました
私のクイックリンクモジュールには、単純な Show() 関数があります
php - PHP の MVC と比較した場合の HMVC の長所と短所
私は Zend Framework を 2 年以上使っていますが、とても気に入っています。しかし今、私のコースの 1 つに小さなカスタム フレームワークを作成する必要があり、仲間のコーダーが HMVC を試してみることを勧めました。
だから、私の質問は:
PHPでストレートアップMVCよりもHMVCを選択することの長所/短所は何ですか?
スケーラビリティの長所などについて聞いたことがありますが、より広範で完全な答えを探しています。そして、各部分のリストを(できればソースとともに)見たいと思います。
php - HMVC (コハナ) を使用した知識の喪失
Kohana の HMVC モデルについて質問があります。スケーリングと簡単な API 作成のために、同じ原則 (MVC) 内のコンポーネントとしてものを分離するというアイデアが本当に気に入っています。
知識の喪失など、私が経験しているいくつかの欠点がありますが。
たとえば、ニュースとカテゴリというコンポーネントを持つことができます。その上に、完全なリクエストを委任し、これらのコンポーネントを介してサイト テンプレートのすべての html/データを収集するサイト コントローラーがあります。
サイドバーにすべてのカテゴリが必要な場合は、/categories/list を呼び出すことができます。ニュース アイテムが必要な場合は、/news/ID を呼び出すことができます。どちらもhtmlを返します。
ニュース記事を表示することを主なタスクとする newsreadon サイト コントローラーがある場合、このコントローラーはサイドバーのすべてのカテゴリを取得します。次に、ニュース項目を取得します。
サイト テンプレート内のすべての要素を表示するときに、html タイトル タグのニュースの「タイトル」を知りたいのですが、html を返すのでわかりません。
複数の解決策があるように感じます:
- タイトルをいくつかのレジストリに保存します (ただし、コンポーネントを他のサーバーにスケーリングして HTTP を使用すると、これは失われます)。したがって、スケーリングを考慮すると、適切な選択はありません。
- 'title' フィールドと 'html' フィールドを含む json を返します。
- タイトルの h2 のような html の一部を読み上げます
解決策 2 は、最も厄介ではないように思われ、ステートレス通信をそのまま維持します。
これをどのようにエレガントな方法で解決するのか、本当に疑問に思っていますか? 「その」ソリューションがありませんか?
編集: kohana による HMVC を理解するための興味深い読み物: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/
php - codeigniter hmvc 拡張ルーティング エラー
HMVC 拡張機能を使用した CodeIgniter で奇妙なエラーが発生しました。ローカルホストでは正常に動作し、Linux サーバーでUnable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.
はすべてが正常に構成されていてもこのエラーが発生します。CodeIgniter のコア デバッグを行ったところ、fetch_directory() 基本メソッドが返されていることがわかりました
../modules/{controller}/{action} instead of modules/{controller}/{action}
。これを修正する解決策は何ですか?
php - アーキテクチャ:ウェブサイトとモバイルアプリのコアとしてのAPI
完全なアーキテクチャのアイデアについて、さまざまな質問があります。私はほとんどすべての可能性に行き詰まっているので、素晴らしい経験を持つ誰かが私を助けてくれることを願っています。
コミュニティのウェブサイトを書き直す予定です。お客様は、将来的にネイティブモバイルアプリを利用したいと考えています。したがって、これを考慮に入れる必要があります。このため、PHPフレームワークKohanaに基づいて100%RESTAPIアーキテクチャを作成することにしました。Kohanaを選択したのは、これにより、余分な労力をかけずに内部APIを他のサーバーに簡単にスケーリングできるためです。(KohanaはHTTPとしてではなく内部URL要求を脅かしているため、最初はそれほどオーバーヘッドがなく、コードを少し変更するだけでHTTPに拡張できます)。
最初はAPIが非公開になりますが、後で、より多くのサービスが簡単に接続できるように公開する可能性があります。
基本的なREST構造は次のとおりです。
- / cats
- / cats / 1
- / cats / 1 / custom
たとえば、「カスタム」は「子」になります。
同じことが当てはまります:
- / ads
- /入札
- / users
- /バナー
- 等..
モバイルアプリは間違いなくこのすべての機能を使用するため、これらはAPIに最適なエンティティです。
したがって、WebサイトのコアはRESTであると結論付けることができます。ですから、基本的には、将来的にはネイティブアプリと同じようにウェブサイトをAPIのクライアントにしたいと思っています。このようにして、メンテナンスがはるかに簡単になります。
しかし、私が心配しているのは、これだけではありません(アップロードされたファイルの管理、請求、請求のための自動メール、広告のための自動メールなど)。ファイルをアップロードするには、WebサイトからAPIにアクセスする必要があります。これは一般的な方法ですか?これを行わないと、Webサイトはアップロードロジックを実行するため、サイトはクライアントではなくなり、アプリ自体もなくなります。したがって、モバイルアプリはアップロードすらできず、APIとWebサイトの両方がアップロードフォルダーを認識する必要があります(重複ロジック)。
次のモジュールを作成することを考えました。
- コミュニティAPI
- コミュニティ-ウェブサイト
その時はApiがコアのようです。しかし....cronjobsなどはどうですか?これは単なる「クライアント」であるため、実際にはWebサイトの一部であってはなりません。モデルまたはAPIと直接対話する必要があると思います。つまり、基本的にAPIはコアへのゲートウェイのようになり、これが必要だと考えました。
- コミュニティコア
- モデル
- cronジョブ
- 自動メーリング(cronジョブの一部)
- 請求書など
- コミュニティAPI
- HTTPを介してコア内のモデルと対話する
- コミュニティ-ウェブサイト
- Webサイト
- 管理者
コアcronジョブは、REST構造の例外です。APIを経由せずにデータを変更できるのはこれらだけです。それらはコアに属し、APIはコアの上にあるので、少なくともそれは私の考えでした。
しかし、設計上、それはちょうど間違っているようです。操作はAPIのみを経由する必要があります!
別:
- コミュニティコア
- モデル
- コミュニティAPI
- HTTPを介してコア内のモデルと対話する
- コミュニティビジネス
- cronジョブ
- 自動メーリング(cronジョブの一部)
- 請求書など
- コミュニティ-ウェブサイト
- Webサイト
- 管理者
これは私には設計上良く見えます。
(出典:mauserrifle.nl)
主な質問
1)
cronジョブはAPIまたはコアモデルを介して操作する必要がありますか?
2)
私の請求書のcronjobには、もちろんメインのWebサイトのスタイルとほぼ同じテンプレートが必要です。しかし、私のcronジョブがビジネスまたはコアの一部である場合、メインのWebサイトについての知識はありません。これを解決するのに何が理にかなっていますか?
3)
私のウェブサイトはテンプレートエンジンとして口ひげを使用します。(phpとjavascriptの両方がこれらのテンプレートを解析できます)。私はajax呼び出しにAPIを直接使用することを考えましたが、その後気づきました:
このサイトはAPIからデータを取得し、テンプレートのタイムスタンプを日付(Ymd)にフォーマットしてから、レンダリングします。javascriptにAPIを直接呼び出させる場合、javascriptにもロジック(フォーマット)が必要です。これは重複コードです!唯一の解決策は、ajax(apiとformatsを呼び出す)のWebサイトを呼び出し、フォーマットされたjsonを返すことのように感じます。私は正しいですか?
しかし....広告を削除するような単純な呼び出しは、APIを直接通過することができます(例:DELETE:/ ads / 1
さまざまな電話がかかってきます。
これに対するより良い解決策はありますか?
4)
全体:私のアーキテクチャは複雑すぎますか?私が考慮すべき代替案はありますか?
私はあなたのフィードバックを聞きたいです!
php - Codeigniter にスーパー コントローラーまたはグローバル コントローラーはありますか
別のコントローラー (controller_b など) からコントローラー (controller_a など) の関数を呼び出したい
私を助けてください ..
url-routing - HMVCでルーティングを解決するにはどうすればよいですか?
私はニュースサイトを公開するために使用されるcmsプロジェクトに取り組んでいます。多言語の問題にi18nプラグインを使用しています。問題はルーティングにあります。モジュールが呼び出され、その中にnews
メソッドpage
があり、ルートは次のように設定されています
これは私が行くときに問題なく動作します
i18nローカリゼーションプラグインを使い始めると問題が発生します。次に、このURLでのみ機能します。
URLをセグメントなしにしたいnews
。これを解決するにはどうすればよいですか?前もって感謝します。