Laravel プロジェクトの作成と実行
Laravel とは?
Laravel は、PHP 開発者 Taylor Otwell によって作成されたオープンソースの PHP Web フレームワークです。開発者にシンプルで優雅なツールセットを提供し、モダンな Web アプリケーションを構築することを目的としています。Laravel は、ルーティング、セッション、キャッシュ、認証などの豊富な機能を提供し、一般的な Web 開発タスクを簡素化します。
Laravel の主要な特性と利点
- シンプルで優雅:Laravel の文法はシンプルで優雅であり、コードの可読性と保守性を向上させます。
- 豊富な機能セット:ルーティング、認証、セッション管理、キャッシュなどが含まれており、開発作業を大幅に簡素化します。
- 強力な ORM:Eloquent ORM はシンプルな ActiveRecord 実装を提供し、データベース操作を容易にします。
- モジュール設計:Composer パッケージマネージャーを通じてサードパーティのライブラリや拡張機能を簡単に統合できます。
- 強力なコミュニティサポート:大規模な開発者コミュニティと豊富なエコシステムがあります。
Laravel は、開発者が高品質の Web アプリケーションおよび API を迅速に構築するのを助け、小規模なアプリケーションから大規模なエンタープライズ級システムまで、様々な規模のプロジェクトに適しています。
ServBay を使用して Laravel プロジェクトを作成し実行する
この記事では、ServBay の提供する PHP 環境を使用して Laravel プロジェクトを作成し実行します。ServBay の『ホスト』機能を利用して Web サーバーを設定し、簡単な設定でプロジェクトへのアクセスを実現します。
注意:NGINX または Apache のユーザーだった場合
ServBay はデフォルトで Caddy を Web サーバーとして使用しています。NGINX や Apache から ServBay に移行するユーザーには、いくつかの重要な変更点があります:
Caddy 設定
ServBay には Caddy が組み込まれており、デフォルト設定はすでに最適化・デバッグ済みです。開発者は ServBay の『ホスト』機能を通じてサイトを管理するだけで、Caddy 設定ファイルを手動で編集する必要はありません。
Rewrite ルールと .htaccess
NGINX や Apache では、開発者が Rewrite ルールや .htaccess ファイルを自分で書く必要がありますが、ServBay には Caddy のルールがすでに設定されていますので、特別なニーズがない限り、それらのルールを書く必要はありません。
詳細情報
詳細については、Rewriteとhtaccess、ApacheサイトのServBayへの移行方法、NGINXサイトのServBayへの移行方法を参照してください。
Laravel プロジェクトの作成
TIP
ServBay は、ウェブサイトを /Applications/ServBay/www
ディレクトリに置くことを推奨しています。管理を容易にするためです。
Composer のインストール
ServBay にはすでにComposer が組み込まれているため、個別にインストールする必要はありません。
Laravel プロジェクトの作成
Composer を使用して新しい Laravel プロジェクトを作成します。
bashcd /Applications/ServBay/www mkdir servbay-laravel-app cd servbay-laravel-app composer create-project --prefer-dist laravel/laravel .
1
2
3
4プロジェクトディレクトリに入る
新しく作成した Laravel プロジェクトディレクトリに入ります:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
初期設定
アプリケーションキーの生成
Laravel ではユーザーセッションやその他の暗号化データの安全性を確保するためにアプリケーションキーが必要です。Artisan コマンドを使用してアプリケーションキーを生成できます:
bashphp artisan key:generate
1環境変数の設定
.env
ファイルでデータベース接続情報やその他の環境変数を設定します。以下の設定が正しく行われていることを確認してください:APP_NAME=Laravel APP_ENV=local APP_KEY=base64:... APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Web サーバーの設定
ServBay の『ホスト』機能を使用して、Laravel プロジェクトにアクセスするための Web サーバーを設定します。ServBay の『ホスト』設定で新しいホストを追加します:
- 名前:
My First Laravel Dev Site
- ドメイン:
servbay-laravel-test.local
- ウェブサイトタイプ:
PHP
- PHP バージョン:
8.3
を選択 - ウェブサイトのルートディレクトリ:
/Applications/ServBay/www/servbay-laravel-app/public
詳細な設定手順については、最初のウェブサイトの追加を参照してください。
サンプルコードの追加
routes/web.php
ファイルに以下のコードを追加して、「Hello ServBay!」を出力します:
Route::get('/', function () {
return 'Hello ServBay!';
});
2
3
ウェブサイトにアクセスする
ブラウザを開いて https://servbay-laravel-test.local
にアクセスすると、Hello ServBay!
が表示されるのを確認できます。
NoSQLデータベースサンプル
Memcached サンプル
Memcached 拡張のインストール
ServBay には Memcached 拡張が予めインストールされているため、追加のインストールは不要です。
Memcached の設定
.env
ファイルで Memcached の接続情報を設定します:CACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1
1
2Memcached の使い方
コントローラー内でキャッシュを使用します:
phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached', function () { Cache::put('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6
Redis サンプル
Redis 拡張のインストール
ServBay には Redis 拡張が予めインストールされているため、追加のインストールは不要です。
Redis の設定
.env
ファイルで Redis の接続情報を設定します:CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
1
2
3
4Redis の使い方
コントローラー内でキャッシュを使用します:
phpuse Illuminate\Support\Facades\Redis; Route::get('/redis', function () { Redis::set('key', 'value'); return Redis::get('key'); });
1
2
3
4
5
6
リレーショナルデータベースサンプル
データベース構造とマイグレーションファイルの作成
マイグレーションファイルの作成
Artisan コマンドを使用してマイグレーションファイルを作成します:
bashphp artisan make:migration create_accounts_table
1マイグレーションファイルの編集
database/migrations
ディレクトリで新しく作成されたマイグレーションファイルを見つけ、データベーステーブル構造を定義するために編集します:phppublic function up() { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); }
1
2
3
4
5
6
7
8
9マイグレーションの実行
Artisan コマンドを使用してマイグレーションを実行し、データベーステーブルを作成します:
bashphp artisan migrate
1
MySQL サンプル
MySQL の設定
.env
ファイルで MySQL の接続情報を設定します:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6ユーザーデータの書き込み
コントローラー内でユーザーデータを書き込みます:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9MySQL の使用
コントローラー内でデータベースを呼び出します:
phpuse Illuminate\Support\Facades\DB; Route::get('/mysql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
PostgreSQL サンプル
PostgreSQL の設定
.env
ファイルで PostgreSQL の接続情報を設定します:DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password
1
2
3
4
5
6ユーザーデータの書き込み
コントローラー内でユーザーデータを書き込みます:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add', function () { DB::table('accounts')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'Account added'; });
1
2
3
4
5
6
7
8
9PostgreSQL の使用
コントローラー内でデータベースを呼び出します:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6
以上の手順を通じて、Laravel プロジェクトを作成し実行し、ServBay の機能を使用してプロジェクトを管理およびアクセスすることができ、多様なデータベースに接続してデータを操作することができます。