Web アプリケーションは進化し続けるため、アプリケーションをより迅速かつ効率的に開発することが重要です。また、Web アプリケーションで RESTful API が広く使用されているため、開発者は RESTful API の作成および実装方法を理解することが不可欠です。この記事では、CodeIgniter フレームワークを使用して MVC パターンと RESTful API を実装する方法について説明します。
MVC パターンの概要
MVC (Model-View-Controller)、つまりモデル ビュー コントローラーは、オブジェクト指向プログラミングにおける一般的なアーキテクチャ設計パターンです。 MVC パターンでは、アプリケーションは 3 つの部分に分割されます。
モデル - データとデータ ロジックを処理する部分。
View - ユーザー インターフェイスとユーザー入力を処理する部分。
Controller (コントローラー) - リクエストを処理し、正しい応答を保証する部分。
MVC アーキテクチャは、Web アプリケーション開発で広く採用されているパターンの 1 つです。これにより、開発者はアプリケーションを管理しやすい部分に分割できるようになり、開発が容易になります。
RESTful API パターンの概要
REST (Representational State Transfer)、つまりプレゼンテーション層の状態転送は、Web サービスを作成するためのパターンです。 RESTful API は、データ転送と通信に HTTP プロトコルを使用する一般的なタイプの Web サービスです。
RESTful API パターンでは、データはリソースとして表され、Uniform Resource Identifier (URI) としてアクセスされます。クライアントは、HTTP 動詞 (GET、POST、PUT、DELETE) を使用してデータに対する操作を実行できます。これにより、RESTful API は理解しやすく、拡張可能で、開発が容易になり、より高度な相互運用性が実現します。
CodeIgniter フレームワーク
CodeIgniter は、インストールと使用が簡単な軽量の PHP 開発フレームワークです。これは、開発者が複雑な Web アプリケーションを迅速に構築できる豊富なライブラリとツールを備えた、Web アプリケーション開発用の強力なツールです。
CodeIgniter を使用して MVC パターンを実装する
CodeIgniter フレームワーク自体は、MVC パターンに基づいて開発されています。これを使用して MVC パターンを実装する方法を見てみましょう。
CodeIgniter では、モデル コンポーネントはデータとデータ ロジックの処理、およびデータベースとの通信を担当します。 application/models ディレクトリに独自のモデル クラスを作成できます。
以下は簡単なモデル クラスの例です:
<?php class Users_model extends CI_Model { public function __construct() { $this->load->database(); } public function get_users() { $query = $this->db->get('users'); return $query->result_array(); } }
上記のコード例は、users という名前のテーブル内のすべてのデータを返します。 $this->db->get() メソッドを使用して、データベースからデータを取得します。
CodeIgniter では、View コンポーネントがユーザー インターフェイスの処理を担当し、ビュー ファイルは application/views ディレクトリに保存されます。独自のビュー ファイルを作成できます。
以下は簡単なビュー ファイルの例です:
<html> <head> <title>Users List</title> </head> <body> <h1>Users List</h1> <table> <thead> <tr> <th>ID</th> <th>Name</th> </tr> </thead> <tbody> <?php foreach ($users as $item) { ?> <tr> <td><?php echo $item['id']; ?></td> <td><?php echo $item['name']; ?></td> </tr> <?php } ?> </tbody> </table> </body> </html>
上記のコード例はカスタム配列 $users 内のデータを返します。 foreach ループを使用してデータを反復処理し、HTML テーブルにレンダリングします。
CodeIgniter では、コントローラー コンポーネントはユーザー リクエストを処理し、リクエストに基づいて適切なモデル コンポーネントとビュー コンポーネントを呼び出す役割を果たします。 application/controllers ディレクトリに独自のコントローラー クラスを作成できます。
以下は簡単なコントローラー クラスの例です:
<?php class Users extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('users_model'); } public function index() { $data['users'] = $this->users_model->get_users(); $this->load->view('users', $data); } }
上記のコード例では、ユーザーが URL にアクセスすると、index メソッドが呼び出され、Model コンポーネントからこのデータが返されます。ユーザーのリクエストに応じて、それとビューが HTML ページにレンダリングされます。
CodeIgniter を使用して RESTful API を実装する
CodeIgniter では、RESTful API を使用して Web サービスを簡単に作成できます。 CodeIgniter を使用して RESTful API を実装する方法を見てみましょう。
まず、Composer を使用して REST サーバー ライブラリをインストールする必要があります。次のコードをcomposer.jsonファイルに追加します。
{ "require": { "chriskacerguis/codeigniter-restserver": "^3.1" } }
次のコマンドを実行して REST サーバーをインストールします:
composer install
次に、REST サーバー ライブラリを有効にする必要があります。 CodeIgniter で、次のステートメントを使用して REST サーバー ライブラリを有効にします。
$this->load->library('rest', array( 'rest_server' => array( 'server' => 'http://localhost', 'port' => 80, 'api_key' => 'YOUR_API_KEY', 'api_name' => 'YOUR_API_NAME', 'api_email' => 'YOUR_API_EMAIL', 'api_description' => 'YOUR_API_DESCRIPTION', 'api_maintenance' => FALSE ), 'rest_client' => array(), ));
CodeIgniter では、RESTful API リクエストはリソース名と HTTP アクションとして定義されます。したがって、リソースごとにコントローラーとメソッドを定義する必要があります。これらのコントローラーとメソッドは、対応するリソースに対するさまざまな HTTP アクションを処理します。
次は、ユーザー リソースの一意の識別子 (URI) を定義する例です:
<?php class Users extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('users_model'); $this->load->library('form_validation'); } public function index_get() { $users = $this->users_model->get_users(); $this->response($users, 200); } public function show_get($id) { $users = $this->users_model->get_user($id); $this->response($users, 200); } public function create_post() { $this->form_validation->set_rules('name', 'Name', 'required'); $name = $this->input->post('name'); if ($this->form_validation->run()) { $this->users_model->create_user($name); $this->response(['User created'], 200); } else { $this->response([ 'error' => true, 'message' => validation_errors() ], 422); } } public function update_put($id) { $this->form_validation->set_rules('name', 'Name', 'required'); $name = $this->input->put('name'); if ($this->form_validation->run()) { $this->users_model->update_user($id, $name); $this->response(['User updated'], 200); } else { $this->response([ 'error' => true, 'message' => validation_errors() ], 422); } } public function delete_delete($id) { $this->users_model->delete_user($id); $this->response(['User deleted'], 200); } }
上記のコード例は、次の URI を持つリソースを定義します:
以上がPHP 開発: CodeIgniter を使用して MVC パターンと RESTful API を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。