1: ucenter をインストールした後、ブラウザのアドレス バーに ucenter ドメイン名を入力すると、index.php がデフォルトで読み込まれます。パラメータを指定せずにドメイン名を入力すると、admin にジャンプします。 php をルートディレクトリに置きます。コードを見ると、
$m と $a は、index.php と admin.php によって受け取られるパラメーターです。 $m はインスタンス化されるクラスをコード化し、$a は呼び出されるメソッドをコード化します。たとえば、$m=user,$a=login は /control/user.php,$m=new usercontrol(),$ をロードします。 m->onlogin();
次のステップは、モデルのリリース バージョンの下にあるファイルを導入することです。存在する場合は、/release/ の下にあるファイルが最初に導入されます。存在しない場合は、/model の下にあるファイルが導入されます。 $m と $a が存在する場合、次のコードを使用して動的呼び出しが行われます。コードからは、m、app、frame、user のタイプは次の 1 つだけであり、これらはすべてこの /control 下の複数のファイルに対応していることがわかります。
次に、対応する制御ファイルをロードし、クラス名を取得して、クラスをインスタンス化します。メソッドを呼び出す前に、まずクラスに関数があるかどうかを確認し、関数がある場合は最初に $method=on.$a メソッドを呼び出します。は存在しません。_call($method) を使用して呼び出してください。
下の図からわかるように、m は以下の対応するオブジェクトにインスタンス化できます。 $aの値はクラスチェンジ以下のメソッドで実装されます。 $m=app、$a=add という小さなテストを行うことができます。テスト結果は右のとおりです。なぜ -1 が返されるのかについては、/control/app.php の onadd() メソッドを参照してください。
index.php の背後にある addslash 関数の処理は、一般に PHP6 以降を処理するためのセキュリティ対策です。 php6 では MAGIC_QUOTES_GPC が非推奨になっているため、サーバーは $_POST、$_GET、$COOKIE からのデータをエスケープしません。このように、一重引用符 '、二重引用符 "、/ の特殊文字によって SQL インジェクションの問題が発生しないように、addslashes を使用して手動でエスケープする必要があります。