現在の Web アプリケーション開発分野では、多くのエンタープライズ レベルの Web アプリケーションが PHP 言語を使用して実装されています。その中でも、ThinkPHP フレームワークは、国内 PHP フレームワーク開発のパイオニアの 1 つであり、長年の開発と改善を経て、中国で最も人気のある PHP フレームワークの 1 つになりました。この記事では、ThinkPHP6 フレームワークの学習と実践を通じて、完全なエンタープライズ レベルの Web アプリケーションを最初から構築します。
1. インストールと設定
まず、ローカル環境に PHP とデータベース (MySQL など)、および Composer パッケージ マネージャーをインストールする必要があります。
次に、ThinkPHP6 フレームワークの最新バージョンをダウンロードし、指定された作業ディレクトリにファイルを配置します。次に、コマンド ライン ウィンドウで「composer install」コマンドを実行して、フレームワークに必要な依存ライブラリとプラグインをインストールします。
次に、プロジェクトを構成する必要があります。まず、プロジェクトの環境変数を .env ファイルに設定し、.env.example ファイルの名前を .env ファイルに変更します。次に、データベースを構成し、/config/database.php ファイルにデータベース接続情報を設定します。
最後に、ルート ディレクトリで「php think merge:run」コマンドを実行して、データベース テーブルと初期データを作成する必要があります。
2. コントローラーとモデルの作成
ThinkPHP6 フレームワークでは、HTTP リクエストの処理にコントローラー (Controller) が使用され、主要なビジネス ロジックの処理はコントローラーによって処理されます。 Modelはデータベースを操作してデータを取得したり格納したりするクラスです。
この例では、ユーザー コントローラーと対応するユーザー モデルを作成します。 /app/controller フォルダーに User.php ファイルを作成し、次のコードを記述します。
<?php namespace appcontroller; use thinkacadeDb; use thinkacadeRequest; class User { public function getAllUser() { $userList = Db::table('user')->select(); return json_encode($userList); } public function getUserById($id) { $user = Db::table('user')->where('id', $id)->find(); return json_encode($user); } public function addUser() { $data = Request::param(); Db::table('user')->insert($data); return 'Add Successfully'; } public function updateUser($id) { $data = Request::param(); Db::table('user')->where('id', $id)->update($data); return 'Update Successfully'; } public function deleteUser($id) { Db::table('user')->where('id', $id)->delete(); return 'Delete Successfully'; } }
/app/model フォルダーに User.php ファイルを作成し、次のコードを記述します。
<?php namespace appmodel; use thinkModel; class User extends Model { protected $table = 'user'; }
3. ルーティングとビューの作成
ThinkPHP6 フレームワークでは、ルーティング (Route) は URL を対応するコントローラーとメソッドにマップするために使用され、ビュー (View) は処理後のコントローラーを表示するために使用されます。ビジネスの論理。
この例では、次のルートを作成しました:
/app/route.php ファイルに次のコードを記述します。
<?php use thinkacadeRoute; Route::get('/user', 'User/getAllUser'); Route::get('/user/:id', 'User/getUserById'); Route::post('/user', 'User/addUser'); Route::put('/user/:id', 'User/updateUser'); Route::delete('/user/:id', 'User/deleteUser');
次に、/app/view フォルダーの下に User フォルダーを作成し、そのフォルダー内に配置します。 Index.html、edit.html、add.html などのビュー ファイルを作成します。
index.html ファイルには、すべてのユーザー リストをリストできます。 edit.html および add.html ファイルでは、ユーザー情報を編集および追加できます。
最後に、対応するビューのレンダリング メソッドをコントローラーに記述します。たとえば、ユーザー コントローラーでは次のコードを作成できます。
public function all() { return view('index')->assign('userList', Db::table('user')->select()); } public function edit($id) { return view('edit')->assign('user', Db::table('user')->where('id', $id)->find()); } public function add() { return view('add'); }
4. ユーザー認証の実装
エンタープライズ レベルの Web アプリケーションでは、ユーザー認証は非常に重要な機能です。 ThinkPHP6 フレームワーク内では、Auth コンポーネントを通じてシンプルかつ柔軟なユーザー認証を実装できます。
まず、/config/auth.php ファイルで認証関連の構成を実行する必要があります。
次に、コントローラーの Auth コンポーネントが提供するログイン、ログアウト、チェックなどのメソッドを使用して、ユーザー認証機能を開発します。たとえば、ユーザー コントローラーでは、次のコードを作成できます。
<?php namespace appcontroller; use appmodelUser as UserModel; use thinkacadeDb; use thinkacadeRequest; use thinkacadeSession; use thinkacadeView; use thinkuthAuth; class User { public function login() { if (Request::isPost()) { $data = Request::param(); if (Auth::attempt(['username' => $data['username'], 'password' => $data['password']])) { Session::flash('success', 'Login successfully.'); return redirect('/index'); } else { Session::flash('error', 'Login failed.'); return view('login'); } } else { return view('login'); } } public function register() { if (Request::isPost()) { $data = Request::param(); $userModel = new UserModel(); $userModel->save($data); return redirect('/login'); } else { return view('register'); } } public function logout() { Auth::logout(); Session::flash('success', 'Logout successfully.'); return redirect('/login'); } public function check() { $user = Auth::user(); if (!$user) { Session::flash('error', 'You are not logged in.'); return redirect('/login'); } return $user; } }
5. API インターフェイスの実装
エンタープライズ レベルの Web アプリケーションでは、API インターフェイスは非常に重要な機能です。 ThinkPHP6 フレームワーク内で、呼び出し側からのデータ要求を満たす API インターフェイスを開発できます。
この例では、次の API インターフェイスを作成しました。
コントローラーでは、API インターフェイスのバージョン、リクエスト タイプ、リクエスト パラメーター、応答形式、その他の関連コンテンツを処理する必要があります。
たとえば、ユーザー コントローラーで次のコードを作成できます:
<?php namespace appcontroller; use appmodelUser as UserModel; use thinkacadeDb; use thinkacadeRequest; class User { // ... public function getAllUser() { $userList = Db::table('user')->select(); return json($userList); } public function getUserById($id) { $user = Db::table('user')->where('id', $id)->find(); return json($user); } public function addUser() { $data = Request::param(); Db::table('user')->insert($data); return 'Add Successfully'; } public function updateUser($id) { $data = Request::param(); Db::table('user')->where('id', $id)->update($data); return 'Update Successfully'; } public function deleteUser($id) { Db::table('user')->where('id', $id)->delete(); return 'Delete Successfully'; } }
6. Web アプリケーションのデプロイ
エンタープライズ レベルの Web アプリケーションを開発した後、ユーザーがアクセスできるようにサーバーにデプロイする必要があります。特定の展開プロセスでは、次の点に注意する必要があります:
4. まとめ
上記の手順を通じて、ThinkPHP6 フレームワークを使用して完全なエンタープライズ レベルの Web アプリケーションを最初から作成することに成功し、対応する知識とスキルを学習しました。今後の開発においては、状況に応じてこれらの技術を柔軟に活用し、より良いWebアプリケーションを開発していきます。
以上がThinkPHP6 を通じて完全なエンタープライズレベルの Web アプリケーションを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。