《Symfony1.4_项目实战》项目介绍-17页精选文档.doc
-
资源ID:33867156
资源大小:220KB
全文页数:17页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
《Symfony1.4_项目实战》项目介绍-17页精选文档.doc
如有侵权,请联系网站删除,仅供学习与交流Symfony1.4_项目实战项目介绍【精品文档】第 17 页简介:Symfony框架是一个已经超过四年多的开源项目,并已成为最流行的PHP框架之一,这要得益于其强大的功能和良好的文档。本教程描述用symfony框架创建一个WEB应用。一步一步从规范到实施。它定位于学习symfony的新手,以及理解它如何工作,还有学习关于最佳的WEB开发实践。本来是打算做一个博客程序的。但我们要把symfony用在一个有用处的项目上。目的是要表明symfony可以轻松的开发专业应用,还有它的风格。我们给项目取个名字:Jobeet。学习本教程每一天会花1到2个小时,通过动手编写代码从开始到结束做一个实际的网站。每天都会有新鲜东西增加到应用,我们还会利用本教程中的这次的开发来向你介绍symfony的功能以及symfony WEB开发的良好实践。今天做什么:我们不会写PHP代码,甚至不会写任何一行代码。今天你会理解到使用框架的好处,比如symfony。今天仅仅是引导一个新项目。今天的目标是设置开发环境,还有在浏览器中显示应用的一个页面。包括安装symfony,创建一个应用,还有配置WEB服务器。本教程主要讲symfony框架,我们假定你已经有了扎实的PHP5和OOP编程知识。准备工作:安装symfony之前,你需要检查你的电脑一切都安装好了,还有都配置好了。花时间认真阅读今天教程所讲的内容,还有跟随所有安装需要检查你的配置,因为可以为你的下一天节省时间。第三方软件首先,你需要检查你的电脑有一个友好的WEB开发环境。至少,你需要一个WEB服务器(例如Apache),一个数据库引擎(MySQL、PostgreSQL、SQLite、或者一些兼容PDO的数据库引擎),还有PHP 5.2.4或者更高。命令行接口Symfony框架捆绑了一个命令行工具,自动为你做许多工作。如果你是一位类Unix OS用户,你会感觉到家了。如果你运行一个Windows系统,命令行同样工作的很好,你可以在命令行的提示下输入各种命令。-Unix shell命令可以在一个Windows环境下派上用场。如果你想在Window上用比如 tar、gzip、grep 这样的工具,你可以安装 Cygwin。也可以大胆的尝试 Microsoft's Windows Services for Unix。-PHP配置每种操作系统的PHP配置可能都有所不同,甚至不同的Linux发行版之间,你需要检查你的PHP配置满足PHP最低要求。首先,确保你运行 phpinfo() 内建函数或在命令行运行 php -v 查看版本号,满足PHP 5.2.4最低安装要求。在一些配置上要注意,你可能安装了两个不同的PHP版本:一个对于命令行,和另外一个对WEB。然后,在这个URL网址下载symfony配置检查器脚本:http:/sf-to.org/1.4/check.php保存该脚本在你当前WEB根目录下任意地方。从命令行运行配置检查器脚本:$ php check_configuration.php如果你的PHP配置有问题,命令行会提示输出文字提示你要修改什么东西,还有要怎么修改。你也可以从一个浏览器中运行检查器,并能看到如何解决问题。因为PHP对于两种环境具有不同的 php.ini 配置,使用不同的设置。-不要忘记之后从你的WEB根目录中移除这个文件。-Symfony的安装初始化项目目录在安装symfony之前,你首先需要创建一个目录,保存所有Jobeet有关的文件$ mkdir -p /home/sfprojects/jobeet $ cd /home/sfprojects/jobeet 或者在Windows平台上:c:> mkdir c:developmentsfprojectsjobeet cd c:developmentsfprojectjobeet-建议Windows平台用户避免在诸如 Documents and Settings 目录和 My Documents 等带有空格的路径下使用symfony和搭建项目。-如果你symfony项目目录创建在WEB根目录下,你不需要配置你的WEB服务器。当然,对于生产环境,我们强烈建议你们配置你的web服务器这在web服务的配置环节部分已经做了解释。-选择Symfony的版本现在,你需要安装symfony。symfony有几个稳定的版本,你需要先到symfony网站上仔细的阅读官方Installation(安装) 页面,然后你就知道如何选择一个你所需要安装的版本。本教程假定你安装的是 symfony 1.3 或者 symfony 1.4 。选择Symfony的安装位置您可以安装symfony的在您的计算机上的任何地方,或将其嵌入到您的某个项目。但后者是我们推荐的,因为会与其他项目完全彼此独立。升级您的本地安装的symfony不会导致你的项目发生意外。这意味着你将能够有不同的版本symfony的项目,你可以升级你认为合适的一个。作为一个最佳实践,许多人安装symfony框架文件在项目的 lib/vendor 目录中。那么我们先创建这个目录:$ mkdir -p lib/vendor安装Symfony从一个归档安装最简单的方式安装symfony是从symfony网站上选择你需要的版本下载归档。到官方 Installation 页面下载你选择的版本,例如symfony 1.4 。在 “Source Download” 那一栏,你会看到 .tgz 或者 .zip 格式的归档。然后并下载下来,放在新创建的的lib/vendor/ 目录,解压,并重命名目录为 symfony :$ cd lib/vendor$ tar zxpf symfony-1.4.0.taz$ mv symfony-1.4.0 symfony$ rm symfony-1.4.0.tgz在Windows平台,用Windows资源管理器解压zip文件。你命名目录为 symfony 之后,目录结构则应该差不多像这样c:devsfprojectjobeetlibvendorsymfony 。从Subversion安装(建议)如果你使用Subversion,用其 svn:externals 属性甚至能更好的用于将symfony嵌入到你项目的 lib/vendor/ 目录:$ svn pe svn:externals lib/vendor/-在一个新的子版本库中导入你的项目,这会在本章的最后讲解。-如果一切顺利,此命令将运行你目前编辑器给你的机会来配置外部的Subversion源。-在Windows平台上,你能用像 TortoiseSVN 这样的工具做一切事情而不需要用控制台。-如果你是保守的,你可以引导你的项目到一个特定的版本(一个subversion标签):symfony http:/svn.symfony-每当一个新版本推出时(会在官方symfony博客上宣布),你将需要更改URL地址到新的版本。如果你要时刻保持最新版本,则使用 1.4 branch:symfony http:/svn.symfony-使用branch的好处是,无论何时你只要运行一个 svn update,则会自动修复symfony框架本身最新出现的BUG。验证安装现在symfony安装完了,那么我检查一下是否好了,在symfony命令行里输入下面的命令(注意有大写的V),如果看到结果显示出了symfony版本,则表示一切都是正常的:$ cd ./. $ php lib/vendor/symfony/data/bin/symfony -V在Windows平台:c:> cd . c:> php libvendorsymfonydatabinsymfony V-如果你好奇命令行工具能为你做什么,直接打“symfony”字符,会列出可以用的选项和命令:$ php lib/vendor/symfony/data/bin/symfony在Windows平台:c:> php libvendorsymfonydatabinsymfonysymfony命令行是开发者最好的朋友。它提供了许多的实用工具,每一天的日常活动 ,如清除缓存,生成代码,并更加提高您的工作效率。-项目的设置在symfony里面,应用 共享相同的数据模型重组进 项目,你将会有两个不同的应用:一个前台和一个后台。项目的创建从 sfprojects/jobeet 目录,运行symfony的 generate:project 命令来实际创建symfony项目:$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet在Windows平台:c:> php libvendorsymfonydatabinsymfony generate:project jobeetgenerate:project 命令生成对于一个symfony项目所需要的默认文件、目录结构:目录描述apps/项目中包含的所有应用cache/由框架产生的缓存文件config项目配置文件lib/项目类库log/框架日志文件plugins/安装插件所在的目录test/单元和功能测试文件web/WEB根目录(见下文)-为什么symfony生成如此多的文件?使用一个full-stack框架主要好处之一是规范了你的开发。得益于symfony的默认文件和目录结构,任何有一些symfony知识的开发者都能接手维护任何symfony项目。在几分钟内,他将能够深入进代码,修改BUG,并添加新功能。-generate:project命令还可以创建一个symfony快捷方式在项目根目录中,来缩短你运行一个命令时所拼写字符的数目。所以,从现在开始,你可以用symfony快捷方式,而不是使用全路径的symfony程序。应用的创建现在,通过运行 generate:app 命令创建前台应用:$ php symfony generate:app frontend-因为symfony快捷方式文件是可执行的,从现在开始Unix平台用户可以把所有有关 'php symfony' 替换为'./symfony'。在Windows平台,你可以拷贝'symfony.bat'文件到你的项目并使用'symfony'而不是'php symfony':c:> copy libvendorsymfonydatabinsymfony.bat-基于应用的名称作为一个参数,generate:app命令会在 apps/frontend 目录下创建默认所需的目录结构:目录描述config/应用的配置文件lib/应用的类库modules/应用的代码(MVC)templates/全局的模板文件安全性默认情况下,generate:app 命令会确保我们的应用避免网络上发现的最普遍的两个漏洞。确切的说,symfony会自动开启我们的保安措施。为了防止XSS攻击,输出转义会被开启;还有防止CSRF攻击,会生成一个随机的CSRF密钥。当然,你可以调整这些设置,通过下列选项:· -escaping-strategy:激活或关闭输出转义· -csrf-secret:在表单中激活SESSION令牌如果你不知道关于 XSS(百度百科、英文维基) 或者 CSRF(百度百科、英文维基),花时间学习更多关于安全漏洞。目录结构的权限在访问你新创建的项目之前,你需要把 cache/ 和 log/ 目录适当的设置成适当的程度,以便WEB服务器能够写入:$ chmod 777 cache/ log/对SCM工具使用者的提示symfony一直只会在 cache/ 和 log/ 这两个目录写入。这些目录的内容应该被你的SCM忽略(假如你使用subversion,则编辑 svn:ignore 属性)。WEB服务器配置:丑陋的方式如果你在你的WEB服务器的WEB根目录下某个地方创建了项目目录,你已经能在WEB浏览器中访问项目。当然,作为没有经过任何配置的,建起来很快,但在你的浏览器中尝试访问 config/databases.yml 文件,就会了解这样一个懒惰的态度的不良后果。如果用户知道你的网站是用symfony开发的,他可能会访问到一些敏感文件。永远不要在产品服务器上使用这种配置,并阅读下一节学习怎样正确的配置你的WEB服务器。简介Symfony框架是一个已经超过四年多的开源项目,并已成为最流行的PHP框架之一,这要得益于其强大的功能和良好的文档。本教程描述用symfony框架创建一个WEB应用。一步一步从规范到实施。它定位于学习symfony的新手,以及理解它如何工作,还有学习关于最佳的WEB开发实践。本来是打算做一个博客程序的。但我们要把symfony用在一个有用处的项目上。目的是要表明symfony可以轻松的开发专业应用,还有它的风格。我们给项目取个名字:Jobeet。学习本教程每一天会花1到2个小时,通过动手编写代码从开始到结束做一个实际的网站。每天都会有新鲜东西增加到应用,我们还会利用本教程中的这次的开发来向你介绍symfony的功能以及symfony WEB开发的良好实践。今天做什么我们不会写PHP代码,甚至不会写任何一行代码。今天你会理解到使用框架的好处,比如symfony。今天仅仅是引导一个新项目。今天的目标是设置开发环境,还有在浏览器中显示应用的一个页面。包括安装symfony,创建一个应用,还有配置WEB服务器。本教程主要讲symfony框架,我们假定你已经有了扎实的PHP5和OOP编程知识。准备工作安装symfony之前,你需要检查你的电脑一切都安装好了,还有都配置好了。花时间认真阅读今天教程所讲的内容,还有跟随所有安装需要检查你的配置,因为可以为你的下一天节省时间。第三方软件首先,你需要检查你的电脑有一个友好的WEB开发环境。至少,你需要一个WEB服务器(例如Apache),一个数据库引擎(MySQL、PostgreSQL、SQLite、或者一些兼容PDO的数据库引擎),还有PHP 5.2.4或者更高。命令行接口Symfony框架捆绑了一个命令行工具,自动为你做许多工作。如果你是一位类Unix OS用户,你会感觉到家了。如果你运行一个Windows系统,命令行同样工作的很好,你可以在命令行的提示下输入各种命令。Unix shell命令可以在一个Windows环境下派上用场。如果你想在Window上用比如 tar、gzip、grep 这样的工具,你可以安装 Cygwin。也可以大胆的尝试 Microsoft's Windows Services for Unix。PHP配置每种操作系统的PHP配置可能都有所不同,甚至不同的Linux发行版之间,你需要检查你的PHP配置满足PHP最低要求。首先,确保你运行 phpinfo() 内建函数或在命令行运行 php -v 查看版本号,满足PHP 5.2.4最低安装要求。在一些配置上要注意,你可能安装了两个不同的PHP版本:一个对于命令行,和另外一个对WEB。然后,在这个URL网址下载symfony配置检查器脚本:http:/sf-to.org/1.4/check.php保存该脚本在你当前WEB根目录下任意地方。从命令行运行配置检查器脚本:$ php check_configuration.php如果你的PHP配置有问题,命令行会提示输出文字提示你要修改什么东西,还有要怎么修改。你也可以从一个浏览器中运行检查器,并能看到如何解决问题。因为PHP对于两种环境具有不同的 php.ini 配置,使用不同的设置。不要忘记之后从你的WEB根目录中移除这个文件。Symfony的安装初始化项目目录在安装symfony之前,你首先需要创建一个目录,保存所有Jobeet有关的文件$ mkdir -p /home/sfprojects/jobeet $ cd /home/sfprojects/jobeet 或者在Windows平台上:c:> mkdir c:developmentsfprojectsjobeet cd c:developmentsfprojectjobeet建议Windows平台用户避免在诸如 Documents and Settings 目录和 My Documents 等带有空格的路径下使用symfony和搭建项目。如果你symfony项目目录创建在WEB根目录下,你不需要配置你的WEB服务器。当然,对于生产环境,我们强烈建议你们配置你的web服务器这在web服务的配置环节部分已经做了解释。选择Symfony的版本现在,你需要安装symfony。symfony有几个稳定的版本,你需要先到symfony网站上仔细的阅读官方Installation(安装) 页面,然后你就知道如何选择一个你所需要安装的版本。本教程假定你安装的是 symfony 1.3 或者 symfony 1.4 。选择Symfony的安装位置您可以安装symfony的在您的计算机上的任何地方,或将其嵌入到您的某个项目。但后者是我们推荐的,因为会与其他项目完全彼此独立。升级您的本地安装的symfony不会导致你的项目发生意外。这意味着你将能够有不同的版本symfony的项目,你可以升级你认为合适的一个。作为一个最佳实践,许多人安装symfony框架文件在项目的 lib/vendor 目录中。那么我们先创建这个目录:$ mkdir -p lib/vendor安装Symfony从一个归档安装最简单的方式安装symfony是从symfony网站上选择你需要的版本下载归档。到官方 Installation 页面下载你选择的版本,例如symfony 1.4 。在 “Source Download” 那一栏,你会看到 .tgz 或者 .zip 格式的归档。然后并下载下来,放在新创建的的lib/vendor/ 目录,解压,并重命名目录为 symfony :$ cd lib/vendor$ tar zxpf symfony-1.4.0.taz$ mv symfony-1.4.0 symfony$ rm symfony-1.4.0.tgz在Windows平台,用Windows资源管理器解压zip文件。你命名目录为 symfony 之后,目录结构则应该差不多像这样c:devsfprojectjobeetlibvendorsymfony 。从Subversion安装(建议)如果你使用Subversion,用其 svn:externals 属性甚至能更好的用于将symfony嵌入到你项目的 lib/vendor/ 目录:$ svn pe svn:externals lib/vendor/在一个新的子版本库中导入你的项目,这会在本章的最后讲解。如果一切顺利,此命令将运行你目前编辑器给你的机会来配置外部的Subversion源。在Windows平台上,你能用像 TortoiseSVN 这样的工具做一切事情而不需要用控制台。如果你是保守的,你可以引导你的项目到一个特定的版本(一个subversion标签):symfony http:/svn.symfony-每当一个新版本推出时(会在官方symfony博客上宣布),你将需要更改URL地址到新的版本。如果你要时刻保持最新版本,则使用 1.4 branch:symfony http:/svn.symfony-使用branch的好处是,无论何时你只要运行一个 svn update,则会自动修复symfony框架本身最新出现的BUG。验证安装现在symfony安装完了,那么我检查一下是否好了,在symfony命令行里输入下面的命令(注意有大写的V),如果看到结果显示出了symfony版本,则表示一切都是正常的:$ cd ./. $ php lib/vendor/symfony/data/bin/symfony -V在Windows平台:c:> cd . c:> php libvendorsymfonydatabinsymfony -V如果你好奇命令行工具能为你做什么,直接打“symfony”字符,会列出可以用的选项和命令:$ php lib/vendor/symfony/data/bin/symfony在Windows平台:c:> php libvendorsymfonydatabinsymfonysymfony命令行是开发者最好的朋友。它提供了许多的实用工具,每一天的日常活动 ,如清除缓存,生成代码,并更加提高您的工作效率。项目的设置在symfony里面,应用 共享相同的数据模型重组进 项目,你将会有两个不同的应用:一个前台和一个后台。项目的创建从 sfprojects/jobeet 目录,运行symfony的 generate:project 命令来实际创建symfony项目:$ php lib/vendor/symfony/data/bin/symfony generate:project jobeet在Windows平台:c:> php libvendorsymfonydatabinsymfony generate:project jobeetgenerate:project 命令生成对于一个symfony项目所需要的默认文件、目录结构:目录描述apps/项目中包含的所有应用cache/由框架产生的缓存文件config项目配置文件lib/项目类库log/框架日志文件plugins/安装插件所在的目录test/单元和功能测试文件web/WEB根目录(见下文)为什么symfony生成如此多的文件?使用一个full-stack框架主要好处之一是规范了你的开发。得益于symfony的默认文件和目录结构,任何有一些symfony知识的开发者都能接手维护任何symfony项目。在几分钟内,他将能够深入进代码,修改BUG,并添加新功能。generate:project命令还可以创建一个symfony快捷方式在项目根目录中,来缩短你运行一个命令时所拼写字符的数目。所以,从现在开始,你可以用symfony快捷方式,而不是使用全路径的symfony程序。应用的创建现在,通过运行 generate:app 命令创建前台应用:$ php symfony generate:app frontend因为symfony快捷方式文件是可执行的,从现在开始Unix平台用户可以把所有有关 'php symfony' 替换为'./symfony'。在Windows平台,你可以拷贝'symfony.bat'文件到你的项目并使用'symfony'而不是'php symfony':c:> copy libvendorsymfonydatabinsymfony.bat基于应用的名称作为一个参数,generate:app命令会在 apps/frontend 目录下创建默认所需的目录结构:目录描述config/应用的配置文件lib/应用的类库modules/应用的代码(MVC)templates/全局的模板文件安全性默认情况下,generate:app 命令会确保我们的应用避免网络上发现的最普遍的两个漏洞。确切的说,symfony会自动开启我们的保安措施。为了防止XSS攻击,输出转义会被开启;还有防止CSRF攻击,会生成一个随机的CSRF密钥。当然,你可以调整这些设置,通过下列选项:· -escaping-strategy:激活或关闭输出转义· -csrf-secret:在表单中激活SESSION令牌如果你不知道关于 XSS(百度百科、英文维基) 或者 CSRF(百度百科、英文维基),花时间学习更多关于安全漏洞。目录结构的权限在访问你新创建的项目之前,你需要把 cache/ 和 log/ 目录适当的设置成适当的程度,以便WEB服务器能够写入:$ chmod 777 cache/ log/对SCM工具使用者的提示symfony一直只会在 cache/ 和 log/ 这两个目录写入。这些目录的内容应该被你的SCM忽略(假如你使用subversion,则编辑 svn:ignore 属性)。WEB服务器配置:丑陋的方式如果你在你的WEB服务器的WEB根目录下某个地方创建了项目目录,你已经能在WEB浏览器中访问项目。当然,作为没有经过任何配置的,建起来很快,但在你的浏览器中尝试访问 config/databases.yml 文件,就会了解这样一个懒惰的态度的不良后果。如果用户知道你的网站是用symfony开发的,他可能会访问到一些敏感文件。永远不要在产品服务器上使用这种配置,并阅读下一节学习怎样正确的配置你的WEB服务器。WEB服务器配置:安全的方式一个好的WEB实践是只把需要被WEB浏览器访问的文件放在WEB根目录下,比如CSS、JavaScript、图片。默认情况下,一个symfony项目我们建议把这些文件放在 web/ 子目录下。如果你看过这个目录,你会发现一些存放WEB资源的子目录(css/ 和 images/)和两个前段控制器文件。前段控制器仅仅是个PHP文件,需要放在WEB根目录下。从浏览器可以隐藏所有其他PHP文件。这样做对于安全性是很有益处的。WEB服务器的配置现在是更改你的Apache服务器的时候了。找到并打开 httpd.conf 配置文件并添加下面这些配置在其末尾:# 确保必须要有这行NameVirtualHost 127.0.0.1:8080# 这是对于你项目的配置Listen 127.0.0.1:8080<Virtualhost 127.0.0.1:8080> DocumentRoot "/home/sfprojects/jobeet/web" DirectoryIndex index.php <Directory "/home/sfprojects/jobeet/web"> AllowOverride All Allow from All </Directory> Alias /sf /home/sfprojects/jobeet/lib/vendor/symfony/data/web/sf <Directory "home/sfprojects/jobeets/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory></Virtualhost>-/sf 别名是为了正确的显示symfony默认页面和WEB调试工具栏(Web Debug Toolbar)所需要的图片和JS文件。在Windows平台,你需要替换 Alias 这行比如像这样:Alias /sf "c:devsfprojectsjobeetlibvendorsymfonydatawebsf"并且 /home/sfprojects/jobeet/web 应该替换为:c:devsfprojectsjobeetweb-这个配置使Apache在你的机器监听8080端口,因此,重启Apache之后,将会用这个URL网址访问网站:http:/localhost:8080/你可以更改8080为另外一些数字,但数字最好大于1024,因为他们不需要管理员权限。配置一个专用域名如果你有管理员配置权限,最好设置虚拟主机(virtual hosts)而不是每次开始一个新项目添加一个新端口,或是选择一个端口并添加一个 Listen 语句,选择一个域名(例如 .localhost 真实域名添加在末尾)并添加一个ServerName 语句:# 这是对于你项目的配置<VirtualHost 127.0.0.1:80> ServerName .localhost <!- 像之前一样的配置 -></Virtualhost>使用Apache配置的该域名 .localhost 必须在本地声明。如果你运行的是Linux系统,它应该在/etc/hosts。如果你运行的是Windows XP,这个文件位于 C:WINDOWSsystem32driversetc 目录。添加这行:127.0.0.1 .localhost测试新配置重启Apache并检查,你现在访问这个新应用,打开一个浏览器并输入 http:/localhost:8080/index.php/,或者.localhost/index.php/ ,这取决于在前一节你选择的Apache配置。-如果你安装了Apache mod_rewrite 模块,你可以移除URL地址上的 index.php/ 部分。这可能要得益于在web/.htaccess 文件中配置重写规则。-你应该也尝试在开发环境访问应用(关于环境更多信息见下一节)。输入这个URL地址:.localhost/frontend_dev.php/WEB调试工具栏应该显示在右上角,看到了小图标,则证明你的 sf/ 别名配置是正确的。-如果你要在一个Windows环境中的IIS服务器上运行symfony则配置有一点不同,在相关教程中查找如何配。-环境如果你看了 web/ 目录,你会发现两个PHP文件:index.php 和 frontend_dev.php。这些文件叫做 前段控制器;应用的所有请求都会经过他们。但为什么每个应用都有两个前段控制器?两个文件都指向同一个应用,但针对不同的环境。当你开发一个应用,除非如果你