Symfony下载、安装以及如何使用?

在 10 分钟内开始使用 Symfony!真的!这就是您了解重要的概念并开始构建真正项目所需的全部内容!

如果您以前使用过 Web 框架,那么您应该对 Symfony 感到宾至如归。如果没有,欢迎使用全新的 Web 应用程序开发方式。Symfony 采用佳实践,保持向后兼容性(是的!升级总是安全且简单!)并提供长期支持。

下载 Symfony

首先,请确保您已安装Composer并具有 PHP 7.1.3 或更高版本。

准备好?在终端中,运行:

composer create-project symfony/skeleton quick_tour

这将创建一个新quick_tour/目录,其中包含一个小而强大的新 Symfony 应用程序:

quick_tour/
├─ .env
├─ bin/console
├─ composer.json
├─ composer.lock
├─ config/
├─ public/index.php
├─ src/
├─ symfony.lock
├─ var/
└─ vendor/

我们可以在浏览器中加载项目吗?是的!您可以设置 Nginx 或 Apache并将它们的文档根配置为public/目录。但是,对于开发,好安装 Symfony 本地 Web 服务器并按如下方式运行它:

symfony server:start

http://localhost:8000 在浏览器中尝试您的新应用程序!

基础:路由、控制器、响应

我们的项目只有大约 15 个文件,但它已经准备好成为一个时尚的 API、一个强大的 Web 应用程序或一个微服务。Symfony 从小处开始,但随着您的发展而扩展。

但在我们走得太远之前,让我们通过构建我们的第一页来深入了解基础知识。

开始config/routes.yaml:这是我们可以定义新页面的 URL 的地方。取消注释已经存在于文件中的示例:

# config/routes.yaml
index:path: /controller: 'App\Controller\DefaultController::index'

这称为路由:它定义了您页面的 URL ( /) 和“控制器”:当有人访问此 URL 时将调用的函数。该函数尚不存在,所以让我们创建它!

在 中src/Controller, 在里面创建一个新DefaultController类和一个index方法:

<?php
// src/Controller/DefaultController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;

class DefaultController
{public function index(){    return new Response('Hello!');}
}

而已!尝试转到主页:http://localhost:8000/。Symfony 看到 URL 与我们的路由匹配,然后执行新index()方法。

控制器只是一个有一个规则的普通函数:它必须返回一个 Symfony Response对象。但该响应可以包含任何内容:简单文本、JSON 或完整的 HTML 页面。

但是路由系统要强大得多。所以让我们让路线更有趣:

# config/routes.yaml
  index:
-     path: /
+     path: /hello/{name}  controller: 'App\Controller\DefaultController::index'

此页面的 URL 已更改:它现在 是/hello/*{name}就像匹配任何内容的通配符一样。它变得更好!也更新控制器:

<?php
  // src/Controller/DefaultController.php
  namespace App\Controller;

  use Symfony\Component\HttpFoundation\Response;

  class DefaultController
  {
-     public function index()
+     public function index($name)  {
-         return new Response('Hello!');
+         return new Response("Hello $name!");  }
  }

前往 试用该页面http://localhost:8000/hello/Symfony。你应该看到:你好 Symfony!的价值{name}在URL可以作为一个$name 在你的控制器参数。

但这可以更简单!所以让我们安装注释支持:

composer require annotations

现在,通过添加#字符来注释掉 YAML 路由:

# config/routes.yaml
# index:
#     path: /hello/{name}
#     controller: 'App\Controller\DefaultController::index'

相反,在控制器方法的正上方添加路由:

<?php
  // src/Controller/DefaultController.php
  namespace App\Controller;

  use Symfony\Component\HttpFoundation\Response;
+ use Symfony\Component\Routing\Annotation\Route;

  class DefaultController
  {
+    /**
+     * @Route("/hello/{name}")
+     */   public function index($name) {       // ...   }
  }

这就像以前一样!但是通过使用注释,路由和控制器就在彼此相邻的位置。需要另一页吗?在 中添加另一个路由和方法DefaultController

<?php
// src/Controller/DefaultController.php
namespace App\Controller;

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class DefaultController
{// ...
/** * @Route("/simplicity") */public function simple(){    return new Response('Simple! Easy! Great!');}
}

路由可以做到,甚至更多,但我们会保存为另一次!现在,我们的应用程序需要更多功能!像模板引擎、日志记录、调试工具等等。

进一步学习连接:https://symfony.com/doc/current/quick_tour/the_big_picture.html

滚动至顶部
扫描微信二维码联系我们 关闭