ホームページ >バックエンド開発 >PHPチュートリアル >Lithe と Eloquent を使用したミニ ブログ API の作成
最初のステップは、プロジェクトに Lithe をインストールすることです。まだ実行していない場合は、ターミナルで次のコマンドを実行してください:
composer create-project lithephp/lithephp mini-blog-api
このコマンドは、Lithe を使用して新しいプロジェクトを作成します。 Lithe は Eloquent を自動的に構成しますが、データベースに接続するには .env ファイル内のいくつかの設定を調整する必要があります。
それでは、データベースを設定しましょう。プロジェクトのルートにある .env ファイルを開き、データベース設定を編集します。 MySQL で Eloquent ORM を使用するには、設定は次のようになります:
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
Lithe は Eloquent を自動的に構成するため、次のステップは Eloquent ORM がインストールされていることを確認することです。まだ行っていない場合は、次のコマンドを実行して Eloquent ORM をインストールします:
composer require illuminate/database
インストール後、Lithe は Eloquent ORM を使用してデータベースと対話できるようになります。これで、データベースは ミニ ブログ API 用に正しく構成されました!
次に、モデルと移行を作成して、データベースに posts テーブルを定義しましょう。
まず、次のコマンドを使用して Post モデルを作成します。
php line make:model Post
次に、posts テーブルの移行を作成します。
php line make:migration create_posts_table
モデルと移行が作成されました。設定してみましょう。
Post モデルは src/models/Post.php にあります。ファイルを次のように編集します:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class Post extends Model { // The table associated with the model protected $table = 'posts'; // Fields that can be filled via mass-assignment protected $fillable = ['title', 'content']; // Use timestamps for created_at and updated_at public $timestamps = true; }
このコードでは、タイトル フィールドとコンテンツ フィールドを入力可能として定義します。これは、投稿の作成または更新時に自動的に入力できることを意味します。
生成された移行は src/database/migrations/{timestamp}_create_posts_table.php に配置されます。移行を編集して、posts テーブルの構造を作成します:
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Capsule\Manager as Capsule; return new class { public function up(): void { Capsule::schema()->create('posts', function (Blueprint $table) { $table->id(); // Creates the auto-incrementing id field $table->string('title'); // Creates the title field $table->text('content'); // Creates the content field $table->timestamps(); // Creates created_at and updated_at fields }); } public function down(): void { Capsule::schema()->dropIfExists('posts'); } };
ここでは、フィールド ID、タイトル、コンテンツ、および日時フィールド created_at および updated_at を含む posts テーブルを作成しています。
移行とモデルの準備ができたら、移行を実行してデータベースに Posts テーブルを作成しましょう。次のコマンドを実行します:
php line migrate
このコマンドは、移行で定義したフィールドを使用してデータベースに Posts テーブルを作成します。
次に、API のポストを管理するための コントローラー を作成しましょう。コントローラーは、HTTP リクエストを処理し、組織的な方法でデータを返す責任を負います。
コントローラーを作成するには、以下を実行します:
composer create-project lithephp/lithephp mini-blog-api
これにより、src/http/Controllers/PostController.php にファイルが生成されます。このファイルを編集して、投稿の CRUD (作成、読み取り、更新、削除) メソッドを含めます。
PostController の例を次に示します。
DB_CONNECTION_METHOD=eloquent DB_CONNECTION=mysql DB_HOST=localhost DB_NAME=lithe_eloquent DB_USERNAME=root DB_PASSWORD= DB_SHOULD_INITIATE=true
ここでは 5 つの基本的なメソッドを紹介します。
次に、ポスト API のルートを定義しましょう。ファイル src/App.php を開き、次のコードを追加します:
composer require illuminate/database
上記のコードは、Lithe アプリのインスタンスを作成します。 $app->set('routes', __DIR__ . '/routes'); という行Lithe にルート ファイルの場所を指示します。 Lithe は、src/routes フォルダー内のすべてのファイルを自動的にロードします。各ルート ファイルは、その名前に基づいて URL にマッピングされます。例:
$app->listen(); の行Lithe はリクエストを「リッスン」します。つまり、受信リクエストを待ち、定義されたルートにリクエストを送ります。
次に、src/routes/posts フォルダー内に /posts ルートを表す posts.php というファイルを作成し、次のコードを追加します。
php line make:model Post
これらのルートは、PostController のメソッドを API URL に接続します。
すべての設定が完了したので、Postman や Insomnia などのツールを使用して API をテストできます。テストできるエンドポイントは次のとおりです:
これで、Lithe と Eloquent ORM を使用して ミニ ブログ API が作成されました。 Lithe は Eloquent を自動的にセットアップします。私たちは環境変数にいくつかの調整を加え、必要なモデルとコントローラーを作成するだけで済みます。これで、ブログ投稿を管理するための完全な RESTful API が完成しました。
Lithe および Eloquent ORM の使用方法の詳細については、Lithe の公式ドキュメント (Lithe Documentation) を参照してください。
以上がLithe と Eloquent を使用したミニ ブログ API の作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。