Laravelプロジェクトの作成と実行
Laravelとは?
Laravelは、PHPデベロッパーのTaylor Otwellによって作成されたオープンソースのPHPウェブフレームワークです。開発者がモダンなウェブアプリケーションを構築するためのシンプルでエレガントなツールキットを提供することを目指しています。Laravelは、ルーティング、セッション、キャッシュ、認証などの豊富な機能セットを提供し、一般的なウェブ開発タスクを簡素化します。
Laravelの主な特徴と利点
- 簡潔さと優雅さ: Laravelの構文は簡潔かつ優雅で、コードが読みやすく、保守しやすい。
- 豊富な機能セット: ルーティング、認証、セッション管理、キャッシュなどが含まれており、開発プロセスが大幅に簡素化される。
- 強力なORM: Eloquent ORMは、データベース操作のためのシンプルなActiveRecord実装を提供。
- モジュール設計: Composerパッケージマネージャを通じて、サードパーティのライブラリや拡張機能を簡単に統合。
- 強力なコミュニティサポート: 大規模な開発者コミュニティと豊富なエコシステム。
Laravelは、高品質なウェブアプリケーションおよびAPIを迅速に構築するための開発者を支援し、小さなアプリケーションから大規模なエンタープライズレベルのシステムまでさまざまなプロジェクトに適しています。
ServBayを使用したLaravelプロジェクトの作成と実行
この記事では、ServBayのPHP環境を使用してLaravelプロジェクトを作成し、実行します。ServBayの'Host'機能を利用してウェブサーバーを設定し、簡単な設定でプロジェクトにアクセスします。
注意: 以前にNGINXまたはApacheを使用していた場合
ServBayはデフォルトのウェブサーバーとしてCaddyを使用します。NGINXおよびApacheからServBayに移行するユーザーには、いくつかの重要な変更点があります:
Caddy設定
ServBayにはCaddyが組み込まれており、デフォルトで最適化およびデバッグされています。開発者はServBayの'Host'機能を使用してサイトを管理するだけで、Caddyの設定ファイルを手動で変更する必要はありません。
書き換えルールと.htaccess
NGINXおよびApacheでは、開発者は通常URLの書き換えやその他の設定を処理するために、自分で書き換えルールや.htaccessファイルを作成する必要があります。しかし、ServBayのデフォルト設定ではCaddyのルールがすでに設定されているため、特別な要件がない限りこれらのルールを自分で作成する必要はありません。
詳細情報
詳細については、Rewrite and htaccess、How to Migrate Apache Sites to ServBay、How to Migrate NGINX Sites to 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
ウェブサーバーの設定
ServBayの'Host'機能を使用して、ウェブサーバーを経由してLaravelプロジェクトにアクセスします。ServBayの'Host'設定で新しいホストを追加します:
- 名前:
My First Laravel Dev Site
- ドメイン:
servbay-laravel-test.local
- ウェブサイトタイプ:
PHP
- PHPバージョン:
8.3
を選択 - ウェブサイトルートディレクトリ:
/Applications/ServBay/www/servbay-laravel-app/public
詳細な手順については、Adding the First Websiteをご参照ください。
サンプルコードの追加
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の使用
ルーティング
routes/web.php
でキャッシングを使用します:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached', function () { Cache::put('key', 'value', 600); return Cache::get('key'); });
1
2
3
4
5
6ブラウザを開いて
https://servbay-laravel-test.local/memcached
を訪問します。
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の使用
ルーティング
routes/web.php
でキャッシングを使用します:phpuse Illuminate\Support\Facades\Redis; Route::get('/redis', function () { Redis::set('key', 'value'); return Redis::get('key'); });
1
2
3
4
5
6ブラウザを開いて
https://servbay-laravel-test.local/redis
を訪問します。
リレーショナルデータベースの例
データベース構造とマイグレーションファイルの作成
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マイグレーションファイルの作成
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アカウントデータの挿入
ルーティング
routes/web.php
でアカウントデータを挿入します: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の使用
ルーティング
routes/web.php
でデータベースをクエリします:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6ブラウザを開いて
https://servbay-laravel-test.local/mysql-add
およびhttps://servbay-laravel-test.local/mysql
を訪問します。
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マイグレーションファイルの作成
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アカウントデータの挿入
ルーティング
routes/web.app
でアカウントデータを挿入します: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の使用
ルーティング
routes/web.php
でデータベースをクエリします:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql', function () { $users = DB::table('accounts')->get(); return $users; });
1
2
3
4
5
6ブラウザを開いて
https://servbay-laravel-test.local/pgsql-add
およびhttps://servbay-laravel-test.local/pgsql
を訪問します。
上記の手順に従うことで、Laravelプロジェクトを作成および実行し、ServBayの機能を使用してプロジェクトを管理・アクセスし、複数のデータベースに接続し、データをクエリすることができました。