Langkah demi langkah menyiapkan lingkungan pengembangan: instalasi PHP 8.3+, Composer, Git, membuat project baru dengan struktur folder yang rapi, dan konfigurasi .env.
Daftar Isi
Terakhir diperbarui:
TL;DR (Ringkasan Cepat)
- Pastikan PHP versi 8.3 atau lebih baru terinstal di sistem Anda.
- Instal Composer sebagai package manager PHP.
- Inisialisasi project dengan
composer initdan buat struktur folder yang bersih. - Simpan API Key di file .env dan pastikan tidak di-commit ke Git.
Instalasi PHP 8.3+
AI Agent yang kita bangun membutuhkan minimal PHP 8.3 karena menggunakan fitur modern seperti readonly properties, Fibers, dan typed properties yang menjadikan kode lebih aman dan ekspresif.
Ubuntu / Debian
sudo apt update
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php8.3 php8.3-cli php8.3-curl php8.3-mbstring php8.3-json php8.3-mysql php8.3-xml -y
php -v
macOS (Homebrew)
brew install php@8.3
php -v
Windows
Unduh PHP 8.3 dari windows.php.net dan tambahkan ke PATH environment variable. Atau gunakan XAMPP / Laragon yang sudah bundled dengan PHP.
Instalasi Composer
Composer adalah package manager untuk PHP yang akan kita gunakan untuk menginstal library AI Agent.
# Linux / macOS
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
sudo mv composer.phar /usr/local/bin/composer
composer --version
# Windows: Unduh Composer-Setup.exe dari https://getcomposer.org
Instalasi Git
# Ubuntu / Debian
sudo apt install git -y
# macOS
brew install git
# Verifikasi
git --version
git config --global user.name "Nama Anda"
git config --global user.email "email@anda.com"
Membuat Project Baru
mkdir php-ai-agent
cd php-ai-agent
composer init --name="myapp/ai-agent" --description="AI Agent dengan PHP" --type=project -n
git init
git add .
git commit -m "Initial commit: project AI Agent PHP"
Struktur Folder Project
Gunakan struktur folder yang bersih dan terorganisir agar kode mudah dipelihara:
php-ai-agent/
├── src/
│ ├── Agent/
│ │ ├── Agent.php # Core Agent class
│ │ └── Planner.php # Planning module
│ ├── Tools/
│ │ ├── ToolInterface.php # Interface untuk semua tool
│ │ ├── SearchTool.php # Tool pencarian web
│ │ ├── DatabaseTool.php # Tool database MySQL
│ │ └── FileTool.php # Tool membaca file
│ ├── Memory/
│ │ ├── Memory.php # Memory manager
│ │ └── Session.php # Session handler
│ ├── MCP/
│ │ ├── McpClient.php # MCP Client
│ │ └── McpServer.php # MCP Server
│ └── Logger/
│ └── Logger.php # Logging system
├── config/
│ └── config.php # Konfigurasi aplikasi
├── tests/
│ └── AgentTest.php # Unit tests
├── .env # Environment variables (jangan di-commit!)
├── .env.example # Template .env
├── .gitignore # File yang dikecualikan dari Git
├── composer.json # Dependensi PHP
└── index.php # Entry point aplikasi
Konfigurasi .env
File .env adalah tempat menyimpan konfigurasi sensitif seperti API Key. Jangan pernah commit file .env ke repository Git!
# .env.example (file ini boleh di-commit sebagai template)
OPENAI_API_KEY=sk-your-api-key-here
OPENAI_MODEL=gpt-4o-mini
OPENAI_MAX_TOKENS=4096
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=ai_agent_db
DB_USER=root
DB_PASS=
LOG_LEVEL=debug
LOG_FILE=./logs/agent.log
# .gitignore
.env
vendor/
*.log
logs/
<?php
// config/config.php
function loadEnv(string $path): void
{
if (!file_exists($path)) {
return;
}
$lines = file($path, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
if (str_starts_with(trim($line), '#')) {
continue;
}
[$key, $value] = explode('=', $line, 2);
$_ENV[trim($key)] = trim($value);
}
}
loadEnv(__DIR__ . '/../.env');
return [
'openai_api_key' => $_ENV['OPENAI_API_KEY'] ?? '',
'openai_model' => $_ENV['OPENAI_MODEL'] ?? 'gpt-4o-mini',
'openai_max_tokens' => (int) ($_ENV['OPENAI_MAX_TOKENS'] ?? 4096),
'db' => [
'host' => $_ENV['DB_HOST'] ?? '127.0.0.1',
'port' => (int) ($_ENV['DB_PORT'] ?? 3306),
'name' => $_ENV['DB_NAME'] ?? '',
'user' => $_ENV['DB_USER'] ?? '',
'pass' => $_ENV['DB_PASS'] ?? '',
],
];
Peringatan Keamanan
Selalu pastikan file .env ada di .gitignore sebelum git add. Kebocoran API Key ke repository publik dapat menyebabkan tagihan API yang sangat besar dan penyalahgunaan layanan Anda.
Poin Kunci Bab 3
Lingkungan pengembangan yang terstruktur dengan baik akan menghemat banyak waktu debugging di masa mendatang. Investasikan waktu untuk menyiapkan fondasi yang kuat sejak awal.