Symfony 框架实战教程——第一天:创建项目(转)
这个系列的实战博客真是太有用了,很多例子自己调试也是通的,不同于很多网上不同的实战例子。。。附上原文地址 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
而直接运行的:
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
而直接运行的:
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 框架实战教程——第一天:创建项目(转)相关推荐
- 虚幻4 - ARPG实战教程(第一季)-房燕良-专题视频课程
虚幻4 - ARPG实战教程(第一季)-31869人已学习 课程介绍 以一个ARPG原型为实例,讲解虚幻4引擎的技术和开发知识,重点包括项目框架搭建.动画系统(AnimGraph)等. ...
- Spring Boot + vue-element 开发个人博客项目实战教程(一、项目介绍和规划)
⭐ 作者简介:码上言 ⭐ 代表教程:Spring Boot + vue-element 开发个人博客项目实战教程 ⭐专栏内容:零基础学Java.个人博客系统 ⭐我的文档网站:http://xyhwh- ...
- C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)...
一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...
- beego model获取controller_Goweb开发-Beego框架实战教程:项目搭建及注册用户
一.搭建项目 首先打开终端进入gopath下的src目录,然后执行以下命令,创建一个beego项目: bee new myblogweb 运行效果如下: 然后通过goland打开该项目: 我们打开co ...
- 实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己 ...
- 【深度学习】实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN
此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己动手实践.最后,分享更多学习资料.进阶项目实战,这部分属于我CSDN上的专栏,最后会按照顺序给出相 ...
- React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块...
尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://blog.csdn.net/fengyuzhengfan/article/details/54691503) 告诉大家一个好消息. ...
- 建木(Jianmu)----迈出建木第一步创建项目分组
[原文链接] 1 建木简介 下面一段是摘自建木官网的一段话,用来对建木做一个简单的介绍: "建木"是上古先民崇拜的一种圣树,传说建木是沟通天地人神的桥梁.伏羲.黄帝等众帝都是通过这 ...
- 人工智能框架实战精讲:Keras项目-英文语料的DNN、Word2Vec、CNN、LSTM文本分类实战与调参优化
Keras项目-英文语料的文本分类实战 一.机器学习模型 1.1 数据简介 1.2 数据读取与预处理 1.3 数据切分与逻辑回归模型构建 二.全连接神经网络模型 2.1 模型训练 2.2 模型结果展示 ...
最新文章
- 逻辑模型设计步骤-粒度层次划分
- Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战
- vue升级之路(三)-- vue-router的使用
- matlab pause
- C++知识点19——使用C++标准库(再谈string——string的初始化、赋值、添加、删除、访问)
- css3 box-sizing属性
- VTK:图片之ImageIslandRemoval2D
- OpenCV iOS-图像处理
- 你常吃的便利食品,正在加速你的衰老……研究发现饮食与DNA损伤有关
- 第九节、人脸检测之Haar分类器
- 网络从业人员职业规划路线图
- php可以用lucene吗,php – Lucene外国字符问题
- linux dns mx 记录,一起学DNS系列(十三)图文详说A、CNAME、MX和NS记录
- vs2010中svn使用教程_VS2010中使用ankhSVN
- 抖音·某无关痛痒的信息泄露接口
- JavaScript实现贪吃蛇小游戏
- 计算机开始菜的mstsc命令,Win10一周年更新版系统CLSID(GUID)汇总
- 沙奎尔·奥尼尔——盘点那些“巨人”的事①
- a12处理器怎么样_新iPad Pro使用A12X处理器,性能如何?
- 概率论与数理统计_数理统计部分