ホームページ  >  記事  >  バックエンド開発  >  アーキテクチャ上の混乱

アーキテクチャ上の混乱

WBOY
WBOYオリジナル
2016-06-23 14:15:43812ブラウズ

この投稿は、muyuruhai によって、2013-07-15 10:54:01 に最終編集されました

皆さんこんにちは
私はかつて Web サイトを作成し、次のように使用していました

Index.php ホームページ

バックグラウンド ロジックには php ファイルがあります, ロジック .php

logic.php で記述
$action=_$POST[action]
switch $action
case check_userlogin
login(_$POST[username],_$POST[pwd])
case put_comment
put_comment(_$POST[Comment]);
...
end switch

このように、Logic.php は、さまざまな関数を実行するために呼び出されます。

最近 mvc フレームワークについて調べたので、原理は理解できましたが、深く掘り下げないとまだ少し難しいように感じます。
小規模なプロジェクトを実行している場合、このスイッチ構造は適切ですか? A用 フロントデスク AJAXを使用する場合、一般的には URL:logic.php
data:{action:update_commnet, commit:"HelloW"} を呼び出します この種の




遅すぎるのでいくつか教えてください提案

皆さんありがとうございます



ディスカッションに返信(解決策)

誰も返信しませんでしたが、私の質問の仕方が間違っているのでしょうか? 。 。

あなたの書き方はmvcルーティングと同じです
違いは、限られた(既知の)メソッドを扱っているのに対し、mvcルーティングは無制限のメソッドを処理できることです(メソッドの追加にルーティングコードを変更する必要はありません)

誰も答えませんでした、もしかして私の質問の仕方が間違っていたのでしょうか? 。 。

この方法は問題ありません。私もこのモードを使用しています
投稿者はこの方法について質問がありますか?

アクションが少ない場合は問題ありませんが、アクションが多すぎる場合は構成を選択することをお勧めします。

例:
$actions = array(
'check_userlogin' => 'login',
.....
);
$action=_$POST[action];

if(isset($actions) [ $action]) && function_exists($actions[$action])) {
$actions[$action](); }

書き方は mvc のルーティングと同じです

違いはやり方にあります。これは限定された (既知の) メソッドですが、mvc ルーティングは無制限のメソッドを処理できます (メソッドの追加にルーティング コードを変更する必要はありません)

これで終わりです。多くのアクションを定義する必要があり、もう 1 つのケースが必要になるのも不思議ではありません。毎回本当にありがたいことですが、小規模なプロジェクトではルートがそれほど多くない場合は、大きな問題にはなりません。
また、テンプレートエンジンを使用せずに、バックグラウンドでテンプレートファイルである EOT に独自のテンプレートフレームワークを作成しました

アクションが少ない場合は問題ありませんが、アクションが多すぎる場合は、設定オプションを作成します。


例:
$actions = array(
'check_userlogin' => 'login',
.....
);
$action=_$POST[action];

if(isset($actions) [ $action]) && function_exists($actions[$action])) {
$actions[$action](); }

そうですね、非常に興味深いですが、小規模なプロジェクトではあまり多くのアクションは必要ありません。でも、これはとても良さそうです。各関数名に対応するアクションだけで大丈夫です。アドバイスありがとうございます
ハタシーにあまり詳しくなく、CIとYIIを見た後、呼び出しを行ったり来たりするのは少し混乱するように感じたため、だから私はこの問題を抱えています

私は上記の人々の答えに同意します。

Rails の成功以来、すべてのフレームワークは、「規約は構成よりも重要である」という概念に従ってきました。

アクティブな構成ではなく、合意されたルールを使用するようにしてください。これにより、コードのスケーラビリティが向上し、その後のメンテナンスの作業負荷がさらに軽減されます。



if elseif を使用します

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