ホームページ > バックエンド開発 > PHPチュートリアル > thinkPHP5.0フレームワークモジュール設計の詳細

thinkPHP5.0フレームワークモジュール設計の詳細

黄舟
リリース: 2023-03-06 19:04:01
オリジナル
1797 人が閲覧しました

この記事では、主に thinkPHP5.0 フレームワークモジュール設計を紹介し、thinkPHP5.0ディレクトリ構造、命名規則について簡単に説明し、モジュールクラスライブラリの原則とアクセス方法を例の形で分析します。が必要です。お友達は参考にしてください

この記事では、thinkPHP5.0 フレームワーク モジュールの設計について例を示して説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

バージョン 5.0 は、デフォルトでマルチモジュール アーキテクチャを採用し、すべてのモジュールの 名前空間 を使用します。 app をルート名前空間として使用します (構成可能な変更)。

ディレクトリ構造

標準のアプリケーションとモジュールのディレクトリ構造は次のとおりです:

├─application           应用目录(可设置)
│  ├─common             公共模块目录(可选)
│  ├─common.php         公共函数文件
│  ├─route.php          路由配置文件
│  ├─database.php       数据库配置文件
│  ├─config.php         应用配置文件
│  ├─module1            模块1目录
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  └─ ...            更多类库目录
│  │
│  ├─module2            模块2目录
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录
│  │  ├─model           模型目录
│  │  ├─view            视图目录
│  │  └─ ...            更多类库目录
ログイン後にコピー

ThinkPHP5.0 の命名規則に従い、モジュールのディレクトリはすべて小文字で名前が付けられ、下線が付いています。

モジュール名に PHP の予約キーワードを使用しないでください (予約語のリストについては、http://php.net/manual/zh/reserved.keywords.php を参照してください)。使用しないと、システム エラーが発生します。

共通モジュールは、デフォルトで直接アクセスを禁止する特殊なモジュールで、通常、他のモジュールから継承するためにいくつかのパブリッククラスライブラリを配置するために使用されます。

モジュールクラスライブラリ

モジュールの下のクラスライブラリファイルの名前空間は、一律にアプリモジュール名で始まります。例:

// index模块的Index控制器类
app\index\controller\Index
// index模块的User模型类
app\index\model\User
ログイン後にコピー

アプリは定義された方法で変更できます。たとえば、次のように変更します。アプリケーション設定ファイル:

'app_namespace' => 'application',
ログイン後にコピー

次に、インデックス モジュールのクラス ライブラリ名前空間は次のようになります:

// index模块的Index控制器类
application\index\controller\Index
// index模块的User模型类
application\index\model\User
ログイン後にコピー

クラス ライブラリと名前空間の関係の詳細については、次の前の記事「ThinkPHP5.0 フレームワークの詳細な説明」を参照してください。ネームスペース」。

モジュールとコントローラーを非表示にする

デフォルトではマルチモジュールサポートを使用するため、モジュールが 1 つしかない場合は、現在のモジュールを URL アドレスで識別する必要があります。 : 次のコードをアプリケーションのパブリック ファイルに追加します:

// 绑定当前访问到index模块
\think\Route::bind('index');
ログイン後にコピー

バインド後の URL アクセス アドレスは次のようになります:

http://serverName/index.php/控制器/操作/[参数名/参数值...]
ログイン後にコピー

アクセスされるモジュールはインデックス モジュールです。

アプリケーションが比較的単純で、モジュールとコントローラーが 1 つだけある場合は、次のようにアプリケーションのパブリック ファイルでモジュールとコントローラーをバインドできます:

// 绑定当前访问到index模块的index控制器
\think\Route::bind('index/index');
ログイン後にコピー

設定後、URL アクセス アドレスは次のようになります:

によってアクセスされるモジュール
http://serverName/应用入口/操作/[参数名/参数值...]
ログイン後にコピー

はインデックス モジュール、コントローラーはインデックス コントローラーです。

単一モジュール

アプリケーションが比較的単純で、モジュールが 1 つしかない場合は、単一モジュール構造を使用することでさらに簡素化できます。方法は次のとおりです。

まず、アプリケーション構成ファイルで定義します。

// 关闭多模块设计
'app_multi_module' => false,
ログイン後にコピー

次に、調整します。 アプリケーション ディレクトリの構造は次のとおりです。

├─application        应用目录(可设置)
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─view            视图目录
│  ├─ ...            更多类库目录
│  ├─common.php      函数文件
│  ├─route.php       路由配置文件
│  ├─database.php    数据库配置文件
│  └─config.php      配置文件
ログイン後にコピー

URL アクセス アドレスは

http://serverName/index.php(或者其它应用入口)/控制器/操作/[参数名/参数值...]
ログイン後にコピー

になります。 同時に、単一モジュール設計下のアプリケーション クラス ライブラリの名前空間も調整され、例:

元の

app\index\controller\Index
app\index\model\User
ログイン後にコピー

app\controller\Index
app\model\User
ログイン後にコピー

になります。 URL ルーティング機能を使用すると、さらに URL の簡素化とカスタマイズを行うこともできます。

以上がthinkPHP5.0フレームワークモジュール設計の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート