第一天:启动该项目
介绍
的ob娱乐下载框架是一个开源项目超过四年,已成为最流行的PHP开发框架由于其伟大的特性和伟大的文档。欧宝官网下载app
这本书描述了创建一个web应用程序与symfony框架,逐步规范的实现。ob娱乐下载是针对初学者想学习symfony,理解它是如何工作的,也了解最好的web开发实践。ob娱乐下载
应用程序的设计可能是另一个博客引擎。但是我们想使用symfony有用的项目ob娱乐下载。我们的目标是证明symfony可以用来开发专业应用程序风格和一些ob娱乐下载努力。
我们将保密项目的内容为另一天我们现在已经有了。然而,让我们给它一个名字:Jobeet。
这本书的每一天都是为了最后一至两个小时,将学习symfony的场合和编码一个真实的网站,从开始到结束。ob娱乐下载每一天,新功能将被添加到应用程序中,我们将利用这一发展向大家介绍新symfony功能以及良好的实践在symfony web开发。ob娱乐下载
这本书是不同的
记得PHP4的早期。啊,拉好时代!PHP是第一个致力于网络和最简单的语言学习。
但随着网络技术的发展速度非常快,web开发人员需要跟上最新的最佳实践和工具。最好的学习方式当然是通过阅读博客、教程和书籍。我们读过很多,他们编写的PHP, Python、Java、Ruby、Perl,其中许多不足当作者开始给片段编码的例子。
你可能是用来阅读的警告:
”一个真正的应用程序中,别忘了添加验证和适当的错误处理。”
或
“安全是留给读者作为练习。”
或
“你当然会需要编写测试。”
什么?这些都是严重的业务。他们也许是最重要的部分的代码。作为一个读者,你独自离开。没有考虑这些问题,例子不太有用。你不能使用它们作为一个很好的起点。那是糟糕的!为什么?因为安全、验证、错误处理和测试,只是仅举几例,注意正确的代码。
在这本书里,你将永远不会看到语句类似我们将编写测试,错误处理,验证代码,并确保我们开发安全的应用程序。因为symfony是关于代码,ob娱乐下载但也对最佳实践,以及如何为企业开发专业应用程序。我们将能够负担得起这种奢侈,因为symfony提供了所需的所有工具代码这些方面容易没有写太多ob娱乐下载的代码。
验证、错误处理、安全性和测试是一等公民在symfony中,所以我们不会花太长时间去解释。ob娱乐下载这只是原因之一,很多使用一个“现实生活”项目的框架。
这本书中的所有代码你会阅读代码,您可以使用一个真正的项目。我们鼓励你复制粘贴的代码片段或偷取整块。
今天什么?
我们不会编写PHP代码。但即使没有写一行代码,你会理解使用像symfony框架的好处,只要引导一个新的项目。ob娱乐下载
这一天的目标是设置应用程序的开发环境,并显示一个页面在一个web浏览器。这包括安装symfony,创建应用程序和web服务器配置。ob娱乐下载
因为这本书将主要集中在symfony框架,我们将假设您已经有了一个坚实的PHob娱乐下载P 5和面向对象编程的知识。
先决条件
在安装symfony之前,你需要检查ob娱乐下载你的电脑都安装并正确配置。花时间认真阅读这一天和遵循的所有步骤需要检查你的配置,因为它可能进一步节省你的一天。
第三方软件
首先,你需要检查你的电脑有一个web开发友好的工作环境。至少,你需要一个web服务器(例如Apache),数据库引擎(MySQL、PostgreSQL、SQLite、或任何PDO兼容数据库引擎),PHP 5.2.4或更高版本。
命令行接口
symfob娱乐下载ony框架来与一个命令行工具,自动绑定很多工作给你。如果你是一个类unix操作系统的用户,你会感觉得心应手。如果你运行Windows系统,它也能工作的很好,但你将只需要输入一些命令cmd
提示。
请注意
Unix shell命令在Windows环境中可以派上用场。如果你想使用工具焦油
,gzip
或grep
在Windows上,您可以安装Cygwin。冒险也喜欢微软的尝试Windows服务Unix。
PHP配置
当PHP配置可以改变从一个系统转移到另一个,甚至在不同的Linux发行版本,您需要检查您的PHP配置满足symfony的最低要求。ob娱乐下载
首先,确保您已经安装了PHP 5.2.4至少使用phpinfo ()
内置函数或通过运行php - v
在命令行上。请注意,在一些配置,您可能安装了两个不同的PHP版本:一个用于命令行,另一个用于网络。
然后,下载symfony的配置检查脚本ob娱乐下载在以下网址:
http://sf-to.org/1.4/check.php
保存您当前的web根目录下的脚本的地方。从命令行启动配置检查脚本:
php check_configuration.php美元
如果有问题与PHP配置,该命令的输出会给你提示修复以及如何解决它。
你也应该从浏览器执行检查和修复它可能发现的问题。这是因为PHP可以有一个不同的php . ini
配置文件为这两个环境中,有不同的设置。
请注意
别忘了把文件从您的web根目录。
ob娱乐下载Symfony的安装
初始化项目目录
在安装symfony之前,您首先需要ob娱乐下载创建一个目录,将主机Jobeet相关的所有文件:
mkdir - p /home/sfprojects/jobeet cd /home/sfprojects/jobeet美元
或在Windows上:
c: \ > mkdir c: \开发\ sfprojects \ jobeet c: \ > cd c: \开发\ sfprojects \ jobeet
请注意
Windows用户建议运行symfony和设置他们的新项目的路径不ob娱乐下载包含空格。避免使用文档和设置
目录,包括在任何地方我的文档
。
提示
如果您创建web根目录下的symfoob娱乐下载ny项目目录,您不需要配置您的web服务器。当然,对于生产环境,我们强烈建议您配置您的web服务器的web服务器配置部分。
选择Symfony的版本ob娱乐下载
现在,您需要安装symfony。ob娱乐下载因为symfoob娱乐下载ny框架有几个稳定的版本中,您需要选择一个你想安装通过阅读安装页面在symfonob娱乐下载y的网站。
这本书假设您希望安装symfony 1.3或1.4 symfony。ob娱乐下载
选择安装Symfony的位ob娱乐下载置
你可以在你的机器上安装symfoob娱乐下载ny全球,或者嵌入到你的每一个项目。后者是推荐的一个项目将完全独立于彼此。升级你的本地安装symfony意外不会打破你的一些项目。ob娱乐下载这意味着你将能够对不同版本的symfony项目,和升级一次一个你认为合适的。ob娱乐下载
作为一项最佳实践,很多人安装symfony框架文件ob娱乐下载lib /供应商
项目目录。首先,创建这个目录:
mkdir - p lib /供应商美元
安装Symfonyob娱乐下载
安装从存档
安装symfony的最简单方法是下载的档案版本symfob娱乐下载ony的你选择的网站。去你刚刚选择的版本的安装页面,symfonyob娱乐下载1.4例如。
在“源下载”一节,你会发现存档. tgz
或在. zip
格式。下载档案,把它在刚创建的lib /供应商/
目录,un-archive,重命名目录ob娱乐下载
:
cd lib /供应商美元焦油zxpf symfonyob娱乐下载-1.4.0。tgz mv syob娱乐下载mfony-1.4.0 symfony rm symfony-1.4.0.tgz美元
在Windows下,解开压缩文件可以通过使用Windows资源管理器。重命名目录之后ob娱乐下载
,应该有一个目录结构相似c: \开发\ sfprojects \ jobeet \ lib \供ob娱乐下载应商\ symfony
。
安装从Subversion(推荐)
如果你使用Subversion,更好的使用svn:外部
财产symfony嵌入到您的项目中ob娱乐下载lib /供应商/
目录:
svn pe svn:美元/ lib /外部供应商
请注意
导入您的项目在一个新的Subversion存储库在解释这一天的结束。
如果一切顺利,这个命令将运行您最喜欢的编辑器来给你配置Subversion外部来源的机会。
提示
在Windows上,您可以使用工具TortoiseSVN做的一切,而不需要使用控制台。
如果你是保守的,把你的项目到一个特定的版本(subversion标记):
ob娱乐下载symfony http://svn.symfony-project.com/tags/RELEASE_1_4_0
每当一个新版本出来(就像在symfony宣布ob娱乐下载博客),您将需要修改URL到新版本。
如果你想去高新技术路线,使用1.4分支:
ob娱乐下载symfony http://svn.symfony-project.com/branches/1.4/
使用分支项目使你受益于当你运行一个自动bug修复svn更新
。
安装验证
现在安装symfoob娱乐下载ny,检查所有正在使用symfony命令行显示symfony版本(注意V
):
$ cd . . / . .美元php lib /供应商/ sob娱乐下载ymfony / data / bin / symfony - v
在Windows上:
c: \ > cd . . \ . .c: \ php自由> \ bin \ ob娱乐下载\供应商\ symfony \数据symfony - v
提示
如果你是好奇这个命令行工具可以帮你做什么,类型ob娱乐下载
列出可用的选项和任务:
美元php lib /供应商/ sob娱乐下载ymfony / data / bin / symfony
在Windows上:
c: \ php自由> \供应商\ syob娱乐下载mfony \ data \ bin \ symfony
symfob娱乐下载ony命令行是开发人员的最好的朋友。它提供了很多工具,提高生产率等日常活动清理缓存,生成代码,等等。
项目设置
在syob娱乐下载mfony中,应用程序重新集结成共享相同的数据模型项目。对于大多数项目,您将有两个不同的应用程序:一个前端和后端。
项目创建
从sfprojects / jobeet
目录,运行symfonyob娱乐下载生成:项目
任务来创建symfony项目:ob娱乐下载
美元php lib /供应商/ sob娱乐下载ymfony / data / bin / symfony生成:项目jobeet——orm =推动
在Windows上:
c: \ php自由> \ bin \ ob娱乐下载\供应商\ symfony \数据symfony生成:项目jobeet——orm =推动
的生成:项目
任务生成默认的目录结构和文件所需symfony项目:ob娱乐下载
目录 | 描述 |
---|---|
应用程序/ |
主机所有项目的应用程序 |
缓存/ |
文件缓存框架 |
配置/ |
项目配置文件 |
lib / |
项目和类库 |
日志/ |
日志文件的框架 |
插件/ |
安装的插件 |
测试/ |
单元测试和功能测试文件 |
web / |
web根目录(见下文) |
请注意
为什么symfonob娱乐下载y生成很多文件?使用一个完整的框架的主要好处之一是标准化的发展。由于symfony的ob娱乐下载默认文件和目录结构,任何开发人员与一些symfony的知识可以在任何symfony项目的维护。在几分钟内,他将能够深入代码,修复bug,并添加新特性。
的生成:项目
任务也创建了一个ob娱乐下载
快捷方式在项目根目录缩短字符数你要写一个任务运行时。
所以,从现在开始,而不是使用完全限定路径symfony项目,您可以使用ob娱乐下载ob娱乐下载
快捷方式。
应用程序创建
现在,通过运行创建前端应用程序生成:应用程序
任务:
美元php ob娱乐下载symfony生成:应用程序前端
提示
因为symfony快捷方ob娱乐下载式文件是可执行的,Unix用户可以替换出现的所有的php ob娱乐下载symfony
“通过”/ ob娱乐下载symfony。
“从现在开始。
在Windows上你可以复制的ob娱乐下载symfony.bat
文件到您的项目并使用的ob娱乐下载
“而不是”php ob娱乐下载symfony
”:
c: \ lib \ >副本供应商\ syob娱乐下载mfony \ data \ bin \ symfony。蝙蝠。
基于给定的应用程序名称作为论点,生成:应用程序
任务创建默认的目录结构下所需的应用程序应用程序/前端/
目录:
目录 | 描述 |
---|---|
配置/ |
应用程序配置文件 |
lib / |
应用程序库和类 |
模块/ |
应用程序代码(MVC) |
模板/ |
全球模板文件 |
目录结构的权利
试图访问您新创建的项目之前,您需要设置的写权限缓存/
和日志/
目录到适当的水平,这样您的web服务器可以写:
chmod 777美元/日志/缓存
侧边栏
建议使用SCM工具的人
ob娱乐下载symfony只写两个目录的一个symfony项目,缓存/
和日志/
。这些目录的内容应该被你忽略SCM(通过编辑svn:忽略
例如房地产如果使用Subversion)。
Web服务器配置:丑陋的方式
如果您已经创建了项目目录您的web服务器的web根目录下的某个地方,你可以在web浏览器中访问项目。
当然,由于没有配置,快速建立,但尝试访问配置/ databases.yml
文件在您的浏览器来理解这种懒散的态度的不良后果。如果用户知道你的网站是发达与symfony,他将获得大量的敏感文件。ob娱乐下载
不要使用这个设置在生产服务器,阅读下一节,了解如何正确地配置您的web服务器。
Web服务器配置:安全的方法
良好的web实践是将web根目录下的文件需要通过web浏览器访问,样式表、javascript和图像。默认情况下,我们建议下存储这些文件web /
symfony项目的子目录。ob娱乐下载
如果你看一看这个目录,你会发现一些对网络资产的子目录(css /
和图像/
)和两个前端控制器文件。前端控制器是唯一的PHP文件,需要在web根目录下。所有其他PHP文件从浏览器可以隐藏,这是一个好主意就安全而言。
Web服务器配置
现在是时候改变你的Apache配置,使新项目访问世界。
找到并打开httpd . conf
最后配置文件,添加以下配置:
#确保只有这条线在您的配置NameVirtualHost 127.0.0.1:8080 #这是配置为您的项目听127.0.0.1:8080 < VirtualHost 127.0.0.1:8080 > DocumentRoot“/ home / sfprojects / jobeet /网络”DirectoryIndex指数。php <目录“/ home / sfprojects / jobeet /网络”> AllowOverride所有允许从< /目录>别名/科幻/home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf <目录“/ homeob娱乐下载 / sfprojects / jobeet / lib /供应商/ symfony /数据/ web /科幻”> AllowOverride所有允许从< /目录> < /虚拟主机>
请注意
的/科幻
别名可以让您访问图像和javascript文件需要正确地显示默认symfony页面和web调试工具栏| web调试工具栏。ob娱乐下载
在Windows上,您需要更换别名
与类似的行:
别名/科幻“c: \开发\ sfprojects \ jobeet \ lib \供应商\ sob娱乐下载ymfony \ data \ web \科幻”
和/home/sfprojects/jobeet/web
应该替换为:
c: \开发\ sfprojects \ jobeet \ web
这种配置使Apache听端口8080年
在您的机器上,所以,重新启动apache后,网站将可访问以下网址:
http:// ~ ~ localhost: 8080 /
你可以改变8080年
任何数量,但支持数字大于1024年
因为他们不需要管理员权限。
侧边栏
配置专用的域名
如果您的机器上的管理员,最好设置虚拟主机而不是添加一个新的端口每次你启动一个新项目。而不是选择一个端口,并添加一个听
声明中,选择一个域名(例如真正的域名.localhost
最后补充道)和添加一个ServerName
声明:
#这是配置为您的项目< VirtualHost 127.0.0.1:80 > ServerName www.jobeet.com.localhost < !——和以前相同的配置——> < /虚拟主机>
域名www.jobeet.com.localhost
中使用Apache配置必须在本地声明。如果你运行的Linux系统,它必须做的设置
文件。如果您运行Windows XP,这个文件位于C:\WINDOWS\system32\drivers\etc\
目录中。
添加以下行:
127.0.0.1 www.jobeet.com.localhost
测试新的配置
重新启动Apache,检查,你现在可以访问打开一个浏览器并输入的新应用程序http://localhost: 8080 / index . php
,或http://www.jobeet.com.localhost/index.php/
取决于你选择的Apache配置。
提示
如果你有Apachemod_rewrite
模块安装,您可以删除index . php /
URL的一部分。这是可能由于重写规则的配置web / . htaccess
文件。
你也应该尝试访问该应用程序在开发环境中(有关更多信息,请参见下一节关于环境)。输入以下URL:
http://www.jobeet.com.localhost/frontend_dev.php/
web调试工具栏应该显示在右上角,包括小图标证明你三藩市/
别名配置是正确的。
请注意
设置略有不同,如果你想IIS服务器上运行symfony的Windows环境。ob娱乐下载找到如何配置它相关教程。
的环境
如果你看一看web /
目录,你会发现两个PHP文件:index . php
和frontend_dev.php
。这些文件被称为前端控制器;所有请求应用程序通过。但是为什么我们对每个应用程序有两个前端控制器吗?
两个文件指向相同的应用程序,但对于不同环境。当你开发一个应用程序中,除非你直接在生产服务器上开发,你需要几个环境:
的开发环境:这是使用的环境web开发人员当他们工作在应用程序添加新功能,修复bug,……
的测试环境:这个环境是用于自动测试应用程序。
的登台环境:使用这个环境客户测试应用程序和报告错误或缺失的功能。
的生产环境:这是环境最终用户相互作用。
是什么让一个独特的环境?在开发环境中为例,应用程序需要日志的所有细节要求减轻调试,但缓存系统必须禁用所有更改代码必须被考虑。因此,必须优化了开发人员的开发环境。最好的例子当然是当发生异常。帮助开发人员调试问题更快,symfony显示异常的信息关于当前请求进入浏览器:ob娱乐下载
但是在生产环境中,缓存层必须被激活,当然,应用程序必须显示定制的错误消息,而不是原始的例外。因此,必须优化生产环境的性能和用户体验。
提示
如果你打开前端控制器文件,你会发现他们的内容是一样的,除了环境设置:
/ /网络/ index . php< ? phprequire_once(目录名(__FILE__)。“/ . . / config / ProjectConfiguration.class.php”);美元配置= ProjectConfiguration::getApplicationConfiguration(“前端”,“刺激”,假);sfContext::createInstance除外(美元配置)- >调度();
web调试工具栏的使用环境也是一个很好的例子。它存在在所有页面在开发环境中,你能获得大量的信息通过点击不同的标签:当前应用程序配置,当前请求的日志,在数据库引擎执行的SQL语句,内存信息和时间信息。
颠覆
这是一个很好的练习使用源代码版本控制在开发一个web应用程序。允许我们使用源代码版本控制:
- 工作充满信心
- 恢复到以前的版本如果改变破坏了一些东西
- 允许一个以上的人对项目有效地工作
- 获得所有的连续版本的应用程序
在本节中,我们将描述如何使用颠覆symfoob娱乐下载ny。如果你使用另一个源代码控制工具,它必须很容易适应我们描述的颠覆。
我们假设您已经使用Subversion服务器,可以通过HTTP访问。
提示
如果你没有Subversion服务器在处理,您可以创建一个存储库上免费谷歌代码或者只是类型“自由subversion存储库”在谷歌有更多的选项。
首先,创建一个存储库的jobeet
项目存储库服务器上:
美元svnadmin创建/道路/ / jobeet /存储库
在您的机器上,创建基本的目录结构:
美元svn mkdir - m”创建默认目录结构”http://svn.example.com/jobeet/trunk http://svn.example.com/jobeet/tags http://svn.example.com/jobeet/branches
和检出空箱/
目录:
cd /home/sfprojects/jobeet svn co美元http://svn.example.com/jobeet/trunk/。
然后,删除的内容缓存/
和日志/
目录,因为我们不想把它们放进存储库。
美元rm射频缓存日志/ * / *
现在,一定要设置缓存和日志目录的写权限到适当的水平,这样您的web服务器可以写:
chmod 777美元/日志/缓存
现在,进口的所有文件和目录:
美元svn添加*
我们永远不会想提交文件位于缓存/
和日志/
目录,您需要指定一个忽略列表:
美元svn propedit svn:忽略缓存
的默认文本编辑器配置SVN应该发射。Subversion必须忽略这个目录的内容:
*
保存并退出。你就完成了。
重复的过程日志/
目录:
美元svn propedit svn:忽略日志
并输入:
*
最后,提交这些更改存储库:
svn美元进口- m”最初的进口”。http://svn.example.com/jobeet/trunk
提示
Windows用户可以使用TortoiseSVN客户端管理他们的subversion存储库。
最终的想法
好了,时间已经结束!即使我们尚未开始谈论symfony,我们设置一个坚实的开发环境中,我们已经讨论了web开发最ob娱乐下载佳实践,我们准备开始编码。
明天,我们将显示应用程序将做什么和谈论Jobeet的需求,我们需要实现。
这项工作在Creative Commons许可Attribution-Share都3.0 Unported许可执照。