简介

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

简介

欧宝娱乐app下载地址是一组可重用的独立的、解耦的和内聚的PHP组件,可以解决常见的web开发问题。

您可以使用现成的Symfony全栈web框架,而不是使用这些底层组件,它是基于这些组件的…欧宝娱乐app下载地址或者您可以创建自己的框架。本教程是关于后者的。

为什么要创建自己的框架?

首先为什么要创建自己的框架?如果你环顾四周,每个人都会告诉你,重新发明轮子是一件糟糕的事情,你最好选择一个现有的框架,忘记创建你自己的框架。大多数情况下,他们是正确的,但也有一些很好的理由开始创建自己的框架:

  • 学习更多关于现代web框架的底层架构,特别是Symfony全栈框架的内部知识;欧宝娱乐app下载地址
  • 要创建一个适合您非常具体的需求的框架(只是首先要确保您的需求非常具体);
  • 尝试创建一个有趣的框架(以一种学习和扔掉的方法);
  • 重构一个旧的/现有的应用程序,需要大量的最新web开发最佳实践;
  • 为了证明你可以自己创建一个框架(…但毫不费力)。

本教程将温和地指导您创建一个web框架,一步一个脚印。在每一步中,您都将拥有一个完整的工作框架,您可以使用它,也可以作为自己的开始。它将从一个简单的框架开始,随着时间的推移将添加更多的功能。最终,你将拥有一个功能齐全的全栈web框架。

每一步都有机会学习更多关于Symfony组件的知识。欧宝娱乐app下载地址

许多现代web框架都标榜自己是MVC框架。本教程不会讨论MVC模式,因为Symfony组件能够创建任何类型的框架,而不仅仅是遵循MVC架构的框架。欧宝娱乐app下载地址无论如何,如果你看了MVC语义,这本书是关于如何创建一个框架的控制器部分。对于模型和视图,这实际上取决于您的个人喜好,您可以使用任何现有的第三方库(用于模型的Doctrine、Propel或普通的PDO;用于视图的PHP或Twig)。

在创建框架时,遵循MVC模式并不是正确的目标。主要目标应该是分离关注点;这可能是您应该真正关心的唯一设计模式。Symfony组件的基本原则集中在HTTP规范上。欧宝娱乐app下载地址因此,您将要创建的框架应该更准确地标记为HTTP框架或请求/响应框架。

开始之前

仅仅阅读如何创建框架是不够的。你必须跟着做,并实际输入本教程中包含的所有示例。为此,你需要一个最新版本的PHP(5.5.9或更高版本就足够了),一个web服务器(如Apache, NGinx或PHP的内置web服务器),一个良好的PHP知识和面向对象编程的理解。

准备好了吗?继续读下去!

引导

在考虑创建第一个框架之前,您需要考虑一些约定:您将在哪里存储代码,如何命名类,如何引用外部依赖项,等等。

为了存储你的新框架,在你的机器上创建一个目录:

1 2
mkdir框架cd框架

依赖关系管理

要安装框架所需的Symfony欧宝娱乐app下载地址组件,您将使用作曲家PHP的项目依赖管理器。如果你还没有,下载并安装Composer现在。

我们的项目

我们不是从头开始创建框架,而是一遍又一遍地编写相同的“应用程序”,每次添加一个抽象。让我们从最简单的PHP web应用程序开始:

1 2 3 4
/ /框架/ index . php的名字_GET“名字”];printf (“你好% s”的名字);

您可以使用PHP内置服务器在浏览器中测试这个伟大的应用程序(http://localhost:4321/index.php?name=Fabien):

1
php -S 127.0.0.1:4321

否则,你总是可以使用自己的服务器(Apache, Nginx等)。

下一章,我们将介绍HttpFoundation组件,看看它给我们带来了什么。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。