# 变量定义
APP_NAME = php-hello-world
PHP = php
COMPOSER = composer
APP_PORT = $(or $(APP_PORT_1),8000)
RESOURCE_PATH = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/.resource/resource_dev.json
LOG_FILE = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))/.logs/app.log

# 安装命令
.PHONY: install
install:
	@echo "检查 PHP 版本..."
	@$(PHP) --version
	@echo "检查 Composer 版本..."
	@$(COMPOSER) --version
	@echo "正在安装依赖..."
	@$(COMPOSER) install --optimize-autoloader
	@echo "✅ 依赖安装完成！"

# 运行命令
.PHONY: run
run:
	@echo "正在启动 PHP 应用..."
	@mkdir -p $(dir $(LOG_FILE))
	RESOURCE_PATH=$(RESOURCE_PATH) APP_PORT_1=$(APP_PORT) $(PHP) -S 0.0.0.0:$(APP_PORT) -t . > $(LOG_FILE) 2>&1 &
	@echo "✅ PHP 应用已启动，运行在端口 $(APP_PORT)"

# 停止命令
.PHONY: stop
stop:
	@echo "正在停止 PHP 应用..."
	@if command -v lsof >/dev/null 2>&1; then \
		echo "使用 lsof 命令停止应用..."; \
		lsof -ti:$(APP_PORT) | xargs kill -9 2>/dev/null || echo "没有找到运行在端口 $(APP_PORT) 的进程"; \
	elif command -v ss >/dev/null 2>&1; then \
		echo "使用 ss 命令停止应用..."; \
		ss -ltnp | grep ':$(APP_PORT)' | awk '{print $7}' | sed 's/.*pid=\([0-9]*\).*/\1/' | xargs kill 2>/dev/null || echo "没有找到运行在端口 $(APP_PORT) 的进程"; \
	else \
		echo "❌ 错误：系统中没有找到 lsof 或 ss 命令"; \
		exit 1; \
	fi
	@echo "✅ PHP 应用已停止"
