+ -
当前位置:首页 → 问答吧 → 顶尖框架symfony视频教程(连载3):Hello World, Symfony 我的第一个Symfony项目

顶尖框架symfony视频教程(连载3):Hello World, Symfony 我的第一个Symfony项目

时间:2010-08-16

来源:互联网

先发视频地址:
点击播放多媒体

FLASH版地址: flash: http://player.youku.com/player.php/sid/XMTg2MjU0NTM2/v.swf


前提条件

    学会Symfony开发环境的安装有一定的WEB应用开发经验有一定的PHP或者其他语言的开发经验,最好熟悉面向对象开发理念




目标任务实现经典程序范例,Hello World! 如何使用Symfony快速生成项目,大致了解一下Symfony项目的体系架构。

相关话题


PHP框架技术,非Symfony一种,国内与国外都有诸多的PHP框架技术。譬如国人开发的ThinkPhp,也是不错选择,国外就更多了,PHP旗下ZEND框架,最热门的Yii,国人用的比较多的CodeIgniter ,简称CI。Symfony在其中没有显赫的地位,但不代表它不够出色,只能说还未挖掘。众多的PHP框架都有其优点和缺点,而Symfony最大的缺点在于开发小型应用,可能会没有太大优势,另外一点,国文资料非常之少,这也无法得到国人的支持主要原因,本站的主题就是让大家掌握这把利器,开发强大而又健全的大型应用项目。

       Symfony2 即将在今年下半年出炉,它的会质的飞跃,掌握了Symfony 1.4.x,我们会更容易的继续Symfony新的篇章。参考地址:http://symfony-reloaded.org/
内容简要       
为了让大家熟悉一下,使用Symfony究竟如何开发一个完整的应用,我们将来实现程序界有史以来最经典的范例:Hello World! 并会在这个过程中阐述一些相关的概念。非常之简单,所以大家无需惊慌。

    安装一个PHP开发工具,建议Eclipse For PHP在命令提示符下操作Symfony的CLI命令。为项目配置独立的访问域名编写代码,实现Hello World。

教学步骤1.

安装一个PHP开发工具,建议Eclipse For PHP为了让项目开发更加方便,还是需要一个优秀的开发工具做辅助,我们这里选择了Eclipse,这个工具有许多的版本,Zend版,绿色版等等,我们这里用一个简易的安装版叫 EasyEclipse。以后大家可以考虑特性更好的版本。安装的方法很简单,运行安装程序,就一步到位,无需安装JDK,因为这个工具是java应用。      
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image002_1.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
这是其大致的外观,至于这个工具使用,我们这里不作详解,只是应项目开发所需稍作介绍。


2.
在命令提示符下操作Symfony的CLI命令。Symfony开发与其他框架技术有所不同,它带有内置的CLI命令(而且可以自定义),许多事情只要需要敲几下命令操作就能完成,作为一个专业的开发员,这是个天大的福音啊。对于初学者,也不用怕,其实和DOS命令没啥区别,只是需要花点时间记记单词而已。好了,来吧。

    打开命令提示符,创建Symfony项目工作目录夹,symfony,后面所有项目都放在此目录夹中。进入symfony目录夹,继续建一个项目目录夹 hello进入目录夹,然后输入 symfony generate:project hello,创建项目hello,这个命令会生成Symfony项目目录架构,这个以后详解。继续命令,输入 symfony generate:app frontend 创建项目的一个应用 frontend,这个命令会生成Symfony应用的目录架构,这个也以后详解。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image004_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image006_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >

    接下来,把hello项目加入Eclipse中。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image008_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
切换Eclipse工作目录夹,确定后,工具重启。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image010_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
新建PHP项目,在对话框选择PHP项目,下一步。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image012_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
键入hello,结束,加入生成的Symfony项目。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image014_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
这是最终的项目目录结构,我们以后会作详解。


3.
为项目配置独立的访问域名因为生成的项目没有在APACHE的WWW目录下,所以我们无法用常规方式访问,这里需要配置Apache服务的配置文件,为hello项目配置独立的一个子域名。这对我们以后多个项目开发很有利。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image016_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
打开Apache的配置文件目录夹
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image018_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
用记事本打开httpd.conf配置文件
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,tNameVirtualHost 127.0.0.1:8080#设置localhost还是解析到WWW目录夹<VirtualHost 127.0.0.1:8080>  ServerName localhost  DocumentRoot "C:/appServ/www"  DirectoryIndex index.php  <Directory "C:/appServ/www">    AllowOverride All    Allow from All  </Directory></VirtualHost>#设置hello.localhost解析到symfony工作目录夹,hello/web<VirtualHost 127.0.0.1:8080>  ServerName hello.localhost  DocumentRoot "C:/symfony/hello/web"  DirectoryIndex index.php  <Directory "C:/symfony/hello/web">    AllowOverride All    Allow from All  </Directory>#引用symfony的内置资源文件,包括CSS,JS等等  Alias /sf C:\AppServ\php5\data\symfony\web\sf  <Directory "C:\AppServ\php5\data\symfony\web\sf">    AllowOverride All    Allow from All  </Directory></VirtualHost>在最下方输入以下内容。注意自己的AppServ的安装目录夹。关于此文件的配置,待以后详解。下面来完成hello.localhost的解析配置。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image020_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
打开目录夹,C:\WINDOWS\system32\drivers\etc\,
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image022_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
用记事本打开hosts文件,此文件用于配置主机域名解析。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image024_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
在下方填写hello.localhost,这里无需端口号,上面那行的你已经猜到什么了吧。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image026_1.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
好了,现在重启apache服务。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image028_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
在浏览器中键入,http://hello.localhost:8080 显示该页面,成功提示你已经创建了一个symfony项目。这是个临时页面,下面可以来写点代码了。


4.
编写代码,实现Hello World。下面我们继续命令提示符下的symfony命令
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image030_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
symfony generate:module frontend home在frontend应用下生成module(模块) home
回到工具刷新项目
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image032_0.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
或者选择项目按F5
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image034.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
打开图示目录夹下的文件actions.class.php,注释掉唯一的一行代码。按图示编写代码。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image036.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
打开图示目录夹下的文件indexSuccess.php,此文件是一个模板文件,按图示编写代码。
=700) window.open('http://www.symfony-cxne.org/sites/default/files/image038.jpg');" onload="if(this.offsetWidth>'700')this.width='700';if(this.offsetHeight>'700')this.height='700';" >
在浏览器地址栏中输入 http://hello.localhost:8080/index.php/home ,至此,我们已经完成这个小小的经典范例。
内容总结有一定PHP开发经验的朋友,我想,学到这里,估计有许多地方已经有更多的理解,当然也会有朋友会产生诸多不解之处,没关系,我们会在以后的教程中一一讲解。希望大家有一个好的开始,虽然看似项目期初的配置复杂了些,但到后面,那只是家常便饭的事情,Symfony更强大的特性正期待着我们去挖掘!


作者简介:新魔力symfony中文网站http://www.symfony-cxne.org


发现作者正在密集更新中,已经制作了10几个视频,很值得关注,symfony中文资料还没有人这么认真的贡献过。

作者: gefeinmxyz   发布时间: 2010-08-16

第二集:http://bbs.php100.com/read-htm-tid-41316.html
第一集:http://bbs.php100.com/read-htm-tid-41292.html

作者: gefeinmxyz   发布时间: 2010-08-16