随笔分类 - Symfony
摘要:通过昨天对已知技术的回顾,我们已经熟悉交互的使用。显示丰富格式的问题与列表,甚至是分页,并不足以使一个程序鲜活。而askeet概念的核心就是允许任何注册的用户询问一个新问题,而任何用户可以回答已存在的问题。现在是我们实现的时候了。添加一个新问题我们在第七天所创建的侧边栏已经包含一个添加新问题的链接。他链接到question/add动作,这正是我们将要开发的。限制到注册用户的访问首先,只有注册用户可以添加一个新问题。为了限制到question/add动作的访问,在askeet/apps/frontend/modules/question/config/目录下创建一个security.yml文件:
阅读全文
摘要:回顾在我们第八天的学习中,我们很容易的为askeet添加了AJAX交互。现在程序已经相当有用了,但是还需要大量的小修改。在问题体中应允许丰富的文本,而主键不应出现在URI中。在Symfony中修正这些问题并不难,今天将是我们练习我们所学东西的一个好机会,并且可以检测我们是否已经知道如何操作MVC结构的所有层。在question与answer上允许丰富的文本格式Markdownquestion与answer现在只允许接受普通文本。要允许基本的格式,粗体,斜体,超链接,图片,等,我们将会使用一个外部库,而不是重新发明轮子。如果我们阅读过文本格式的Symfony文档,那么你也许知道我们是Markdo
阅读全文
摘要:Symfony回顾在七个小时的工作之后,askeet程序已经很好了。主页显示问题列表,问题的详细内容显示其答案,用户具有一个配置页面,而各种主题列表也可以由每一页的侧边栏访问。我们社区加强的FAQ处在其正确的方向上,而现在用户还不可以修改数据。如果web中数据操作的基础是长长的表单,那么今天的AJAX技术可以改变程序的构建方式。而这也同样适用于askeet。在这个指南中,我们将会显示在askeet中添加加强的AJAX交互。其目标就是允许一个已注册的用户声明其对某一个问题的兴趣。在布局中添加一个指示器当一个异步请求发送时,AJAX网站的用户并不需要考虑通常的动作暂停,而结果会很快显示。这就是所有
阅读全文
摘要:Symfony回顾现在我们的学习已经过去六天了,也许我们其中的一些人会认为到现在为止程序并不是十分的有用。这是因为一些人是通过可用的页面数量来评价一个程序是否有用的,而他们认为askeet只是显示一个问题列表,显示相关的答案以及处理用户会话。我们并没有添加大量页面的原因是因为使用Symfony添加页面实在是太容易了。我们需要证明?好的。今天我们将会显示一个最后提问的问题列表,一个最后发表的答案列表,一个对某一个问题感兴趣的用户列表,用户的配置,并且我们会在每一个页面上添加一个浏览栏来访问这些特性。因为这些工作并不够一小时,我们同时会进行视图配置,并且会最终查看一下我们这周所完成的工作。准备好了
阅读全文
摘要:回顾在我们第五天的学习中,我们已经习惯于操作模板与动作:表单与分页对于我们而言已不在神秘。但是在构建登陆表单之后,我们也许希望演示一下如何限制非授权用户对特定功能的访问。这就是我们今天所要学习的内容,以及一些表单验证的内容。因为我们要使用自定义的类来扩展程序,所以我们会对Symfony一书的自定义扩展一节的内容有更深的理解。登陆表单验证验证规则登陆表单有一个nickname与password域。但是如果用户提交了不正确的数据时会发生什么情况呢?为了能够处理这种情况,在/frontend/modules/user/validate目录下(login是要验证的动作名)创建一个login.yml文件
阅读全文
摘要:回顾在我们第四天的学习中,我们通过将代码段移到与其作用更为相关的文件中来对我们的程序进行重构。我们同时也学习了修改模块,这样与数据相关的通常方法可以在动作代码之外运行。开发很简洁,但是功能的数量仍然很缺乏。现在是时候进行一些askeet站点与用户之间的交互了。而HTML交互的根本--除了起链接--就是表单了。今天我们的目标是允许用户登陆,并在主页的问题列表中进行翻阅。这对于开发而言是很快的,但是这会让我们回忆起昨天的内容。登陆表单在测试数据中存在用户,但是程序却没有办法来进行验证。下面我们要在程序的每一个页面添加一个登陆表单。打开全局的布局文件askeet/apps/frontend/temp
阅读全文
摘要:Symfony回顾在第三天的学习中,显示并修改了一个MVC结构的所有层次来在主页正确的显示问题列表。程序正在变得漂亮,但是仍然缺少内容。第四天的目标是为一个问题显示答案,为问题的详细页面指定一个漂亮的URL,添加一个自定义的类,将大块的代码移动到一个更好的地方。这会帮助我们更好的理解模板,模块,路由规则以及重构的内容。也许我们会觉得在仅几天之后重新编写代码还为时过早,但是我们希望看到是在教程结束时我们的感受。要阅读这节内容,我们必须熟悉Symfony一书中MVC实现的相关内容。如果我们了解什么是敏捷开发也是相当有帮助的。为一个问题显示答案首先,让我们继续修改我们在第二天生成的问题CRUD。qu
阅读全文
摘要:在第二天的学习中,我们了解了如何基于一个关系数据模型构建一个对象模型,并且为这些对象中的一个对象生成了一个程序框架。顺便说一下,在前一天所生成的程序代码可以在askeet的SVN仓库得到:http://svn.askeet.com/我们在第三天的目标是要为这个网站定义一个漂亮的结构布局,将问题列表作为默认主页,显示对一个问题感兴趣的用户数量,以及为了进行数据测试由样本文本文件移居数据库。所需要做的内容并不是很多,但是有许多内容需要阅读和理解。为了阅读这一节教程,我们需要熟悉Symfony一书中所解释的工程,程序,模块以及动作等概念。MVC模型今天是我们第一次进入MVC体系结构的世界。这意味着什
阅读全文
摘要:第二天--设置一个数据模型 Symfony回顾在这份长长的但是却十分有趣的指南的第一天内容中,我们了解了如何安装Symfony框架,设置一个新程序以及开发环境,并且使用了源码版本控制安全的存放源码。顺便说一句,在第一天所生成的程序源码可以在askeet的源码仓库得到:http://svn.askeet.com/第二天的目标是从功能的角度来定义最终的结果应是什么样子的,设计数据模型以及编码。这包括生成一个对象关系映射,并且使用他们来创建,取出以及更新程序框架数据中的记录...
阅读全文
摘要:第一天--开始一个工程 挑战我 们将要开始的Symfony日历是一个24个教程的集合,是在12月1日到圣诞节之间一天一天发布的。确实如此,每一天,包括周末,而一个新的教程也会马 上发布。每一个教程都是在一小时以内,从中我们可以看到正在发展中的web 2.0程序的开发。到圣诞节时,最终的程序将会放在网上,而源码也会开源。这个程序将会是可用的,有用的,有趣的。24次小于一小时的时 间相当于不到一天的时间,而这正是我们认为一个开发者学习Symfony所需要的时间。每一天都会有新的特性...
阅读全文
摘要:我们的第一个Symfory工程现在我们试验一下Symfony。我们要在一个小时内构建一个全功能的网络程序。一个书店销售程序?可以!一个Weblog!这是一个好主意。让我们开始吧。安装Symfony并且初始化工程为了方便,我们将会使用Symfony沙盒。这是一个空的Symfony工程,在其中已经包含了所有所需要的库,并且完成了基本的配置。比起其他类型的安装,沙盒的最大优点就是我们可以立刻试验Symfony。下载sf_sandbox.tgz,并且将其解压到我们的网络目录的根目录下。我们可以查看其中的readme文件,从而得以更为详细的信息。生成的文件结构如下所示:www/ sf_sandbox/
阅读全文
摘要:在这一章我们将会学习如何创建一个模块,这是组织页面的结构化元素。同时我们也会学习如何创创建一个分为一个动作也一个模板的页面,之所以分为动作与模板,是因为MVC模式。链接与表彰是基本的页面交互,我们将会学习如何在模板中插入这些元素并且在动作中进行处理。创建一个模块框架正是如我们在第2章所了解的,Symfony将页面组织为模块。在创建一个页面之前,我们需要创建一个模块,并且初始化为一个Symfony可以识别的文件结构的空壳。Symfony命令行自动化处理模块的创建。我们只需要调用init-module任务,并且使用程序名以及模块名作为参数。在前一章,我们创建了一个myapp程序。要向这个程序中添加
阅读全文
摘要:设置一个程序Symfony将所有相关的程序组织在一个工程中。一个工程的所有程序共享同一个数据库。为了设置一个程序,我们必须首先设置一个工程。创建工程每一个Symfony工程遵循一个预定义的目录结构。Symfony命令行通过使用正确的树结构与访问权限来初始化一个工程的框架,从而自动化一个工程的创建。所以创建一个工程,只是简单的创建一个目录,并且要求symfony将其组织成为一个工程。创建一个工程,我们可以执行下面的命令:mkdir ~/myprojectcd ~/myprojectsymfony init-project myprojetcsymfony必须在工程的根目录下进行调用,因为这个命令
阅读全文
摘要:Symfony是一个优秀的PHP框架,在Debina下安装Symfony却显示更为的简单,因为在Debian的安装源中就有Symfony,这样我们就可以用具有超级牛力的APT来进行安装了。# apt-get update# apt-get install php5-symfony哈哈~~Debian下的生活好简单。这样以后我们就可以用Symfony来架设我们的PHP程序了~~HOHO~~ Symfony是一个优秀的PHP框架,在Debina下安装Symfony却显示更为的简单,因为在Debian的安装源中就有Symfony,这样我 们就可以用具有超级牛力的APT...
阅读全文