简介
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
简介
欧宝娱乐app下载地址是一组可重用的独立的、解耦的和内聚的PHP组件,可以解决常见的web开发问题。
您可以使用现成的Symfony全栈web框架,而不是使用这些底层组件,它是基于这些组件的…欧宝娱乐app下载地址或者您可以创建自己的框架。本教程是关于后者的。
为什么要创建自己的框架?
首先为什么要创建自己的框架?如果你环顾四周,每个人都会告诉你,重新发明轮子是一件糟糕的事情,你最好选择一个现有的框架,忘记创建你自己的框架。大多数情况下,他们是正确的,但也有一些很好的理由开始创建自己的框架:
- 学习更多关于现代web框架的底层架构,特别是Symfony全栈框架的内部知识;欧宝娱乐app下载地址
- 要创建一个适合您非常具体的需求的框架(只是首先要确保您的需求非常具体);
- 尝试创建一个有趣的框架(以一种学习和扔掉的方法);
- 重构一个旧的/现有的应用程序,需要大量的最新web开发最佳实践;
- 为了证明你可以自己创建一个框架(…但毫不费力)。
本教程将温和地指导您创建一个web框架,一步一个脚印。在每一步中,您都将拥有一个完整的工作框架,您可以使用它,也可以作为自己的开始。它将从一个简单的框架开始,随着时间的推移将添加更多的功能。最终,你将拥有一个功能齐全的全栈web框架。
当然,每一步都是学习更多关于Symfony组件的机会。欧宝娱乐app下载地址
提示
如果你没有时间读完整本书,或者你想快速入门,你也可以看一看Silex,一个基于Symfony组件的微框架。欧宝娱乐app下载地址代码相当简洁,它利用了Symfony Components的许多方面。欧宝娱乐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组件,看看它给我们带来了什么。