这个系列的实战博客真是太有用了,很多例子自己调试也是通的,不同于很多网上不同的实战例子。。。附上原文地址  https://www.chrisyue.com/symfony-in-action-day-1.html

Symfony 的官方教程其实已经非常的详尽,但却不太亲近新手。新手想要完全理解 Symfony 文档的内容,需要对互联网开发有一定工作经验才行,否则总是有一种看不太明白,看完了也不不知道从哪儿开始的感觉。如果你有这种感觉,希望这篇文章能让你快速上手,本篇的目的,就是为了让 Symfony 新手,甚至是 PHP 新手能快速开始一个具体的项目。

本篇系列重点是为了带领新手使用 Symfony 框架,如果您想了解的是 Symfony 组件,可阅读我翻译 Symfony 项目组老大的系列教程《使用 Symfony 组件创建自己的 PHP 框架》

本篇系列源代码位于 https://coding.net/u/chrisyue/p/symfony2-framework-tutorial/git,不过因为源代码已经包含各种添加修改重构之后的代码,看不到中间过程,建议在所有章节完成之后看,或者作为日后的参考。

2017-01-05 补充:目前 Symfony 已经发展到 3.2 版本。Symfony 严格遵循了标准的版本命名规则『API 如无法向下兼容时,大版本号 +1』,事实上 2 和 3 的区别不是很大,所以其实本教程应该也是适用于 Symfony3 的。如有不兼容处,请留言,我会更新相关的教程。

准备工作

下载并安装 PHP。Symfony 要求运行在 PHP 5.3 版本以上。不过随着 PHP 的版本提升,功能也越来越丰富,运行速度也有提升,所以我建议是最新的稳定版本。在 PHP 5.5 里自带了 web server,这意味着你甚至不需要 Nginx 或者 Apache 等服务就可以快速开始启动你的项目,所以没错,本教程就以 PHP 5.6(咦?难道不是 5.5 吗)为例子来讲解。

注:PHP 7 时代,使用最新版本 PHP,执行时间更短,内存占用更少,效果杠杠的!

首先保证 PHP 在 PATH 目录里。

由于本篇主要阐述如何使用 Symfony 快速开发项目。所以不阐述 PHP 的安装相关知识,这些知识点在网上都很容易查询到。

初始化项目

