《Symfony 5全面开发》教程02、安装运行环境并初始化Symfony项目
Symfony是PHP框架,在学习Symfony之前,我们需要安装PHP运行环境。如果你是MacOS系统,可以使用Homebrew来安装PHP运行环境。
Homebrew官网
https://brew.sh/
我们使用brew search来搜索PHP,最新的PHP是8.0版本。我这里已经安装过了,后面会打上对号。
如果你没有安装过的话,你可以使用brew install命令安装PHP,所有的过程都是自动化的。我这里已经安装过了,就不再安装了。
在安装完成之后, 我们可以使用 php --version 来查看PHP的版本号,来验证是否安装成功了。
另外我们还需要安装一些PHP的扩展。PHP是一种脚本语言,它并不能像其他动态语言一样可以直接下断点来逐步跟踪代码,我们需要使用xdebug插件来完成这些功能。 我们使用PECL工具来安装xdebug,首先我们更新一下PECL的所有通道,搜索xdebug,最新的版本是3.0.4。我这里已经安装过了,如果你没有安装的话,可以使用 pecl install 命令安装xdebug。 所有的过程都是自动化的,包括启用xdebug,xdebug的配置,我们到用到的时候会讲解。
Symfony有很多组件和第三方的包,我们使用composer管理这些组件和包。
Composer
https://getcomposer.org/
同样的我们使用Homebrew来安装composer,我这里已经安装过了composer。如果你没有安装的话,可以使用brew install composer来完成composer的安装。
因为composer需要从国外下载各个包的镜像,可能网络比较卡,我们需要将composer切换到国内镜像。搜索composer aliyun,使用阿里云的镜像。我们希望全局配置composer的镜像源,复制这段命令。
#composer全局配置阿里云镜像命令
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
再使用 composer config -g -l 来查看镜像源是否已经配置成功了。
另外我们还需要安装docker,docker提供了一种容器化的技术。我们使用docker来管理数据库或者一些其他服务,我们安装docker桌面版。 我这里已经安装过了,如果你没有安装的话,需要下载对应的版本,并且进行安装。
下面我们需要安装Git,Git可以对代码的版本进行管理,我们仍然使用Homebrew来对Git进行安装。 我这里已经安装过了,如果你没有安装的话,你可以直接使用brew install来直接安装Git。
下一步我们需要安装Symfony的命令行工具,回到Symfony官网,点击download。 我们是MacOS系统,直接复制这个命令行,命令行会自动下载并安装Symfony命令行工具。最后我们需要把命令行工具安装到系统的环境变量目录。我已经安装过了,这里就不再安装了。
#symfony cli安装命令行
curl -sS https://get.symfony.com/cli/installer | bash
我们可以查看Symfony命令行工具的版本号,来查看安装是否已经成功了,我这里已经安装成功了。 Symfony命令行工具,安装完成后,我们可以使用symfony check req来检查一下Symfony的运行环境是否已经安装完成了,它提示OK这就可以了。
下面我们使用Symfony命令行工具来创建我们的项目,回到官网,Symfony提供了new命令来创建项目。如果使用--full选项,它将创建一个web应用程序。 如果你想创建一个微服务或者命令行应用程序或者API,我们直接使用new命令就可以了。 两者的区别就是--full命令会安装所有与web开发相关的组件或者包。
我们为了学习Symfony的各个组件的安装及使用,我们直接使用symfony new命令,来创建一个最简化的Symfony项目。我们在当前用户目录创建项目,粘贴刚才代码,修改项目的名称, 我们将创建一个博客项目,博客项目就叫做teebblog。
Symfony命令行工具将使用composer工具来创建一个Symfony的骨架项目,完成之后,它会自动在我们的项目目录中初始化Git目录。这样我们的项目就已经安装完成了。
在下一节我们将使用Phpstorm来打开项目目录,并且讲解一下Symfony的目录结构。
本文转载于: https://www.teebb.com/content/symfony-init
《Symfony 5全面开发》教程02、安装运行环境并初始化Symfony项目的更多相关文章
- Apache Tomcat下载、安装、环境变量配置以及项目部署
前言 针对在本地访问文件或资源出现的跨域问题,可以通过搭建本地服务器来解决,本篇随笔主要介绍通过搭建Apache Tomcat服务器来解决跨域.包括Apache Tomcat的下载.安装.环境变量的配 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(二)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(四)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(三)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(一)
你开学,我放价!MyEclipse线上狂欢继续!火热开启中>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(七)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...
- Android快乐贪吃蛇游戏实战项目开发教程-02虚拟方向键(一)自定义控件概述
该系列教程概述与目录:http://www.cnblogs.com/chengyujia/p/5787111.html 一.自定义控件简介 在本项目中,无论是游戏主区域还是虚拟方向键都是通过自定义控件 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(六)
[周年庆]MyEclipse个人授权 折扣低至冰点!立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包 ...
- MyEclipse WebSphere开发教程:安装和更新WebSphere 6.1, JAX-WS, EJB 3.0(五)
MyEclipse超值折扣 限量 100 套! 立即开抢>> [MyEclipse最新版下载] MyEclipse支持Java EE技术(如JAX-WS和EJB 3.0),它们以功能包的形 ...
随机推荐
- sublime Text3编译java文件提示Decode error - output not utf-8
进入sublime Text3安装目录下的package文件夹,用解压缩软件打开Java.sublime-package, 编辑里面的JavaC.sublime-build,修改最后一句 将文件改为 ...
- linux系统别名
目录 一:系统别名 一:系统别名 alias 格式: alias xxx='命令' alias : 查看系统别名 alias rm='xxx' : 设置系统别名 改别名 别名 执行这个命令 [root ...
- Shell 脚本进阶,经典用法及其案例
一.条件选择.判断 1.条件选择if (1)用法格式 if 判断条件 1 ; then 条件为真的分支代码 elif 判断条件 2 ; then 条件为真的分支代码 elif 判断条件 3 ; the ...
- 一条SQL更新语句是如何执行的
文章首发于公众号「蝉沐风」,认真写好每一篇文章,欢迎大家关注交流 这是图解MySQL的第2篇文章,这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白: 什么是InnoDB页?缓存页又是什么?为 ...
- 最大公因数与最小公倍数-gcd&lcm
一.一些性质 \(gcd(a,b)=gcd(b,a)\) \(gcd(-a,b)=gcd(a,b)\) \(gcd(a,a)=|a|, gcd(a,0)=|a|\) \(gcd(a,1)=1\) \( ...
- ABC220H - Security Camera
考虑折半,将点按照标号是否 \(\le \frac{n}{2}\) 分成两个集合 \(S_1, S_2\). 首先原问题的形式有点奇怪,我们不妨统计没有被覆盖覆盖的边为偶数条的情况. 这样一来问题转化 ...
- 「SDWC2018 Day1」网格
题目当中有三条限制,我们来逐一考虑.对于第一条限制,每次走动的增加量 \(x_i \le M_x, y_i \le M_y\),可以发现一共走的步数是确定的,那么就相当于解这样两个方程组: \[x_1 ...
- HTML Flex 布局
感谢原文作者:在路上de 小白 原文链接:https://www.cnblogs.com/likun123/p/9518466.html#commentform 目录 一.Flex 布局是什么? 二. ...
- php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
我们知道数据库处理sql是一条条处理的,假设购买商品的流程是这样的: sql1:查询商品库存 1 if(库存数量 > 0) 2 { 3 //生成订单 4 //库存-1 5 > 当没有并发时 ...
- getter-setter方法练习
// // Kline.h #import <Foundation/Foundation.h> @interface Kline : NSObject { int _max; // 最高价 ...