ホームページ  >  記事  >  バックエンド開発  >  THINKPHP コントローラー_PHP チュートリアル

THINKPHP コントローラー_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-14 10:12:131041ブラウズ


新しいコントローラーを追加するにはどうすればよいですか?


Lib/Action に新しいコントローラーを追加します: ProductAction.class.php:


クラス ProductAction は Action{
を拡張します
パブリック関数index(){
echo '製品モジュール、インデックスメソッド';
}
}


次に、URL 経由でアクセスします: これにより、非常に重要な概念が導入されます:

URL スケジューリング モード: Web サイトにアクセスするときに使用するさまざまな UR アクセス方法です


tp は 4 つのアクセス方法をサポートしています。これらは URL_MODEL パラメータを通じて制御できます。


1. 通常の模擬テスト: デフォルトでサポートされています


www.tp.com/index.php?m=Product&a=index&id=1

mモジュール名

アクション


2.pathinfo モジュール (tp のデフォルトのスケジューリング モード):

http://www.tp.com/index.php/Product/index/id/1/name/zhangsan

製品モジュール名

インデックスメソッド名

idはパラメータです

1 は値です。 。 。 。 。 通常、次のパラメータはペアで表示されます。 /で区切ってください。


3. リライトモード、つまり書き換え。 ページの静的化で使用されます

エントリファイルは省略できます:

http://www.tp.com/Product/index/id/1/name/zhangsan

設定方法:

1. mod_rewrite.so モジュールが httpd.conf 設定ファイルにロードされます

2.AllowOverride None を None から All に変更します (#Options Indexes と同時に表示できないことに注意してください。そうしないと、アクセス権限がありません)


3. URL_MODEL が 2 に設定されていることを確認します

4. 以下の内容を .htaccess ファイルとして保存し、エントリーファイルと同じディレクトリに置きます

リライトエンジンオン

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$index.php/$1 [QSA,PT,L]


4.互換モード:

Web サーバーが pathinfo または rewrite モードをサポートしていないが、それでも使用したい場合は、互換モードの使用を検討できます


http://www.tp.com/index.php?s=Product/index/id/1/name/zhangsan

または: http://www.tp.com/?s=Product/index/id/1/name/zhangsan


設定ファイルでは、URL_MODELの0123がそれぞれ表現されています。デフォルトでサポートされています。何が起こっているのでしょうか? ? ? ?


どのモードでも通常モードがサポートされており、フォームを送信すると違いがわかります。

パス区切り文字: 'URL_PATHINFO_DEPR' => '-', // PATHINFO モードでは、各パラメータ間の区切り記号


http://www.tp.com/?s=Product-index-id-1-name-zhangsan

コントローラーの空気制御?このようにして、URL を簡素化し、その特性の 1 つを活用することができます。

システムは指定されたメソッドまたは実行メソッドを見つけることができません。


次のメソッドをコントローラーに追加します:

/*
※$nameはリクエストメソッドを表します
*/
パブリック関数 _empty($name){
echo '要求されたページを表示できません'.$name;
}


5. 空のモジュール

空のモジュールの概念は、システムが指定されたモジュール名を見つけられない場合、システムが空のモジュール (EmptyAction) を見つけようとすることを意味し、このメカニズムを使用してエラー ページをカスタマイズし、URL を最適化できます。

l 空のアクション

MODULE_NAME

URL をリクエストしてみます

http://localhost/tp/index.php/Student/shanghai

システムには StudentAction コントローラーがないため、エラーが報告されます

将来、システムが対応するモジュールを見つけられない場合、このクラスに _empty という別のメソッドを追加すると、この方法ですべてをブロックできます。 URL からのエラー


5. プロジェクトのグループ化

大規模プロジェクトでは、多くの場合、大規模なプロジェクトは複数の小規模なプロジェクトで構成されます。例:

が原因である可能性があります。

フロントエンド プロジェクト、バックエンド プロジェクト、メンバー ブログ、フォーラム

l config.php

l APP_GROUP_LIST グループリスト

l DEFAULT_GROUP デフォルトのグループ

私たちのプロジェクトで、今すぐグループ化を開始します:

1) フロントデスクプロジェクトホーム

2) バックエンドプロジェクト管理者

www.bkjia.com本当http://www.bkjia.com/PHPjc/477233.html技術記事新しいコントローラーを追加するにはどうすればよいですか? Lib/Action に新しいコントローラーを追加します: ProductAction.class.php: ?php class ProductAction extends Action{ public functionindex(){ echo product module, ind...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。