本篇教程我尽量按照 Windows/*nix 都可以运行的方式来讲解。

得益于 Symfony installer,我们目前可以很方便的初始化一个 Symfony 项目。不过首先,你得有一个 Symfony installer。

随便创建一个目录:比如 www,然后在此目录下先安装 Symfony installer(注意 $ 为命令提示符,只是为了好看,实际操作的时候是不需要输入 $ 的,不再赘述):

 
 
1
$php-r"readfile('http://symfony.com/installer');">symfony.phar

然后运行以下命令确认文件可执行

 
 
1
$php symfony.phar

如果文件无损坏,应该会显示 symfony installer 的版本号,以及如何使用 symfony installer 的简单介绍:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Symfony Installer(0.5.0)
=========================
 
Thisisthe official installer tostart newprojects based on the
Symfony full-stack framework.
 
Tocreateanewproject called blog inthe current directory using
the latest stable version of Symfony,execute the following command:
 
  $symfony.phar newblog
 
Tobase your project onaspecific Symfony version,append the version
number at the endof the command:
 
  $symfony.phar newblog2.5.6
 
Updating the Symfony Installer
------------------------------
 
Newversions of the Symfony Installer are released regularly.Toupdate your
installer version,execute the following command:
 
  $symfony.phar self-update

接下来,我们用 symfony.phar 来创建一个项目。这里我们打算做一个新闻聚合类网站,项目就叫 news 好了:

 
 
1
$php symfony.phar newnews

如果网络没有问题的话,应该会出现进度条(Windows 下可能没有……),此时 Symfony installer 在当前目录创建了 news 目录,并且初始化好 Symfony 框架的工作目录,以及下载所需要的第三方 PHP 库。

 
 
1
2
Downloading Symfony...
  85.81KB/4.89MB▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    1%

当下载完成后,进入 news 目录,我们可以看到 Symfony installer 为我们初始化的工作目录。这里我们可以把一些对开发来说没有必要的文件删除掉(UPGRADE-***,LICENSE,README.md)。

不出意外,我们便可以通过下面的命令开启一个 Web server 监听在 localhost:8000 上(注:此命令只能运行在 PHP 5.5 版本之上,并且 Windows 可能只能运行 server:run,两者的区别你们自己试试就知道),这样在开发阶段就可以不用安装和配置 Apache 或者 NGINX 也可以访问本地开发环境了,非常方便:

 
 
1
$php app/console server:start localhost:8000

*** 注:在 3.0 以上的版本,console 已经位于 bin 目录下面,后面所有 php app/console xxx 命令,在新版本里都是 php bin/console xxx,以下不再赘述!

另外在 *nix 环境下,app/console 或者 bin/console 只要有可执行权限,都是可以不需要显式调用 php 而直接运行的:

 
 

Shell

 
1
$app/console server:start

在浏览器里访问 http://localhost:8000,应该就可以看到 Symfony Framework 安装好之后的欢迎页面了。

需要注意的是,在生产环境还是建议用 NGINX/Apache + php-mod/fastcgi 的方式,区别在于生产环境需要多任务处理。

注意:如果访问不到首页,或者首页不是截图的样子,很有可能你安装的是 Symfony 2.7+ 版本,但并不影响后面的学习

至此,Symfony 项目初始化工作已经完成

我们可以使用 Symfony 框架自带的脚本工具,来确认当前的环境是否已经足够顺利运行 Symfony:

 
 
1
2
3
$php app/check.php
# 在 Symfony 3.0+ 下
$php bin/symfony_requirements

比如我这里显示的结果,命令运行结果推荐我安装 intl 扩展

另外我们也可以看到提示说因为命令行加载的 php.ini 可能和 web 服务器加载的不一样(常见的 php-fpm 一般都跟命令行下的 php 加载的不是同一个 php.ini 文件),建议在浏览器里查看路径 /config.php 复查一下。

Symfony 的官方教程其实已经非常的详尽,但却不太亲近新手。新手想要完全理解 Symfony 文档的内容,需要对互联网开发有一定工作经验才行,否则总是有一种看不太明白,看完了也不不知道从哪儿开始的感觉。如果你有这种感觉,希望这篇文章能让你快速上手,本篇的目的,就是为了让 Symfony 新手,甚至是 PHP 新手能快速开始一个具体的项目。

本篇系列重点是为了带领新手使用 Symfony 框架,如果您想了解的是 Symfony 组件,可阅读我翻译 Symfony 项目组老大的系列教程《使用 Symfony 组件创建自己的 PHP 框架》

本篇系列源代码位于 https://coding.net/u/chrisyue/p/symfony2-framework-tutorial/git,不过因为源代码已经包含各种添加修改重构之后的代码,看不到中间过程,建议在所有章节完成之后看,或者作为日后的参考。

2017-01-05 补充:目前 Symfony 已经发展到 3.2 版本。Symfony 严格遵循了标准的版本命名规则『API 如无法向下兼容时,大版本号 +1』,事实上 2 和 3 的区别不是很大,所以其实本教程应该也是适用于 Symfony3 的。如有不兼容处,请留言,我会更新相关的教程。

准备工作

下载并安装 PHP。Symfony 要求运行在 PHP 5.3 版本以上。不过随着 PHP 的版本提升,功能也越来越丰富,运行速度也有提升,所以我建议是最新的稳定版本。在 PHP 5.5 里自带了 web server,这意味着你甚至不需要 Nginx 或者 Apache 等服务就可以快速开始启动你的项目,所以没错,本教程就以 PHP 5.6(咦?难道不是 5.5 吗)为例子来讲解。

注:PHP 7 时代,使用最新版本 PHP,执行时间更短,内存占用更少,效果杠杠的!

首先保证 PHP 在 PATH 目录里。

由于本篇主要阐述如何使用 Symfony 快速开发项目。所以不阐述 PHP 的安装相关知识,这些知识点在网上都很容易查询到。

初始化项目

本篇教程我尽量按照 Windows/*nix 都可以运行的方式来讲解。

得益于 Symfony installer,我们目前可以很方便的初始化一个 Symfony 项目。不过首先,你得有一个 Symfony installer。

随便创建一个目录:比如 www,然后在此目录下先安装 Symfony installer(注意 $ 为命令提示符,只是为了好看,实际操作的时候是不需要输入 $ 的,不再赘述):

 
 
1
$php-r"readfile('http://symfony.com/installer');">symfony.phar

然后运行以下命令确认文件可执行

 
 
1
$php symfony.phar

如果文件无损坏,应该会显示 symfony installer 的版本号,以及如何使用 symfony installer 的简单介绍:

 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Symfony Installer(0.5.0)
=========================
 
Thisisthe official installer tostart newprojects based on the
Symfony full-stack framework.
 
Tocreateanewproject called blog inthe current directory using
the latest stable version of Symfony,execute the following command:
 
  $symfony.phar newblog
 
Tobase your project onaspecific Symfony version,append the version
number at the endof the command:
 
  $symfony.phar newblog2.5.6
 
Updating the Symfony Installer
------------------------------
 
Newversions of the Symfony Installer are released regularly.Toupdate your
installer version,execute the following command:
 
  $symfony.phar self-update

接下来,我们用 symfony.phar 来创建一个项目。这里我们打算做一个新闻聚合类网站,项目就叫 news 好了:

 
 
1
$php symfony.phar newnews

如果网络没有问题的话,应该会出现进度条(Windows 下可能没有……),此时 Symfony installer 在当前目录创建了 news 目录,并且初始化好 Symfony 框架的工作目录,以及下载所需要的第三方 PHP 库。

 
 
1
2
Downloading Symfony...
  85.81KB/4.89MB▓░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░    1%

当下载完成后,进入 news 目录,我们可以看到 Symfony installer 为我们初始化的工作目录。这里我们可以把一些对开发来说没有必要的文件删除掉(UPGRADE-***,LICENSE,README.md)。

不出意外,我们便可以通过下面的命令开启一个 Web server 监听在 localhost:8000 上(注:此命令只能运行在 PHP 5.5 版本之上,并且 Windows 可能只能运行 server:run,两者的区别你们自己试试就知道),这样在开发阶段就可以不用安装和配置 Apache 或者 NGINX 也可以访问本地开发环境了,非常方便:

 
 
1
$php app/console server:start localhost:8000

*** 注:在 3.0 以上的版本,console 已经位于 bin 目录下面,后面所有 php app/console xxx 命令,在新版本里都是 php bin/console xxx,以下不再赘述!

另外在 *nix 环境下,app/console 或者 bin/console 只要有可执行权限,都是可以不需要显式调用 php 而直接运行的:

 
 

Shell

 
1
$app/console server:start

在浏览器里访问 http://localhost:8000,应该就可以看到 Symfony Framework 安装好之后的欢迎页面了。

需要注意的是,在生产环境还是建议用 NGINX/Apache + php-mod/fastcgi 的方式,区别在于生产环境需要多任务处理。

注意:如果访问不到首页,或者首页不是截图的样子,很有可能你安装的是 Symfony 2.7+ 版本,但并不影响后面的学习

至此,Symfony 项目初始化工作已经完成

我们可以使用 Symfony 框架自带的脚本工具,来确认当前的环境是否已经足够顺利运行 Symfony:

 
 
1
2
3
$php app/check.php
# 在 Symfony 3.0+ 下
$php bin/symfony_requirements

比如我这里显示的结果,命令运行结果推荐我安装 intl 扩展

另外我们也可以看到提示说因为命令行加载的 php.ini 可能和 web 服务器加载的不一样(常见的 php-fpm 一般都跟命令行下的 php 加载的不是同一个 php.ini 文件),建议在浏览器里查看路径 /config.php 复查一下。

Symfony 框架实战教程——第一天:创建项目(转)的更多相关文章

  1. Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车

    让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商 ...

  2. 微信小程序教学第二章:小程序中级实战教程之预备篇 - 项目结构设计 |基于最新版1.0开发者工具

    iKcamp官网:http://www.ikcamp.com 访问官网更快阅读全部免费分享课程:<iKcamp出品|全网最新|微信小程序|基于最新版1.0开发者工具之初中级培训教程分享>. ...

  3. [ABP教程]第一章 创建服务端

    Web应用程序开发教程 - 第一章: 创建服务端 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开发 ...

  4. php CI 实战教程第一季百度经验杂志

    phpCI实战教程第一季_百度经验杂志_百度经验http://jingyan.baidu.com/magazine/16428 杂志为本人php CI实战教程系列经验 从实际项目使用中写系列实战经验, ...

  5. 虚幻4 - ARPG实战教程(第一季)

    在广受欢迎的的<虚幻4高速开发入门>视频教程之后.我收到了许多的反馈,当中大量的同学想要一个实战类的教程.于是,我花了一段时间准备之后,推出了新的一系列实战教程. 希望以深入浅出的方式.解 ...

  6. CodeIgniter框架入门教程——第一课 Hello World!

    本文转载自:http://www.softeng.cn/?p=45 今天开始,我将在这里连载由我自己编写的<CodeIgniter框架入门教程>,首先,这篇教程的读着应该是有PHP基础的编 ...

  7. 【从零开始搭建自己的.NET Core Api框架】(一)创建项目并集成swagger:1.1 创建

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  8. C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)

    一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...

  9. SSM实战——秒杀系统之创建项目、管理依赖、设计数据库

    注:本项目使用Myeclipse开发. 一:项目创建 1:使用Myeclipse创建一个web project,命名为MySeckill,并转换为Maven项目. 2:创建项目文件目录如下: 上面四个 ...

随机推荐

  1. Mysql rpm安装

    总结下mysql rpm安装的方式,与一些错误 环境[root@host2 ~]# uname -aLinux host2 2.6.32-504.3.3.el6.x86_64 #1 SMP Wed D ...

  2. MVC中异常: An exception of type 'System.Data.ProviderIncompatibleException' occurred in EntityFramework.dll的一种解决办法

    今天在调试MVC的例子的时候,总是出错(An exception of type 'System.Data.ProviderIncompatibleException' occurred in Ent ...

  3. Azure 中部署Gitlab的方法

    一.Azure 中创建Gitlab虚拟机(1).登陆Azure:打开Azure 官网,点击右侧上方的登陆Azure门户,输入Azure帐号与密码,点击 登陆 . (2).创建Gitlab虚拟机:登陆A ...

  4. NAT原理简介、各种 ADSL Modem 及路由器的端口映射方法

    NAT原理简介 NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个IETF(Internet Engineering Task Force ...

  5. 【4】【MOOC】Python游戏开发入门-北京理工大学【第三部分-游戏开发之机制(色彩与绘图)】

    学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=and ...

  6. gluoncv 用已经训练好的模型参数,检测物体

    当然这个模型参数,最好用自己的,否则不够精确,我自己的还没训练完. from matplotlib import pyplot as plt import gluoncv from gluoncv i ...

  7. Kali-linux系统指纹识别

    现在一些便携式计算机操作系统使用指纹识别来验证密码进行登录.指纹识别是识别系统的一个典型模式,包括指纹图像获取.处理.特征提取和对等模块.如果要做渗透测试,需要了解要渗透测试的操作系统的类型才可以.本 ...

  8. Go并发与.Net TAP

    Go package main import "fmt" func sum(arrays []int, ch chan int) { fmt.Println(arrays) sum ...

  9. Node.js 上传图片并保存

    Node.js 上传图片并保存 依赖 package.json 文件 { "name": "demo", "version": " ...

  10. spring 包的依赖关系

    转自:http://www.cnblogs.com/ywlaker/p/6136625.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...