第01天:开始一个项目
所面临的挑战
symfob娱乐下载ony降临日历是一套24个教程,在12月1日到圣诞节之间逐日发布。没错,包括周末在内,每天都会有新的教程发布。每个教程将持续不到一个小时,并将有机会看到一个web 2.0应用程序的持续开发,从a到z,在圣诞节期间,最终的应用程序将被放在网上,源代码将成为开源的。这个应用程序将是可用的、有趣的、有用的和有趣的。
少于1小时的24倍等于不到一天,这正是我们认为开发人员学习symfony所需的时间。ob娱乐下载每天都会有新的特性被添加到应用程序中,我们将利用这次开发向您展示如何利用symfony的功能以及symfony web开发中的良好实践。ob娱乐下载每天,你都会意识到使用symfony开发web应用程序是多么快速和高效,你会想知道更多。ob娱乐下载
考虑到仅仅是这样的挑战还不够,而且因为我们都是懒人,所以我们对21日没有计划——冬天的时间。社区最需要的功能将在当天添加到应用程序中,欧宝体育平台怎么样无需任何准备,我们将使其工作。今天是去听交响乐大师的一天。ob娱乐下载
这个项目
要设计的应用程序可以是一个简单的“显示-告诉”应用程序,比如待办事项列表、电话簿或书店。但是,我们希望在一个原始项目上使用syob娱乐下载mfony,这是一个有用的项目,具有许多特性和重要的规模。我们的目标是证明symfony可以在复杂的情况下使用,以轻松的方式ob娱乐下载开发专业的应用程序。
我们也希望很多人会真正使用这个应用程序,以表明symfony网站可以支持重要的负载。ob娱乐下载这就是为什么应用程序需要提供实际的服务,并满足现有的需求——或者创建一个新的需求。该网站的推出将是一次现场压力测试;这也意味着我们需要你,谦卑的读者,挖掘/书签/博客网站,并在现实生活中讨论它,以检查它能支持多少访问。
这个项目的内容将保密到下一天。如果不描述一个功能齐全的web 2.0应用程序,我们今天还有很多工作要做。这应该给你一些时间来争论和提出额外的假设。但是,我们需要一个名字,所以我们称它为:使用.
今天做什么
这一天的目标是在web浏览器中显示应用程序的页面,并建立一个专业的开发环境。这包括symfony的安装、应用程序的创建、web服务器配置ob娱乐下载和源版本控制系统的设置。
对于那些已经遵循了前面教程的人来说,这应该很容易,而对其他人来说并不难。每个人都应该学习新东西。
我们假设您使用的是安装了Apache、MySQL和PHP 5的类unix系统。如果你运行的是Windows系统,不要惊慌:它也能正常工作,你只需要在cmd
提示。
请注意
Unix shell命令在Windows环境中可以派上用场。如果你想用工具喜欢焦油
,gzip
,或grep
你可以在Windows上安装Cygwin.官方文档有点少,所以可以找到一个好的安装指南在这里.喜欢冒险的人也可以试试微软的适用于Unix的Windows服务.
ob娱乐下载Symfony的安装
安装symfony的最简单方法是使用ob娱乐下载梨包中。然而,为了能够使用通道-并访问symfony通道-您需要升级到PEAR 1.4.0或更高版本(除非您运行包ob娱乐下载含PEAR 1.4.5的PHP 5.1.0):
$ pear升级
请注意
如果在使用PEAR时遇到任何问题,请参阅运行symfonob娱乐下载y书一章。
现在你可以添加“symfony”通道:ob娱乐下载
$ pear channel-discover pear.ob娱乐下载symfony-project.com
您已经准备好安装symfony的最新稳定版本及其所有依赖项:ob娱乐下载
安装symfony/symfoob娱乐下载ny
如果需要一个特定的版本,比如1.0.11,可以这样指定:
升级symfony/symfoob娱乐下载ny-1.0.11
通过使用命令行检查版本ob娱乐下载(注意大写-V)来检查symfony是否已经安装:
$ ob娱乐下载symfony
如果您想知道这个新的命令行工具可以为您做什么,请键入ob娱乐下载symfony - t
列出可用选项。你可能还想看看运行symfonob娱乐下载y书中的章节,了解如何从TGZ归档文件或SVN存储库安装symfony。ob娱乐下载社区欧宝体育平台怎么样的贡献还详细介绍了在symfob娱乐下载ony wiki.
项目设置
在syob娱乐下载mfony中,应用程序共享相同的数据模型被重新分组到项目.对于askeet项目,我们已经可以公开这样一个事实:将会有一个前端和一个后端:这就构成了两个应用程序。项目是应用程序的外壳,必须首先创建它。要做到这一点,您只需要一个目录和一个ob娱乐下载symfony init-project
命令行:
mkdir /home/sfprojects/askeet $ CD /home/sfprojects/askeet $ syob娱乐下载mfony初始化项目askeet
属性创建前端应用程序的时候到了ob娱乐下载symfony init-app
命令:
$ ob娱乐下载symfony初始化应用前端
哇,好快啊。
请注意
建议Windows用户运行symfony,并将新项目设置在不包含空ob娱乐下载格的路径中。避免使用文档和设置
目录,包括下面的任何地方我的文档
(或文档
在Vista)。
Web服务设置
Web服务器配置
现在可以更改Apache配置以使新应用程序可访问。在专业上下文中,最好将新应用程序设置为虚拟主机,本文将对此进行描述。但是,如果希望将其添加为别名,请在Web服务器配置本章。
打开httpd . conf
你的档案Apache / conf /
目录并在末尾添加:
NameVirtualHost 127.0.0.1:80ServerName askeet DocumentRoot "/home/sfprojects/askeet/web" DirectoryIndex index.php Alias /sf /usr/local/lib/php/data/ob娱乐下载symfony/web/sf .phpAllowOverride All
请注意
的/科幻
alias必须指向PEAR数据目录中的symfonyob娱乐下载文件夹。要确定它,只需输入梨config-show
.ob娱乐下载Symfony应用程序需要访问这个文件夹来获得一些图像和javascript文件,以正确地运行web调试工具栏和AJAX助手。
在Windows操作系统下,需要替换别名
行如下:
别名/sf "C:\php\pear\data\symfob娱乐下载ony\web\sf"
如果上述方法不起作用,可能需要为别名的对象指定权限/科幻
目录中。以下是来自一个工作中的Windows里面安装:
NameVirtualHost 127.0.0.1:80ServerName askeet DocumentRoot "C:/sfprojects/askeet/web" DirectoryIndex index.php Alias /sf" C:/wamp/php/PEAR/data/ob娱乐下载symfony/web/sf" <目录"C:/sfprojects/askeet/web"> AllowOverride All Allow from All 目录> <目录"C:/wamp/php/PEAR/data/symfony/web/sf"> AllowOverride All Allow from All 目录>
声明域名
域名使用
必须在本地声明。
如果你运行一个Linux系统,它必须在设置
文件。如果您运行的是Windows XP,则此文件位于C:\WINDOWS\system32\drivers\etc\
目录中。
添加到下面一行:
127.0.0.1 askeet
请注意
您需要具有管理员权限才能执行此操作。
如果您不想设置一个新的主机,您应该添加一个听
声明,以服务您的网站在另一个端口。这将允许您使用本地主机
域。
测试新配置
重新启动Apache,并检查您现在是否可以访问新应用程序:
http://askeet/
请注意
ob娱乐下载Symfony可以使用mod_rewrite
模块删除url的/index.php/部分。如果您不想使用它或如果您的web服务器没有提供等效的设施,您可以删除. htaccess
文件位于web /
目录中。如果您的Apache版本没有使用mod_rewrite
,检查是否安装了mod_rewrite DSO,并在您的httpd . conf
:
AddModule mod_rewrite.c LoadModule rewrite_module modules/mod_rewrite.so
中了解有关智能url的更多信息链接和路由系统章节.
您还应该尝试在开发环境中访问应用程序。输入以下URL:
http://askeet/frontend_dev.php/
web调试工具栏应该显示在右上角,包括小图标证明您的别名科幻/
配置正确。
请注意
如果应用程序在开发环境中工作(http://askeet/frontend_dev.php/
),而不是生产环境(http://askeet/
),然后检查mod_rewrite
配置为http.conf
,并重新启动Apache。跑步也是必要的ob娱乐下载symfony cc
在命令行中清除symfony缓存。ob娱乐下载
IIS
如果您想在Windows环境中的IIS服务器上运行Symfony,则设置略有不同。ob娱乐下载方法中了解如何配置它相关教程.
颠覆
懒人的一个好原则是不要担心破坏现有的代码。源代码版本控制允许我们:
- 工作快
- 如果修改效率不高,则恢复到以前的版本
- 允许多人参与这个项目
- 是否可以访问应用程序的所有日常版本
我们将使用颠覆为了这个目的。我们假设您已经安装了一个subversion服务器或可以访问一个subversion服务器。
类创建一个新的存储库使用
项目:
$ svnadmin create $SVNREP_DIR/askeet $ svn mkdir -m "layout creation" file:///$SVNREP_DIR/askeet/trunk file:///$SVNREP_DIR/askeet/tags file:/// /$SVNREP_DIR/askeet/branches
请注意
给那些刚开始颠覆的人。这两行代码创建了subversion存储库。第二行创建存储库的目录结构。中的所有主要开发代码都将进行版本控制树干
目录中。标签
保存主要代码版本的副本,如版本1、版本2等。分支机构
用于与主要开发代码有很大不同的开发代码。通常的意图是分支机构
最终会被合并回树干
.例如,主树干
开发可以继续进行,而一个未经验证的新功能被详尽地测试和修复分支
.一旦完成分支
代码被合并回树干
以及自代码分支以来所做的任何新更改。SVN提供了强大的工具来协助这一过程。
接下来,您必须执行第一个导入,省略缓存/
而且日志/
临时文件:
$ CD /home/sfprojects/askeet $ rm -rf cache/* $ rm -rf log/* $ SVN import -m "初始导入"。文件:/ / / $ SVNREP_DIR /使用/树干
请注意
给那些刚开始颠覆的人。第四行将askeet文件和目录导入到SVN中树干
存储库。代码现在处于版本控制之下。
我们的代码处于版本控制之下,但是必须签出代码以允许SVN跟踪更改。备份原始应用程序目录,并为我们的工作副本使用SVN版本的签出:
$ CD /home/sfprojects///$SVNREP_DIR/askeet/trunk/ askeet/ $ ls askeet . source $ svn co file:///$SVNREP_DIR/askeet/trunk/ askeet/ $ ls askeet . source
一旦一切就绪,删除我们用于导入的原始目录,因为它不再需要:
$ rm -rf asket .origin
请注意
给那些刚开始颠覆的人。的树干
代码现在在我们的工作目录中使用/
.这是我们将修改和开发的代码。从SVN的角度来看,它被称为我们的“工作副本”。当该代码提交到存储库时,SVN会跟踪该代码的更改。
还有一件事要设置。如果将工作目录提交到存储库,则可能会复制一些不需要的文件,例如位于缓存
而且日志
项目目录。因此,您需要为这个项目向SVN指定一个忽略列表。
$ CD /home/sfprojects/askeet $ SVN propedit SVN:忽略缓存
为SVN配置的缺省文本编辑器将启动。的子目录缓存/
SVN在提交时应该忽略:
*
保存并退出。你就完成了。
重复此步骤日志/
目录:
$ SVN propedit SVN:忽略日志
只输入:
*
现在,确保将缓存和日志目录的写权限设置回适当的级别,以便您的web服务器可以再次写入它们。在命令行:
$ chmod 777 cache $ chmod 777日志
请注意
Windows用户可以使用greatTortoiseSVN客户端来管理他们的subversion存储库。只要记住永远不要使用普通的Windows资源管理器命令删除目录。相反,请使用Alt-Click turtle - delete(或Rename),以便SVN知道您的意图。否则你将无法提交,而是需要使用Tortoise-Update恢复到你的代码的最后一个版本。
如果您想了解更多关于源版本控制的信息,请查看项目创建章节在交响乐书中。ob娱乐下载
请注意
askeet SVN存储库是公共的。你可以通过以下途径访问:
http://svn.askeet.com/
去吧,去看看。
今天的代码已经提交,可以签出了release_day_1
标签:
$ SVN co http://svn.askeet.com/tags/release_day_1/ askeet/
明天见
已经一个小时了!我们谈了很多,但并没有为symfony的早期采用者做什么新的事情。ob娱乐下载但只要看看我们symfony降临日历的第二天会透露什么:ob娱乐下载
- 应用程序将做什么
- 构建数据模型并生成对象-关系映射
- 搭建一个模块
在此期间,如果你想与最新的askeet新闻保持联系,你可以欧宝平台是合法的吗订阅askeet邮件列表或者去专门的论坛.
你明天一定要来!
SVN: $ $ Id
本作品采用创作共用署名-非商业性-禁止派生作品3.0未移植许可协议授权。