Mencipta dan Menjalankan Projek Laravel dalam ServBay
Pengenalan
ServBay ialah persekitaran pembangunan web tempatan yang mantap, direka khusus untuk macOS, dan mengintegrasikan pelbagai pakej perisian popular seperti PHP, Node.js, Python, Go, Java, pelbagai pangkalan data (MySQL, PostgreSQL, MongoDB), perkhidmatan cache (Redis, Memcached) serta pelayan web (Caddy, Nginx, Apache).
Dokumen ini akan membimbing anda cara untuk mencipta, mengkonfigurasi, dan menjalankan projek Laravel dengan pantas dalam ServBay. Kita akan menggunakan persekitaran PHP terbina dalam ServBay, pengurus pakej Composer, dan fungsi pengurusan laman web (dahulunya dikenali sebagai “host”) yang canggih untuk memudahkan keseluruhan proses.
Apa Itu Laravel?
Laravel ialah rangka kerja aplikasi web PHP sumber terbuka yang sangat popular, dibangunkan oleh Taylor Otwell. Ia menggunakan pola seni bina MVC (Model-View-Controller), serta menawarkan banyak ciri sedia guna bertujuan memudahkan tugas-tugas lazim pembangunan web seperti pengesahan pengguna, penghalaan, pengurusan sesi, cache, dan operasi pangkalan data. Laravel terkenal dengan sintaks yang elegan, set ciri yang kaya, dan sokongan komuniti yang kukuh, menjadikannya pilihan ideal untuk membina aplikasi web moden dan mudah diselenggara.
Ciri-ciri Utama dan Kelebihan Laravel
- Sintaks Elegan: Kod yang ringkas dan ekspresif, meningkatkan produktiviti dan kebolehbacaan kod.
- Eloquent ORM: Menyediakan pelaksanaan ActiveRecord yang mantap, memudahkan interaksi dengan pangkalan data secara intuitif.
- Konsol Artisan: Mengandungi pelbagai alat baris arahan berguna untuk menjalankan migrasi, menjana kod, menguji aplikasi, dan banyak lagi.
- Enjin Templat Blade: Menawarkan sintaks templat yang ringkas untuk memudahkan pembangunan paparan dinamik.
- Ekosistem Kaya: Banyak pakej rasmi dan pihak ketiga yang boleh diintegrasikan mudah melalui Composer.
- Sokongan Komuniti yang Kuat: Komuniti aktif menyediakan sumber, tutorial dan penyelesaian yang banyak.
Kelebihan Pembangunan Laravel Dengan ServBay
ServBay menawarkan pelbagai kemudahan untuk pembangun Laravel:
- Persekitaran Terpadu: ServBay didatangkan dengan beberapa versi PHP, Composer, serta pelbagai pangkalan data dan perkhidmatan cache yang telah dipasang — anda tidak perlu memasang dan mengkonfigurasi secara berasingan.
- Mudah Diurus: Dengan antaramuka grafik ServBay, anda boleh bertukar versi PHP, mengurus konfigurasi laman web, serta memulakan/menamatkan perkhidmatan dengan mudah.
- Pelayan Web Prakonfigurasi: ServBay menggunakan Caddy secara lalai dan telah mengoptimumkan konfigurasinya untuk rangka kerja PHP utama (termasuk Laravel), sekaligus memudahkan tetapan pelayan web.
- Sokongan HTTPS: ServBay secara automatik mengkonfigurasi sijil SSL daripada ServBay User CA untuk domain
.local
, dan HTTPS diaktifkan secara lalai — memberikan persekitaran pembangunan lebih selamat dan hampir kepada persekitaran produksi.
Membina Projek Laravel
ServBay mengesyorkan menyimpan semua projek laman web anda dalam direktori /Applications/ServBay/www
, memastikan struktur fail yang kemas dan mudah diurus.
Pastikan Composer Dipasang
ServBay telah menyertakan Composer semasa pemasangan, jadi anda tidak perlu memasangnya secara berasingan. Anda boleh mengesahkan ketersediaan Composer melalui terminal:
bashcomposer --version
1Jika arahan ini memaparkan nombor versi tanpa ralat, Composer telah sedia untuk digunakan.
Cipta Projek Laravel Baru
Buka terminal, navigasi ke direktori laman web yang disyorkan oleh ServBay, dan gunakan Composer untuk mencipta projek Laravel baru. Kita akan menamakan direktori projek sebagai
servbay-laravel-app
:bashcd /Applications/ServBay/www # Cipta direktori projek mkdir servbay-laravel-app # Masuk ke direktori projek cd servbay-laravel-app # Cipta projek Laravel dengan Composer di direktori semasa composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer akan memuat turun serta memasang Laravel dan semua kebergantungannya.
Masuk ke Direktori Projek
Pastikan terminal anda berada pada direktori akar projek Laravel yang baru:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Konfigurasi Permulaan
Jana Kunci Aplikasi
Laravel menggunakan kunci aplikasi untuk melindungi sesi pengguna dan data yang disulitkan. Jalankan perintah Artisan di direktori akar projek (
/Applications/ServBay/www/servbay-laravel-app
) untuk menghasilkan kunci:bashphp artisan key:generate
1Perintah ini akan menghasilkan dan menetapkan nilai
APP_KEY
dalam fail.env
anda.Konfigurasi Pemboleh Ubah Persekitaran (
.env
)Laravel menggunakan fail
.env
untuk pengurusan pemboleh ubah persekitaran projek seperti sambungan pangkalan data, URL aplikasi, dan lain-lain. Buka fail.env
di akar projek dan sesuaikan mengikut keperluan anda. Pastikan konfigurasi asas berikut betul:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Nilai ini dijana oleh php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Contoh konfigurasi pangkalan data (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nama pangkalan data pilihan anda DB_USERNAME=root # Pengguna lalai ServBay DB_PASSWORD=password # Katalaluan lalai ServBay # Contoh konfigurasi cache/queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis dalam ServBay biasanya tanpa katalaluan REDIS_PORT=6379 # Contoh konfigurasi cache/queue (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Nota: Anda perlu menyesuaikan tetapan seperti
DB_*
,REDIS_*
, atauMEMCACHED_*
mengikut keperluan sebenar atau perkhidmatan yang anda gunakan. Nama pengguna dan kata laluan lalai pangkalan data ServBay boleh disemak dalam panel kawalan ServBay.
Konfigurasi Pelayan Web (Tambah Laman Web dalam ServBay)
Gunakan fungsi pengurusan laman web ServBay untuk mengkonfigurasi pelayan web — halakan domain anda ke direktori public
dalam projek Laravel.
Buka Panel Kawalan ServBay
Lancarkan aplikasi ServBay dan buka panel kawalan.
Tambah Laman Web Baru
Pergi ke bahagian ‘Laman Web’ dalam panel kawalan ServBay. Klik butang tambah (biasanya
+
atau ikon serupa) untuk menambah laman web baru.Isikan Maklumat Laman Web
Isikan konfigurasi laman web seperti berikut:
- Nama:
My First Laravel Dev Site
(nama untuk memudahkan pengecaman) - Domain:
servbay-laravel-test.local
(domain untuk diakses dalam pelayar) - Jenis Laman Web:
PHP
- Versi PHP: Pilih versi PHP yang sesuai dengan Laravel anda, contoh
8.3
. - Akar Laman Web:
/Applications/ServBay/www/servbay-laravel-app/public
(Penting: Mesti merujuk subdirektoripublic
dalam akar projek Laravel)
Untuk langkah dan pilihan lebih lanjut, sila rujuk panduan Menambah Laman Web Pertama dalam dokumentasi rasmi ServBay (cari pautan English version).
- Nama:
Simpan dan Laksanakan Perubahan
Simpan konfigurasi laman web anda. ServBay akan mengemaskini konfigurasi pelayan web (lazimnya Caddy) secara automatik. Ikuti arahan jika diminta untuk memulakan semula pelayan web.
Pengesahan Akses Asas
Kini, projek Laravel anda sepatutnya boleh diakses melalui domain yang telah anda tetapkan.
Buka Pelayar Web
Masukkan domain yang anda konfigurasikan, contohnya
https://servbay-laravel-test.local
.Lihat Hasil
Jika semua konfigurasi telah dibuat dengan betul, anda akan melihat halaman selamat datang Laravel.
Tambah Kod Contoh Ringkas
Untuk pengesahan yang lebih jelas, kita boleh menambah satu laluan ringkas di routes/web.php
yang memaparkan "Hello ServBay!".
Cari dan buka fail routes/web.php
dalam direktori projek, kemudian tambah atau ubah seperti berikut:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Ubah atau tambah baris ini
});
// ... laluan lain
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Simpan fail dan akses semula https://servbay-laravel-test.local
. Anda kini akan melihat paparan Hello ServBay!
dalam pelayar.
Contoh Integrasi Pangkalan Data
Laravel menyediakan lapisan abstraksi pangkalan data dan ORM (Eloquent) yang sangat mantap — membolehkan anda berinteraksi dengan pelbagai pangkalan data dengan mudah. ServBay telah memasang MySQL, PostgreSQL, MongoDB, Redis, Memcached dan lain-lain supaya anda boleh terus membangun dan menguji secara tempatan.
Contoh Pangkalan Data NoSQL
Secara lalai, ServBay mengintegrasikan Redis dan Memcached serta telah memuatkan sambungan PHP yang diperlukan.
Contoh Memcached
Konfigurasi
.env
Tetapkan parameter sambungan Memcached (jika belum) dalam fail
.env
:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Port lalai Memcached ServBay
1
2
3Guna Memcached
Dalam laluan atau pengawal anda, gunakan facade cache Laravel untuk berinteraksi dengan Memcached:
Tambah contoh laluan di
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Simpan data ke cache, 10 minit (600 saat) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Dapatkan data dari cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Data Memcached: " . $value; } else { return "Data Memcached tiada atau telah tamat tempoh."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Akses
https://servbay-laravel-test.local/memcached-test
untuk menguji.
Contoh Redis
Konfigurasi
.env
Tetapkan parameter sambungan Redis (jika belum) dalam fail
.env
:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis dalam ServBay tanpa katalaluan REDIS_PORT=6379 # Port lalai Redis ServBay
1
2
3
4Nota: Jika anda mengkonfigurasi kedua-dua Memcached dan Redis, pastikan hanya satu yang diaktifkan melalui
CACHE_STORE
dalam.env
(komen satu lagi jika tidak digunakan).Guna Redis
Dalam laluan atau pengawal, gunakan facade Redis atau Cache untuk berinteraksi dengan Redis:
Di
routes/web.php
tambah contoh laluan:phpuse Illuminate\Support\Facades\Redis; // Atau guna Cache facade, pastikan CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Dengan Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Atau dengan Cache facade (jika CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Data Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Lawati
https://servbay-laravel-test.local/redis-test
untuk menguji.
Contoh Pangkalan Data Relasi (MySQL & PostgreSQL)
ServBay memasang pelayan pangkalan data MySQL dan PostgreSQL. Eloquent ORM dalam Laravel boleh sambung kepada kedua-duanya dengan mudah.
Pertama, cipta pangkalan data untuk projek. Anda boleh gunakan alat pengurusan DB dalam ServBay (seperti phpMyAdmin, Adminer, pgAdmin dan lain-lain — boleh diakses melalui panel kawalan ServBay) atau pelanggan baris perintah untuk mewujudkan DB servbay_laravel_app
.
Kemudian, gunakan fungsi migrasi Laravel untuk cipta struktur jadual.
Cipta Fail Migrasi
Jalankan perintah Artisan dalam akar projek untuk cipta fail migrasi baru:
bashphp artisan make:migration create_accounts_table --create=accounts
1Fail migrasi baru akan dicipta di direktori
database/migrations
.Edit Fail Migrasi
Buka fail migrasi yang baru (nama seperti
YYYY_MM_DD_HHMMSS_create_accounts_table.php
), sunting kaedahup
untuk struktur jadualaccounts
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Tambah created_at dan updated_at }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Simpan fail.
Laksanakan Migrasi
Jalankan migrasi Artisan dalam akar projek untuk mencipta jadual
accounts
:bashphp artisan migrate
1Jika konfigurasi DB betul dan DB
servbay_laravel_app
wujud, arahan ini akan mencipta jadualaccounts
serta jadual standard Laravel sepertiusers
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
, dll.
Contoh MySQL
Konfigurasi
.env
untuk MySQLPastikan fail
.env
anda mengandungi tetapan berikut untuk MySQL:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Port lalai MySQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Katalaluan MySQL lalai ServBay
1
2
3
4
5
6Tulis Data Contoh
Tambah laluan di
routes/web.php
untuk memasukkan data ke jadualaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account added to MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Lawati
https://servbay-laravel-test.local/mysql-add-account
untuk memasukkan data.Baca Data Contoh
Tambah laluan di
routes/web.php
untuk membaca data dari jadualaccounts
:phpuse App\Models\Account; // Jika anda ada model Account // Atau guna langsung DB facade Route::get('/mysql-accounts', function () { // Guna DB facade $accounts = DB::table('accounts')->get(); // Atau Eloquent ORM (jika model Account wujud) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Lawati
https://servbay-laravel-test.local/mysql-accounts
untuk melihat data dalam jadualaccounts
.
Contoh PostgreSQL
Konfigurasi
.env
untuk PostgreSQLJika anda menggunakan PostgreSQL, ubah fail
.env
seperti berikut:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Port lalai PostgreSQL ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Pengguna PostgreSQL lalai ServBay DB_PASSWORD=password # Katalaluan PostgreSQL lalai ServBay
1
2
3
4
5
6Nota: Selepas tukar sambungan DB, anda mungkin perlu jalankan semula
php artisan migrate:refresh
atauphp artisan migrate
untuk cipta struktur jadual dalam PostgreSQL.Tulis Data Contoh (PostgreSQL)
Tambah laluan di
routes/web.php
untuk masukkan data ke jadualaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account added to PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Lawati
https://servbay-laravel-test.local/pgsql-add-account
untuk tambah data.Baca Data Contoh (PostgreSQL)
Tambah laluan di
routes/web.php
untuk membaca data dari jadualaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Lawati
https://servbay-laravel-test.local/pgsql-accounts
untuk lihat data yang dimasukkan.
Rumusan
Dengan ServBay, anda boleh membina persekitaran pembangunan tempatan untuk Laravel di macOS dengan mudah. ServBay menyediakan PHP, Composer, pelayan web Caddy, serta pelbagai pangkalan data dan servis cache yang telah diintegrasi, memudahkan pemasangan dan konfigurasi. Hanya beberapa langkah ringkas diperlukan untuk mencipta projek Laravel baru, mengkonfigurasi pelayan web, dan terus membangunkan aplikasi anda, termasuk ujian integrasi pangkalan data dan cache. ServBay komited menyediakan pengalaman pembangunan tempatan yang cekap dan mesra pembangun.
Sekiranya anda menghadapi sebarang masalah ketika menggunakan ServBay, sila rujuk dokumentasi rasmi atau dapatkan bantuan daripada komuniti.