这个系列的实战博客真是太有用了,很多例子自己调试也是通的,不同于很多网上不同的实战例子。。。附上原文地址  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 复查一下。

转载于:https://www.cnblogs.com/codeisfun/p/9089241.html

Symfony 框架实战教程——第一天:创建项目(转)相关推荐

  1. 虚幻4 - ARPG实战教程(第一季)-房燕良-专题视频课程

    虚幻4 - ARPG实战教程(第一季)-31869人已学习 课程介绍         以一个ARPG原型为实例,讲解虚幻4引擎的技术和开发知识,重点包括项目框架搭建.动画系统(AnimGraph)等. ...

  2. Spring Boot + vue-element 开发个人博客项目实战教程(一、项目介绍和规划)

    ⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...

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

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

  4. beego model获取controller_Goweb开发-Beego框架实战教程:项目搭建及注册用户

    一.搭建项目 首先打开终端进入gopath下的src目录,然后执行以下命令,创建一个beego项目: bee new myblogweb 运行效果如下: 然后通过goland打开该项目: 我们打开co ...

  5. 实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己 ...

  6. 【深度学习】实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN

    此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己动手实践.最后,分享更多学习资料.进阶项目实战,这部分属于我CSDN上的专栏,最后会按照顺序给出相 ...

  7. React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块...

    尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...

  8. 建木(Jianmu)----迈出建木第一步创建项目分组

    [原文链接] 1 建木简介 下面一段是摘自建木官网的一段话,用来对建木做一个简单的介绍: "建木"是上古先民崇拜的一种圣树,传说建木是沟通天地人神的桥梁.伏羲.黄帝等众帝都是通过这 ...

  9. 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化

    Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...

最新文章

  1. 逻辑模型设计步骤-粒度层次划分
  2. Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战
  3. vue升级之路(三)-- vue-router的使用
  4. matlab pause
  5. C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)
  6. css3 box-sizing属性
  7. VTK:图片之ImageIslandRemoval2D
  8. OpenCV iOS-图像处理
  9. 你常吃的便利食品,正在加速你的衰老……研究发现饮食与DNA损伤有关
  10. 第九节、人脸检测之Haar分类器
  11. 网络从业人员职业规划路线图
  12. php可以用lucene吗,php – Lucene外国字符问题
  13. linux dns mx 记录,一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录
  14. vs2010中svn使用教程_VS2010中使用ankhSVN
  15. 抖音·某无关痛痒的信息泄露接口
  16. JavaScript实现贪吃蛇小游戏
  17. 计算机开始菜的mstsc命令,Win10一周年更新版系统CLSID(GUID)汇总
  18. 沙奎尔·奥尼尔——盘点那些“巨人”的事①
  19. a12处理器怎么样_新iPad Pro使用A12X处理器,性能如何?
  20. 概率论与数理统计_数理统计部分

热门文章

  1. 全新版个人博客小程序,无需开发服务端接口即可使用
  2. java+ssh+mysql酒店网站管理系统源码
  3. 相片堆叠瀑布流网格布局动画效果
  4. LeetCode167 | Two Sum II - Input array is sorted (Easy)
  5. 代码提交本地代码和远程代码不同步问题(笔记)
  6. 微信小程序盲盒-可对接微信支付
  7. 流浪猫流浪狗H5完整运营源码下载/可封装APP
  8. ajax-FormData快速序列化表单数据以及文件上传
  9. linux 命令行工具无敌斩
  10. 爬虫入门五(Phantomjs和selenium)