启动symfony开发环境需先创建项目并进入根目录,确认flex启用和dev环境,再用symfony cli或php内置服务器启动,验证web profiler和api接口正常。

启动PHP Symfony开发环境,就是让项目在本地跑起来并能访问欢迎页或API接口,这是所有后续开发工作的前提——没看到页面或响应,说明环境链路还没通。
确认项目已创建并进入目录
执行 composer create-project symfony/website-skeleton myapp 或 symfony new myapp --full 创建项目后,必须先进入项目根目录:cd myapp。这一步漏掉,后续所有命令都会报错“找不到 bin/console”。
运行 php bin/console about,确认输出中包含 【Flex: enabled】 和 【Environment: dev】。若显示 prod 或 Flex disabled,说明不是开发模板,得重装。
启动内置服务器(推荐方式)
方法一:用 Symfony CLI(需提前安装)→ 执行 symfony server:start → 浏览器打开 https://www.php.cn/link/261f67921edd024375a9a83e9ddf6a47。
方法二:用 PHP 内置服务器 → 执行 php -S localhost:8000 -t public → 注意必须带 【-t public】,写成 -t public/index.php 或漏掉 -t 都会 404。
方法三:用 Console 命令(Symfony 5.4 及更早)→ 执行 php bin/console server:run → 该命令在 Symfony 6+ 已弃用,运行会提示 “Command ‘server:run’ is not defined”,别硬试。
验证 Web Profiler 是否就绪
第一步:检查 .env 文件,确保有且仅有这两行生效:APP_ENV=devAPP_DEBUG=1
其他地方(如 YAML 配置)写的 debug: true 不起作用。
第二步:打开欢迎页后,查看页面底部源码,必须存在 <script id="sfwdt"></script> 标签。没有?说明响应被截断——常见原因是模板里写了 exit、用了 ob_end_clean(),或 base 模板漏了 {{ render_profiler() }}。
第三步:若脚本存在但右下角没紫色工具栏,打开浏览器 Network 面板,筛选 X-Debug-Token 响应头,复制 token 手动访问 https://www.php.cn/link/261f67921edd024375a9a83e9ddf6a47/_profiler/{token}。能打开即证明调试数据已采集,工具栏只是前端加载问题。
测试第一个 API 接口
编辑 src/Controller/ApiController.php,写入:
<?php <br/>namespace App\Controller;<br>use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;<br>use Symfony\Component\HttpFoundation\JsonResponse;<br>use Symfony\Component\Routing\Annotation\Route;<br><br>class ApiController extends AbstractController<br>{<br> #[Route('/api/hello', name: 'api_hello')]<br> public function hello(): JsonResponse<br> {<br> return $this->json(['message' => 'Hello from Symfony!']);<br> }<br>}
保存后,直接访问 https://www.php.cn/link/261f67921edd024375a9a83e9ddf6a47/api/hello。看到 JSON 响应 {"message":"Hello from Symfony!"} 即表示路由、控制器、响应全流程已打通。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











