`
mylxiaoyi
  • 浏览: 325491 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第一天--开始一个工程

阅读更多
 
第一天--开始一个工程

挑战

我 们将要开始的Symfony日历是一个24个教程的集合,是在12月1日到圣诞节之间一天一天发布的。确实如此,每一天,包括周末,而一个新的教程也会马 上发布。每一个教程都是在一小时以内,从中我们可以看到正在发展中的web 2.0程序的开发。到圣诞节时,最终的程序将会放在网上,而源码也会开源。这个程序将会是可用的,有用的,有趣的。

24次小于一小时的时 间相当于不到一天的时间,而这正是我们认为一个开发者学习Symfony所需要的时间。每一天都会有新的特性加入到程序中,而我们将会充分利用这些开发来 展示Symfony的功能,以及在Symfony web开发中的一些有益的实践。每一天,我们都会认识到使用Symfony开发一个web程序是多么的快速与高效,而我们也将会了解更多的内容。

我们认为这些挑战已经足够了,而且因为我们是懒人,我们对于21天的冬天时间并没有安排。社区最需要的特性将会添加到程序当中,无需准备,而我们将会使其工作。

工程

我 们将要设计的程序是一个琐碎的"显示与通知"程序,就像一份要做事情的列表,一个电话本,或是一个书店。但是我们希望在原始的工程上使用Symfony, 而且工程有用,并且具有许多特性和一个合适的尺寸。这个目标就是要证明Symfony可以用于在复杂的条件下,使用样式与少量的工作来开发专业的程序。

我 们也希望有许多来实际使用这个程序,从而可以显示Symfony站点也可以支持一个重要的负载。这也就是为什么这个程序需要提供实际的服务,回答存在的需 求,或是创建一个新版本的原因。网站的运行是一个实在的压力测试,这就意味着我们需要你,以及更多的读者来使用这个站点并且在实际的生活讨论他,从而可以 检测他可以支持多少的访问者。

工程的内容对于其他天来说是保密的。今天我们还有许多工作要做,而不会描述一个完整的web 2.0程序。这些为我们提供了足够的时间来考虑新的特性。然而,我们需要一个名字,所以我们就称这个工程为askeet。

今天的内容

今天的目标就是要在一个网络浏览器中显示一个程序页面,并且要设置一个专业的开发环境。这包括安装Symfony,创建程序,配置网络服务器,以及设置源码版本控制系统。

这对于已经完成了前面教程的读者来是很容易的,而对于其他人来说也并不难。而所有的人都会学到一些新的东西。

我们认为你会使用一个安装有Apache,MySQL与PHP5的类Unix系统。如果你运行一个Windows系统,也并不痛苦:他也可以工作的很好,我们只需要在cmd提示符下输入一些命令。

安装Symfony

安装Symfony最简单的方法就是使用PEAR包。然而,为了可以使用频道--以及访问Symfony频道--我们需要更新到PEAR 1.4.0或是更高版本:

$ pear upgrade PEAR

现在我们可以添加Symfony频道:

$ pear channel-discover pear.symfony-project.com

现在我们就准备好安装Symfony的最新的稳定版本以及相应的依赖包了:
$ pear install symfony/symfony

可以通过使用命令行来检测Symfony版本以确定Symfony是否已经成功安装:
$ symfony -V

如 果我们想知道这个新的命令行工具可以为我们做哪些事情,我们可以输入symfony -T来列出所有可用的选项。我们也许希望阅读Running symfony一节来了解如何由一个tgz文档或是svn库来安装Symfony。在symfony wiki中也有一个社区贡献的非PEAR安装的版本。

设置工程

在Symfony 中,共享相同数据模型的程序(application)组织在工程(project)中。对于askeet工程,我们已经他有一个前端也一个后端:这就成 为两个程序。工程是程序的外壳,他需要首先被创建。为要完成这要的工作,我们所需要的就是一个目录以及一个symfony init-project命令行:

$ mkdir /home/sfprojects/askeet
$ cd /home/sfprojects/askeet
$ symfony init-project askeet

现在我们使用symfony init-app命令来创建前端程序:

$ symfony init-app frontend

Wow,实在是太快了。

配置网络服务

配置网络服务器

现 在我们需要改变我们的Apache配置从而可以访问新的程序。在一个专业的环境下,更好的方法是将新的程序设置为一个虚拟主机,而这也正是我们这里要描述 的。然而,如果我们更喜欢将其添加为一个alias,我们可以查看web server configuration一节来进行配置。

打开Apache/conf/目录下的httpd.conf文件,并且在末尾添加下面的内容:
<VirtualHost *:80>
    ServerName askeet
    DocumentRoot "/home/sfprojects/askeet/web"
    DirectoryIndex index.php
    Alias /sf /usr/local/lib/php/data/symfony/web/sf

    <Directory "/home/sfprojects/askeet/web">
        AllowOverride All
    </Directory>
</VirtualHost>

/sf指向了我们的PEAR数据目录中的Symfony目录。要确定这个目录,我们可以输入pear config-show命令。Symfony程序需要访问这些目录来得到一些图片以及JavaScrit文件,从而可以正确的运行web调试工具栏以及AJAX帮助者。

在Windows中,我们可以用下面的命令来替换Alias:

Alias /sf "C:\php\pear\data\symfony\web\sf"

声明域名

askeet域名需要声明为本地域名。

如果我们运行一个Linux系统,那么已经在/etc/hosts/文件中完成了这样的工作。如果我们运行Windows XP,那么这个文件位于C:\WINDOWS\system32\drivers\etc\目录下。

添加下需的行:
127.0.0.1    askeet

如果我们不希望设置一个新的主机,我们需要在我们的网站服务器上添加一个在另一个端口上的Listen语句。这就允许我们使用本地域名。

测试新配置

重启Apache服务器,来检测我们可以访问我们的新程序:

http://askeet

恭喜

Symfony 可以使用mod_rewrite模块来移除URL中的/index.php/部分。如果我们不想使用他或者是我们的服务器并没有提供相应的功能,我们可以 移除位于web/目录下的.htaccess文件。如果我们的Apache版本并没有使用mod_rewrite来进行编译,检查我们是否安装了 mod_rewrite DSO,并且在我们的httpd.conf文件中有下面几行:

AddModule mod_rewrite.c
LoadModule rewrite_module modules/mod_rewrite.so

我们可以在Links and the Routing System一节中了解更多内容。

我们也应试着在开发环境下访问程序。我们可以输入面的URL:

http://askeet/frontend_dev.php/

此时web调试工具栏应出现在右上角,包括确认我们的Alias sf/配置正确的小图标。

web调试工具栏

如果我们在Windows环境下运行IIS服务,那么配置会有一些小小的不同。我们可以在related tutorial中查找到配置方法。

Subversion

懒 人的一条原则就是不必担心打乱现在的代码。因为我们希望快速的工作,我们希望如果对我们的修改不满意可以恢复到以前的一个版本,我们希望多个人同时在一个 工程上工作,而我们还希望你可以访问程序的每一天的版本,我们将会使用源码版本系统。因为这个原因,我们会使用Subversion。现在假设你已经安装 了一个Subversion服务器或是可以访问一个Subversion服务器。

首先,为askeet工程创建一个新的仓库:

$ svnadmin create $SVNREP_DIR/askeet
$ svn mkdir -m "layout creation" file:///$SVNREP_DIR/ask/trunk file:///$SVNREP_DIR/askeet/tags file:///$SVNREP_DIR/askeet/branches

接下来,我们需要做第一次导入,忽略cache/与log/临时文件:

$ cd /home/sfprojects/askeet
$ rm -rf cache/*
$ rm -rf log/*
$ svn import -m "initial import " . file:///$SVNREP_DIR/askeet/trunk

现在删除原始的程序目录,而使用一个检出的SVN版本:

$ cd /home/sfprojects
$ mv askeet askeet.origin
$ svn co file://$SVNDIR/askeet/trunk askeet/
$ ls askeet/

$ rm -rf askeet.origin

现在还有一件事情需要配置。如果我们向代码仓库提交我们的工作目录,我们也许会拷贝一些我们并不希望的文件,例如位于我们工程的cache与log目录中的内容。所以我们需要为这个工程向SVN设置一个忽略列表:

$ cd /home/sfprojects/askeet
$ svn propedit svn:ignore cache

这些就会启动为SVN所配置的默认的文本编辑器。添加cache的子目录,这样当提交时SVN就会忽略这些内容:
*

保存退出,我们就完成了设置工作。

对log/目录重复这样的过程:

$ svn propedit svn:ignore log

然后只输入:*

现在,确保将cache与log目录的写权限设置回合适的级别,这样我们的web服务器可以向其中写入。在命令行输入下面命令:

$ chmod 777 cache
$ chmod 777 log

如果我们希望了解更多的源码版本控制的内容,我们可以查阅project creation chapter一节。

明天见

好了,现在已经到1小时了。我们谈论了许多,但是却并没有为Symfony作任何事情。我们看一下明天的Symfony日程会涉及到哪些内容:

程序可以做什么
构建数据模型并且生成对象关系映射
搭建一个模型

 原文地址 http://www.symfony-project.com
分享到:
评论

相关推荐

    SpringBoot-第一天.pdf

    根据提供的文件内容,我们可以提炼出以下SpringBoot以及Spring框架相关的知识点。 1. Spring框架发展史 ...同时,通过对Maven配置的理解和IoC容器实例化获取的案例,加深对SpringBoot第一天学习内容的认识。

    2021-2022收藏的精品资料二级建造师建设工程施工管理执业资格考试押题一.docx

    ** 施工质量控制的一个显著特点是终检局限大,很难通过终检来发现所有问题。 #### 八、工程材料验收 **8. 凡涉及工程安全及使用功能的有关材料,应按各专业工程质量验收规范规定进行验收,并经谁检查认证:** - *...

    学成在线-第2天-讲义-CMS前端开发v1.21

    Vue.js是用于构建用户界面的渐进式框架,而Webpack是一个模块打包器,常用于管理和构建Vue.js项目。 在【Vue.js与Webpack研究】部分,Vue-cli被提及,它是Vue官方提供的快速构建单页应用的脚手架。通过Vue-cli,...

    广播电视中心工程-抹灰工程.pdf

    6. **抹面层灰**:由阴、阳角开始,先竖向或横向抹第一遍,再抹第二遍。 7. **清理**:抹灰完成后,清理门窗框、墙面上的灰浆,保持工地整洁。 **外墙抹灰施工** 1. **基层处理**:步骤与内墙相同。 2. **湿润基层*...

    【工程文档】-深圳地铁2号线工程建设监理月报.doc

    - 安全大检查:同一天,各方参与了施工现场的安全大检查。 - 公司检查:5月14日,地铁公司企管部进行了工作检查。 - 结构检测:5月17日,市质检站对C35混凝土框架柱进行了检测。 - 变更记录:5月19日,屋面变形...

    Microsoft_Project_-_房地产项目计划分级管理模板

    在房地产项目的开发过程中,合理地规划与管理项目的每一个阶段至关重要。Microsoft Project 提供了一种有效的方法来实现这一点,它可以帮助项目管理者清晰地定义项目的不同阶段,并有效地分配资源。下面,我们将根据...

    建筑施工组织2021-第九章 灌浆工程施工.doc

    灌浆工程被划分为两期,第一期包括382.5m高程以下部分和右坝肩,第二期则涵盖382.5m高程以上部分及左坝肩。一期灌浆分为三个区域,即大坝下方、右坝肩和隧洞,而二期不分区。 9.3 施工布置 - 供风:利用现有坝基和...

    【工程文档】-码头一期工程水泥搅拌桩技术交底.doc

    工程涉及11个泊位,其中3个1000吨散杂货泊位,2个1000吨件杂货泊位,以及6个500吨件杂货泊位,总计3996根水泥搅拌桩,桩径为φ500mm,桩长12米。 **施工工艺流程:** 1. 钻机就位并调平,确保钻杆垂直。 2. 沉降至...

    【工程文档】-空心板钢筋开工报告.doc

    而后续的1-2#至1-5#工程则计划在同年11月中旬开始,并在几天内完工。每个报告的附件部分通常会包含原材料试验检验报告单,这是为了确保使用的钢筋材料符合工程规范和质量标准。 在工程实践中,钢筋的加工和安装需...

    软设第一天到课福利.zip

    标题中的“软设第一天到课福利.zip”表明这可能是一个为软件设计或开发课程准备的压缩文件,可能是讲师为了欢迎新生或开始课程的第一天而提供的资料包。由于没有具体的标签,我们可以推测这个压缩包可能包含了各种与...

    45天通过网络工程师考试

    作者还提到,复习可以分为三个阶段:第一阶段,主要利用两个星期的时间把《教程》过一遍,了解大致考试知识和考试题型;第二阶段,大致上花两个星期,把重点专题的形式把《教程》过第二遍,并开始试着做一两套真题的...

    同步工程-总装数据分析流程.pdf

    【同步工程-总装数据分析流程】是汽车制造过程中的关键环节,旨在规范新车分析数据的输入、接收、存储和分析,以确保车型开发的高效性和准确性。这一流程旨在通过规范化和流程化的操作,缩短开发周期,提高数据分析...

    一五三医院门面房工程网络进度计划.doc

    - 基础工程:这是所有建筑项目的第一步,包括地基挖掘、浇筑等,计划在2月18日至4月30日完成,历时52天。 - 主体工程:建筑结构的构建,如框架、墙体等,从4月30日开始,具体结束日期未给出。 - 屋面工程:安装...

    建筑施工组织2021-水利水电土建工程施工合同条件.doc

    【标题】和【描述】提及的是“水利水电土建工程施工合同条件”,这是一份规范水利水电建设中承包方与发包方之间权利义务关系的法律文件。【标签】表明这是与施工相关的专业知识。 合同文件中详细列出了各种定义和...

    建筑施工组织2021-网工程施工组织设计方案.doc

    - ×××大学新建校园的市政综合管沟工程包括供电、供暧、供水和给水系统,第一合同段全长460米,管沟尺寸为H2600×W2500和H2000×W2100。 - 设计单位为×××市规划设计研究院,此项目旨在满足校园的能源和水资源...

    【工程文档】-第五章重点(关键)和难点工程的施工方案、.doc

    5. **生产周期计算**:虽然没有详细列出具体的计算过程,但文档提到了预制一孔箱梁时模板和台座的周转时间为6天,还考虑了天气因素和模板转换的时间,这些都是影响整体施工进度的重要因素。 综上所述,这份文档详述...

    proe五天入门---讲解详细

    在Pro/ENGINEER Wildfire的第一天课程中,学员将对软件进行初步了解,掌握基础的设计模型编辑方法以及如何创建参照几何和直接特征。通过电钻实例,学习者可以实践并熟悉以下内容: - **设计模型的预览与打开**:...

    【工程文档】-移民商业中心(市场)工程监理实施细则.doc

    如果质量合格,则进入下一个工序,否则进行处理。流程还包括图纸会审、技术交底、施工方案审查、施工人员及材料的检查。 5. **监理工作控制要点** - 土建专业:重点关注分部工程质量,如土石方工程防止坍塌和侧移...

    建筑施工组织2021-某工程幕墙工程施工组织设计.doc

    总结来说,这份施工组织设计是全面的,从施工准备到工程结束的每一个环节都有详细规划,涵盖了工期安排、施工工艺、质量控制、安全措施、防火防窃、服务承诺等多个方面,旨在实现高效、安全、高质量的幕墙工程建设。

    Reversing:逆向工程揭密

    第一次使用逆向工程工具也是在2001年,当时从网上下载了Numega SoftICE,具体哪个版本已经记不清了,在家里的旧电脑上折腾了好几天,直到系统崩溃才罢手。 之后呢,只是零零星星地看过一些相关的资料。因此,当初...

Global site tag (gtag.js) - Google Analytics