文档章节

Symfony2框架实战教程

雍雍_yoyo
 雍雍_yoyo
发布于 2015/06/11 14:15
字数 1106
阅读 137
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

Symfony2框架实战教程——第一天:创建项目

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

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

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

准备工作

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

保证PHP在PATH目录里。

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

初始化项目

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

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

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

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

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

$ php symfony.phar

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

Symfony Installer (0.5.0)
=========================

This is the official installer to start new projects based on the
Symfony full-stack framework. To create a new project called blog in the current directory using the latest stable version of Symfony, execute the following command:

  $ symfony.phar new blog To base your project on a specific Symfony version, append the version number at the end of the command:

  $ symfony.phar new blog 2.5.6 Updating the Symfony Installer ------------------------------ New versions of the Symfony Installer are released regularly. To update your
installer version, execute the following command:

  $ symfony.phar self-update 

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

$ php symfony.phar new news

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

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

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

不出意外,我们便可以通过一下命令开启一个Web server监听在 localhost:8000上(注:此命令只能运行在PHP5.5版本之上):

$ php app/console server:start localhost:8000

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

symfony acme

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

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

$ php app/check.php

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

screen shot symfony check console

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

symfony check web

雍雍_yoyo
粉丝 11
博文 141
码字总数 54360
作品 0
大连
私信 提问
加载中
请先登录后再评论。
TDD的测试框架--Machine.Specification

Machine.Specification 是一个 TDD 测试驱动开发的测试框架,简化了测试,无需关心语言本身特性。 Machine.Specifications 带来的好处是不需要在代码里有注释,但同时阅读代码的人可以一目了...

匿名
2013/01/22
1K
0
mvc框架--Razor

Razor 是一个轻巧而优雅的servlet mvc框架 # 又一个轮子? no,写就她是为了证实我个人的某些想法,并在这个过程中练练手,这两种冲动碰撞在一起,自然而然地产生了Razor # Razor的现在和未来...

dtubest
2013/01/25
3K
0
Android3D应用与游戏开发框架--JQGL

JQGL 是一款针对Android设备上3D应用、游戏的开发框架。 核心功能是OpenGL-ES的使用框架,相对于大部分开发者而已,OpenGL是陌生的,没有专门研究无法进行相关的开发。 本框架针对于Android...

Jping
2013/02/21
1.6K
0
响应式框架--Groundwork

GroundworkCSS 是一个基于 Sass 预处理器的开源项目 ,主要用于快速构建响应式 Web 应用程序。拥有一个灵活的、可嵌套的网格系统,可以创建适应多种浏览设备的布局。 Groundwork 还提供多种 ...

匿名
2013/02/25
2.8W
4
WebUI自动化测试框架--Dagger

Dagger是网易杭州研究院QA团队开发的一个轻量级、运行稳定的WebUI自动化测试框架,主要基于Selenium及TestNg可以认为是对Selenium进行二次封装的一个框架(俗称 造轮子 )。之所以把这个轮子...

ChenKan
2013/03/05
2.8W
6

没有更多内容

加载失败,请刷新页面

加载更多

叮! Q币派送中,快来看看你中奖了吗?

中奖名单新鲜出炉啦! 大家好 为了感谢大家一直以来对我们公众号的关注和支持 D妹来给大家发!奖!品!了! 是哪几位幸运鹅 能把这30Q币收入囊中? 赶紧过来康康吧! 也欢迎各位后续多多分享...

腾讯云DNSPod
今天
24
0
Qt音视频开发5-vlc事件订阅

一、前言 事件订阅可以拿到文件长度、播放进度、播放状态改变等信息,vlc的事件订阅机制封装的比较友好,只需要先创建一个事件管理器,然后逐个订阅自己感兴趣的需要的事件,不感兴趣的可以不...

飞扬青云
32分钟前
18
0
酒精和药物影响下出现交通事故的频率

导读: 在酒精或药物影响下驾驶,已被认为是与发生潜在交通事故和出现严重伤亡结果相关的关键因素[1]。2016年,美国酒驾事故导致10,497人死亡,占当年交通事故死亡总人数的28%,其死亡总人数...

科研菌
昨天
0
0
高可用高并发的 9 种技术架构!

来源:androidchina http://www.androidchina.net/7928.html 1、分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一...

Java技术栈
34分钟前
23
0
联盟链要对区块链做减法

当前联盟链平台在公有链的基础上,对共识机制做调整,去掉公有属性,使得准入可控、效率提升,这实际上是对区块链在做减法。但这是否足够呢? 我们在应用中很快发现,联盟链的使用比较受限制...

FISCO-BCOS开源社区
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部