Symfony2快速指南(一)

来源:互联网 发布:淘宝店铺过户条件2017 编辑:程序博客网 时间:2024/06/02 03:32

刚转入互联网公司不久,街道的第一个项目就是为一个权限管理系统制作一个权限配置工具,要求使用symfony2这个框架,之前没有接触过使用框架,更没有接触到php。所以这个项目基本就是一边google,一边再做。在网上找资料的时候发现,现在的资料都不是很全,也不是很及时。symfony2本身自己的文档又不支持搜索(至少是在我写这篇文章的时候还不支持搜索,可以当你以后看到这篇文章时,官网或许已经支持搜索了)。写着篇文章的目的就是希望一个完全不懂symfony2框架,或者是第一次接触mvc框架的人,可以快速上手该框架。

官网

http://symfony.com/

不用多说,上面的肯定有很多document,如果你认真的扒这个官网,肯定可以收获很多。但是个人感觉这个官网上面的文档并没有规范化,好像是不同的开发人员写的,每个文档都有自己的行文风格。当然有一些文档并没有跟着现有的symfony2的版本走,所以就滞后于它自己的产品,导致的结果嘛,就是按照它上面的说法并不能解决问题,那么这时提供给你一下三个方案:

  1. 最后还得去问万能的google
  2. 直接到stackoverflow去问
  3. 自己研究下它的源代码,自行解决

这三种方法解决问题的速度大家一看便知。当然了,如果当你熟读了它的源代码之后,就没有什么问题是你解决不了的啦~~

1. 版本要求

个人感觉,symfony2这个框架是融了很多一些其他的php库,如doctrine,twig等,当然了其中每个库都不一定非要依赖于symfony而存在,如果你再你自己的项目中直接操作数据库,直接用doctrine这个库就好了(这个也是我在网上google的结果)。

symfony2的每个项目都是使用composer来管理它所依赖的包的。如果你使用ubuntu或者mac的话,你一定会比较熟悉apt-get或者homebrew,那么这个composer就是php界的apt-get(homebrew)了。如果对composer还不是很了解,可以到它的官网先去了解下。

为了明确我这个文档的适用范围,我把我自己项目里所依赖的包列到了下面。

    "require": {        "php": ">=5.3.3",        "symfony/symfony": "2.6.*",        "doctrine/orm": "~2.2,>=2.2.3,<2.5",        "doctrine/dbal": "<2.5",        "doctrine/doctrine-bundle": "~1.2",        "twig/extensions": "~1.0",        "symfony/assetic-bundle": "~2.3",        "symfony/swiftmailer-bundle": "~2.3",        "symfony/monolog-bundle": "~2.4",        "sensio/distribution-bundle": "~3.0,>=3.0.12",        "sensio/framework-extra-bundle": "~3.0,>=3.0.2",        "incenteev/composer-parameter-handler": "~2.0",        "justinrainbow/json-schema": "~1.3",        "friendsofsymfony/jsrouting-bundle": "~1.5"    },

1. Symfony2的安装

前提条件

php的版本的要在5.4(或以上)。如果没有满足,还请自行升级

下载

$ curl -LsS http://symfony.com/installer > symfony.phar$ sudo mv symfony.phar /usr/local/bin/symfony$ chmod a+x /usr/local/bin/symfony

新建一个自己的项目

# Linux and Mac OS X$ symfony new myproject

这样新建好的项目会包含一个示例项目,你可以直接运行它来感受下symfony2。

那么问题来了,symfony2只是一个mvc框架,我是不是还得配置一些http server才能用啊。这种担心是对的,但是对于自己开发symfony2项目,现在来说还有点太早。那是因为symfony2自身携带了一个小型的server,这样在开发过程中,你完全可以只是用它自带的这个server就可以了。

真正到了测试或者发布阶段,那个时候在配置http server(Apache/Nginx)也不迟。具体的配置,我后面会提到。

运行项目

$ cd myproject/$ php app/console server:runServer running on http://127.0.0.1:8000Quit the server with CONTROL-C.

打开你的浏览器,输入上面的网址,感受下symfony2吧。

对git的支持

现在使用git管理开源项目那真是首选啊,symfony2也默认支持git。
ls -a一下你刚才新建的那个项目目录就可以看到有一个.gitignore文件吧。所以当你完成你项目的开发,要发布到git(github/gitlab)上去时,并不是把你项目下的所有东西都放上去,而是直选所需。

在这里就可以看出,根据.gitignore还有composer.json两个文件实现了symfony2项目的轻量管理。太方便了,我想这也许就是开源社区的魅力之一吧。

使用他人的symfony2项目

好了,经过上面的步骤,或许你已经把代码发布到git上去了,虽然现在你一行代码还没有写。或许你只是想尝试下symfony2这里的开发流程。

好了,git已经管理了一份代码,现在要把它clone下来。这个不多说。
拿到代码后,为了运行这份代码,你需要做的就是

composer install

That’s it! composer就会根据composer.json这个文件里的东西为你下载该项目所依赖的包。

下载完成后,使用上面的那个命令运行该项目。Oh, yeah~~你可以开始跟别人一起合作了!

0 0
原创粉丝点击