symfony 项目数据库密码中不能包含 ‘#’ 。切记,否则密码’#’开始的字符取不到。那么就会莫名其妙报错 [PropelException] [wrapped: connect failed [Native Error: Access denied for user 'cc'@'localhost' (using password: YES)] [User Info: Array]] stack trace 。。。。。。

SYMFONY 命令 clear-cache > 清除缓存 clear-controllers > 清除 web/ 目录下非 prod 环境运行的程序 disable > 在某运行环境下禁用某 app downgrade > downgrade to a previous symfony release enable > 在某运行环境下启用某 app fix-perms > 修复目录权限,比如使用SVN的 checkout 的时候 freeze > freeze symfony libraries init-app > 初始化一个 symfony 的 app init-batch > 初始化一个 symfony 的 batch init-controller > 初始化一个 symfony 的 [...]

YAML是”Yet Another Markup Language(另一种标记语言)”的缩写,读音”yamel”,或”雅梅尔”。这种格式大约是2001年出现的 写YAML要比XML快得多(无需关闭标签或引号),并且比’.ini’文档功能更强(ini文档不支持层次) 为什么不是XML呢?因为: YAML的可读性好。 YAML和脚本语言的交互性好。 YAML使用实现语言的数据类型。 YAML有一个一致的信息模型。 YAML易于实现。 上面5条也就是XML不足的地方。同时,YAML也有XML的下列优点: YAML可以基于流来处理; YAML表达能力强,扩展性好。 总之,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。 语法 Structure通过空格来展示。Sequence里的项用”-”来代表,Map里的键值对用”:”分隔. 这几乎就是所有的语法了. 例子 name: John Smith age: 37 spouse: name: Jane Smith age: 25 children: – name: Jimmy Smith age: 15 – name: Jenny Smith age : 12 他在描述可以被转化成数组或者hash的数据是非常有用,例如: $house = array(   ‘family’ => array(     ‘name’      => [...]

在日常的web开发中,跳转是一个很常见的操作,成功了要跳转,错误了要跳转,满足某某条件也要跳转,symfony作为一款成熟的开发框架对跳转的处理也是非常多样的。 一. 关于跳转 虽说多样,但万变不离其宗,一般的跳转分为两种,forward(转发)和redirect(重定向),两种方法虽然目的都是为了进行跳转但是本质上还是有很大差别的。 所谓forward,是一个action将当前的请求交给另外一个action处理,这个过程是在同一个http请求中完成的,整个过程不涉及客户端,url地址也不会发生改变。 示例1 public function executeActionA($request) { // 一些处理 // to ActionB: 剩下的就交给你了 $this->forward(‘default’, ‘actionb’); } public function executeActionB($request) { // to ActionA: 交给我你就放心吧 // 又一些处理 } 示例一中,ActionA将处理工作交给的ActionB,其实其效果是和下例一样的。 示例2 public function executeActionC($request) { // 一些处理 // 又一些处理 // ps : 我是全能,ActionA和ActionB能做的我自己就能做 } 上面这两个例子就如同我们雇佣一个程序员一个美工或者雇佣一个懂美工的程序员一样,我们将事件处理过程分开总是有各种各样的原因,比如为了逻辑清晰,代码重用等等等等,所以在很多情况下我们就需要使用forward。 说完forward我们再来说redirect,其实我觉得redirect才能够叫做真正的跳转,很多时候我觉得forward就象调用函数。一个真正的redirect涉及了两次http请求,浏览器发送了一个http请求之后,服务端根据业务需要进行跳转,这样服务端会向浏览器返回一个跳转信息,这个跳转信息可能是一个重定向的http header,也可能是一段带有跳转代码的html或者javascript,浏览器接到请求根据跳转信息进行第二次http 请求,这个第二次请求不同于forward的第二个Action,这个请求可以在程序内,也可以在程序外,比如说跳到google, 而用forward就象蹲监狱,再怎么跳也就是换换牢房,想出去是不可能了,除非你是Michael Scofield。 示例3 public function executeActionA($request) [...]

可以说, 表单占据了开发人员编写模板的大部分时间, 而且表单一般都设计得相当糟糕. 由于涉及默认值, 数据格式, 验证, 重填, 表单处理等许 多内容, 开发者常常忽略了表单中的一些重要细节. 而symfony恰恰对这个问题给予了特别的关注. 本章介绍了为加速表单开发而设计的可以自动完成多种要求的开发工具:  * 表单辅助函数提供了一种比较快地在模板中编写表单输入的方法, 特别是在编写诸如日期,下拉列表和富文本之类复杂的元素时.  * 如果要用一个表单去编辑一个对象的属性时, 利用对象表单辅助函数可以进一步加速模板的编写.  * YAML验证文件可以方便表单验证和重填.  * 验证器集成了用于验证输入数据的代码, symfony绑定了满足最常用的需求的验证器, 开发人员也很容易定制自己的验证器. Form Helpers 表单辅助函数 ———————– 在模板中, 表单元素的HTML标记常常和PHP代码混杂在一起. symfony中的form 辅助函数就是为了减少这种情形的发生并且避免在 `<input>`标记中不断重复`<?php echo`标记. ### Main Form Tag主要的表单标记 根据前面章节的介绍, 你必须用`form_tag()` 辅助函数创建表单, 因为它可以将用参数表示的动作转换为经路由过的URL. 第二个参数还 可以支持额外的选项—例如,可以改变缺省的`method`, 可以改变缺省的`enctype`或指定其他的属性, 参见 例10-1. 例10-1 `form_tag()` 辅助函数    [php]    <?php echo [...]

  SYMFONY 助手 (Helpers) 链接助手系列(Link helpers) 默认已引入 url_for() 重构URL url_for( ‘URL_raw’ ) link_to() 文字链接 link_to(‘link_title’, ‘URL_raw’ [, $options] )   图像链接 link_to(image_tag(‘img’), ‘URL_raw’ [, $options] ) button_to() 按钮链接 button_to(‘link_title’, ‘URL_raw’ [, $options] ) mail_to() 邮件链接 mail_to(‘email_address’, ‘address title’ [, $options]) 文本助手(Text helpers) 引入声明:use_helper(‘Text’) truncate_text() 裁切文本 truncate_text ($text, $length , $truncate_string = ‘…’) excerpt_text() 选摘文本 excerpt_text [...]

symfony-Ajax应用--helloajax

PHP-Frame(symfony)-Ajax如何应用–helloajax 1- Symfony中调用JavaScript 对于Symfony中采用了Helper的机制进行处理,主要有以下特征: (1)基于JavaScrip的Helper,用来输入标准JavaScript代码的Symfony模板,可以方便的更新DOM(Document Object Model)的各项元素及触发处理; (2)以Prototype为标准类库在Symfony中使用;      PS:Prototype是由Sam Stephenson编写的一个JavaScript基础类库,基于标准类库而编写,但在其基础上再扩展的一个JavaScript包。 (3)自带Ajax Helper,方便处理AJAX业务; (4)使用JavaScript Object Notation(JSON)做为服务器与客户机连接; (5)可以方便的使用Symfony框架调用php函数的方式完成处理过程,几乎可做到不必编写JavaScript代码就完成处理。 2- 使用Symfony的JavaScript功能制作一个简单的AJAX应用(Helloajax)   2-1 建立一个地helloajax的模块   进入命令行方式:输入“symfony init-module sampleteach helloajax”。   2-2 编辑indexSuccess.php <?php use_helper(“Javascript”); // (1) ?> <div id = “des”></div> // (2) <?php echo link_to_remote(“ShowTime!”, array(“url”=>”helloajax/showtime”, “update”=>”des”)); // (3) ?> <p> <?php echo date(“h:i:s”);?> // (4) [...]

-------------- 配置PHP环境 -------------- 首先当然要先配置好你的PHP环境。图省事儿的话,当然可以使用XAMPP这样的集成环境,不过为了学习和环境完整,还是推荐自己安装。具体安装方法又得一篇文章,我这儿就不写了。 我下载的版本较新,均从官方下载,分别是apache_2.2.4-win32- x86-no_ssl.msi、mysql-5.0.41-win32.zip、php-5.2.4-Win32.zip,经测试可以直接安装PEAR和 Symfony。之所以这么说,是因为前两天同事的Symfony怎么装也装不上,后来发现是由于PHP版本太新,大约是Symfony还未跟上。 要运行Symfony,最简单的当然是http://www.symfony-project.com/get/sf_sandbox.tgz这个沙盒了,下载解压直接用就是了,不需要安装。要想安装的话,推荐PEAR方式,简单方便。 以PEAR方式安装,自然要先安装PEAR。在安装PHP时,PEAR默认是没有安装的,这一点需要注意。 -------------- 安装pear -------------- pear是PHP的扩展和应用程序库,包含了很多有用的类,安装好php5.0后,pear实际上并没有被安装,安装的方法如下: 1.在php目录中双击go-pear.bat。 2.按照提示输入一些设置信息,主要是要把局域网的网关加上,如[url]http://192.168.0.1:80/[/url] ,pear要用这个地址访问Internet,若无代理服务器则直接回车 3.然后会提示一些包和PHP绑定,选择Y 。 4.然后安装基本包和提示安装成功,就这么简单。 5.打开windows目录下的php.ini文件,然后查找到如下的地方: [code]; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes"[/code] 把最后一行的注释去掉,然后把后面路径改成你的PEAR路径,例如: [code]include_path = ".;c:\php\pear\"[/code] 保存PHP.INI,然后重新启动APACHE即可。 -------------- 安装Symfony -------------- 安装第一步 是把Symfony频道加入PEAR, 执行以下命令: [code]> pear channel-discover pear.symfony-project.com[/code] 安装稳定版本的Symfony,执行以下命令: [code]> pear install symfony/symfony[/code] 假如你沒有 phing [...]

symfony propel-build-schema 问题

今天遇到一个问题,执行 symfony propel-build-schema 就报错,symfony版本为1.0.7。 错误信息如下:       D:\Deploy_Project\moa>symfony propel-build-schema       Buildfile: C:\php5\PEAR\symfony\vendor\propel-generator\build.xml         BUILD FAILED       Can’t load default task list       Total time: 0.0085 seconds          [BuildException]          Can’t load default task list   找了一个下午,终于找到了,原来是配置的问题。   在 [project]/config/config.php中,当配置为:        $sf_symfony_lib_dir  = ‘C:/php5/pear/symfony’;        $sf_symfony_data_dir = ‘C:/php5/data/symfony’;   在运行 symfony 命令的时候,就会报错。 修改为下面的写法后就正常了。        $sf_symfony_lib_dir  = ‘C:\php5\pear/symfony’;        $sf_symfony_data_dir = ‘C:\php5\data/symfony’;   [...]

./symfony list 语法: symfony [选项] 任务名 [参数] 选项: –dry-run -n Do a dry run without executing actions. –help -H 显示帮助信息 –quiet -q Do not log messages to standard output. –trace -t Turn on invoke/execute tracing, enable full backtrace. –version -V 显示程序版本 可用的任务: help 显示任务的帮助信息 (简写h) list 列出任务 app:routes 显示一个应用程序当前的路由信息 cache:clear 清空缓存(简写cc, clear-cache) configure:author 设置项目作者 configure:database [...]

© 2011 科创网 豫ICP备11029392号 Suffusion theme by Sayontan Sinha