ホームページ >php教程 >php手册 >phpcms(1)phpcms V9 MVC モードと URL アクセス解決 (転送)、phpcmsmvc

phpcms(1)phpcms V9 MVC モードと URL アクセス解決 (転送)、phpcmsmvc

WBOY
WBOYオリジナル
2016-07-06 14:24:29929ブラウズ

phpcms(1)phpcms V9 MVCモードとURLアクセス解析(転送)、phpcmsmvc

【1】URLアクセス解析

WebページにアクセスするときにURLを観察すると、次のようにモジュールのアクセス方法を取得できます。次の例:

http ://www.abcd.com.cn/phpcms/index.php?m=content&c=index&a=show&id=1

About this URL は次のように解析されます:

m = content は、 phpcms/modules/content (Required) にあるモジュール/モデル名

c = Index は phpcms/modules/content/index.php (Required) にあるコントローラー名です

a = show はイベント名ですphpcms/modules/content/index.php にあります。 show メソッド

id = 1 は、他のパラメータに渡される通常のパラメータ形式と同じです

次に、ここで問題が発生します。私たちがホームページでよくアクセスする URL は次のとおりです。 http://www.abcd.com.cn/phpcms/index.php m と c に値がないのはなぜですか?

ここで説明しますと、システムがモジュールまたはコントローラーを指定しない場合、システムはデフォルトのモジュールと操作を実行します。上記の URL の場合、PHPCMS デフォルト ルートは、コンテンツ モジュールのインデックス コントローラーで init 操作を見つけます。したがって、結果は次の URL と同じになります:

http://www.abcd.com.cn/phpcms/index.php?m=content&c=index&a=init

システムは URL ルーティング機能もサポートしています。他の URL アクセス効果をもたらすことができます。

ルーティング ファイルは phpcmscachesconfigsroute.php にあり、内容は次のように構成されています:

 1 <?php
 2 /**
 3  * 路由配置文件
 4  * 默认配置为default如下:
 5  * 'default'=>array(
 6  *     'm'=>'phpcms', 
 7  *     'c'=>'index', 
 8  *     'a'=>'init', 
 9  *     'data'=>array(
10  *         'POST'=>array(
11  *             'catid'=>1
12  *             ),
13  *         'GET'=>array(
14  *             'contentid'=>1
15  *             )
16  *         )
17  * )
18  * 其中“m”为模型,“c”为控制器,“a”为事件,“data”为其他附加参数。
19  * data为一个二维数组,可设置POST和GET的默认参数。
20  * POST和GET分别对应PHP中的$_POST和$_GET两个超全局变量。
21  * 在程序中你可以使用$_POST['catid']来得到data下面POST中的数组的值。
22  * data中的所设置的参数等级比较低。如果外部程序有提交相同的名字的变量,将会覆盖配置文件中所设置的值。
23  * 如:外部程序POST了一个变量catid=2那么你在程序中使用$_POST取到的值是2,而不是配置文件中所设置的1。
24  */
25 return array(
26     'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
27 );

より具体的に理解するために、簡単な例は次のとおりです:

1. phpcms/modules ディレクトリに新しいフォルダーを作成し、「demo」という名前を付けます。つまり、モジュール名は「demo」です。

2. デモフォルダーで新しいテキストファイルを作成し、test という名前を付け、ファイルタイプを php に変更します。 Notepad++ でテスト ファイルを開き、内容を次のように編集します:

リーリー

注: test.php の内容はクラス内で記述する必要があります。そうしないと、コントロールが見つからない、つまり mvc の c が見つからないというメッセージが表示されます。 a が指定されていない場合、init メソッドが呼び出されます。init メソッドが実装されていない場合は、「アクションが存在しません」と表示されます。

3. ブラウザの URL バーに「http://localhost/phpcms/index.php?m=demo&c=test&a=show」と入力し、Enter キーを押します。結果は次のようになります。

【2】モジュール

phpcms V9 フレームワークのモジュールは phpcms/modules ディレクトリにあり、各ディレクトリはモジュールと呼ばれます。それが上記の URL アクセスの m です。

モジュールを作成する必要がある場合は、phpcms/modules ディレクトリにフォルダーを作成し、その中にコントローラー クラスを置きます。

【3】コントローラー

コントローラークラスについては「phpcms V9 モジュールの追加」の記事を参照してください

良い勉強、一日一日頑張ってください。

シーケンス選択ループの概要

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