PHP 開発: CodeIgniter を使用して MVC パターンと RESTful API を実装する

PHPz
リリース: 2023-06-16 08:10:02
オリジナル
1336 人が閲覧しました

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 パターンを実装する方法を見てみましょう。

  1. モデル層

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() メソッドを使用して、データベースからデータを取得します。

  1. View レイヤー

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 テーブルにレンダリングします。

  1. コントローラー層

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 を実装する方法を見てみましょう。

  1. インストールと構成

まず、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(),
));
ログイン後にコピー
  1. RESTful API の実装

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 を持つリソースを定義します:

    #GET /users - すべてのユーザーのリストを取得します。
  • GET /users/:id - 個々のユーザー情報を取得します。
  • POST /users - ユーザーを作成します。
  • PUT /users/:id - ユーザー情報を更新します。
  • DELETE /users/:id - ユーザーを削除します。
結論

この記事では、CodeIgniter フレームワークを使用して MVC パターンと RESTful API を実装する方法について説明しました。 CodeIgniter フレームワークの 3 つの部分 (モデル、ビュー、コントローラー) を組み合わせて複雑な Web アプリケーションを作成する方法を検討しました。 CodeIgniter での Web サービス開発を簡素化するために使用できる RESTful API についても説明しました。これらのサンプル コードが、CodeIgniter フレームワークを使用して MVC パターンと RESTful API を実装する方法をより深く理解するのに役立つことを願っています。

以上がPHP 開発: CodeIgniter を使用して MVC パターンと RESTful API を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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