- 浏览: 13746649 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
Section 1 数据库配置
app/config/database.php 这个文件包含了所有的数据库配置。新安装的Cake是没有datebase.php这个文件的,你需要从database.php.default复制一份过来并重新命名,内容如下:
//app/config/database.php var $default = array('driver' => 'mysql', 'connect' => 'mysql_connect', 'host' => 'localhost', 'login' => 'user', 'password' => 'password', 'database' => 'project_name', 'prefix' => ''); //和大多数php程序一样,修改一下你的配置就ok了。
关于前缀要提醒一下:这里定义的前缀将会用在任何一处由Cake发起的对数据表的SQL操作中。你在这里定义过后不能再在其它地方重新定义它。假设你的服务器只给了你一个单独的database,它同样可以让你遵循Cake的表名约定。注意:对于HABTM(has-and-belongs-to-many),也就是多对多关联表,你只需要添加一次前缀prefix_apples_bananas,而不是prefix_apples_prefix_bananas。
CakePHP支持下列数据库驱动:
- mysql
- postgres
- sqlite
- pear-drivername (so you might enter pear-mysql, for example)
- adodb-drivername
$default连接中的'connect'可以指定这个连接是否是persistent连接。参考database.php.default中的注释来决定采用何种方式。
Rails两大原则之一,就是约定大于配置,所以你定义的数据表名必须遵循下面的命名约定:
1. 表名为英语单词的复数形式,例如"users", "authors"或者"articles"。注意与之对应的model对象则使用单数形式做名字。 2. 表字段必须有一个主键字段叫'id'。(相信用过ORM工具的都明白个中道理吧) 3. 如果你使用外键关联表,外键字段必须定义成这个样子:'article_id'。即关联表名的单数形式加上下划线然后id。其实也很好理解,并不需要特别记忆吧。 4. 如果你定义了 'created' 'modified'这样的auditor字段的话,Cake会自动在操作的时候去填充。(译注:rails果然周全,hibernate里面的interceptor就那么容易的做到了)
你应该注意到,同样的还有一个$test的数据库连接配置项,这是考虑到一般开发数据库和生产数据库通常并不是同一个,所以你可以在程序通过var $useDbConfig = 'test'来切换数据库连接设置。
在你的model对象中,你可以通过这样的方式来添加任意多个附加数据库连接。
Section 2 全局配置
CakePHP的全局配置文件为/app/config/core.php。尽管我们非常讨厌配置文件,但是还是有些配置需要去做。文件中的注释对每一个配置项都有很详尽的说明。
DEBUG:这个选项定义了应用程序的Debug级别。设置为一个非零的数值Cake会输出所有的pr()和debug()函数调用,并且在Forward之前会有提示信息。设置为2或者是更高的数值,则会在页面底部输出sql语句。
在debug模式下(DEBUG被设为1或者更高),Cake会输出错误自定义错误页面,例如 "Missing Controller","Missing Action"等等。在生产环境下(DEBUG被设为0),Cake输出 "Not Found"页面,你可以自行修改该页面(app/views/errors/error404.thtml)。
CAKE_SESSION_COOKIE: 这个设置可以设定你所希望使用的cookie名字。
CAKE_SECURITY:改变这个值标示了你所希望采用Session校验级别。Cake会根据你设定的值来执行Session超时,生成新的session id,删除历史session file等操作。可以选择的值如下所示:
1. high:最高安全级别,10分钟没有活动的session被置为超时,同时每一次请求都将生成新的session id 2. medium: 20分钟没有活动的session会被置为超时 3. low: 30分钟没有活动的session会被置为超时
CAKE_SESSION_SAVE:设置你的session数据储存策略:
1. cake:Session被保存在Cake安装目录下的tmp目录 2. php: Session被保存在php.ini文件设置的储存路径下 3. database: Session保存在$default数据库连接所指定的库中
Section 3 路由(Route)配置
"Routing"是一个纯PHP,类似mod_rewrite的机制,来实现URL和controller/action/params的自动映射。通过这个机制Cake可以拥有简洁且可配置的URL并且可以摆脱对mod_rewrite的依赖。当然使用mod_rewrite会让你的浏览器地址栏变得更加简洁。
Routes(路由)是独立的URL和指定的controller和action映射规则。路由规则在app/config/routes.php里面配置。示例如下:
<?php $Route->connect ( 'URL', array('controller'=>'controllername', 'action'=>'actionname', 'firstparam') ); ?> //1. URL是一个正则表达式,表示你希望采用的URL格式 //2. controllername是希望调用的controller的名字 //3. actionname是希望调用的controller的action名字 //4. firstparam是action的第一个参数名
第一个参数之后的所有参数作为parameters被传递到action。
下面是一个简单的示例,所有的url都被定向到BlogController。默认的action为BlogController::index()。
//Route Example <?php $Route->connect ('/blog/:action/*', array('controller'=>'Blog', 'action'=>'index')); ?> //A URL like /blog/history/05/june can then be handled like this: Route Handling in a Controller <?php class BlogController extends AppController { function history($year, $month=null) { // .. Display appropriate content } } ?>
URL中的'history'通过Blog's route中的:action匹配。URL中通过*匹配的内容都被当作parameters传递到:action对应的方法中,就像这里的$year和$month。如果URL是/blog/history/05,则history()方法只会得到一个参数,05。
下面这个例子是CakePHP默认设置的一个route来为PagesController::display('home')配置路由。Home是Cake的默认首页视图,你可以在这个位置找到并修改它/app/views/pages/home.thtml。
//Setting the Default Route <?php $Route->connect ('/', array('controller'=>'Pages', 'action'=>'display', 'home')); ?>
Section 4 高级路由配置:Admin路由与Webservice
在/app/config/core.php中还有那么一些高级选项可以供你使用,你可以利用它们使你的URL精巧地适应绝大多数情况。
第一个介绍的选项是管理员路由(admin routing)。假设你有两个Controller,ProductsController 和 NewsController,你肯定希望能有一些特别的URL给具有管理权限的用户来访问Controller中一些特别的action。为了保持URL的优雅和可读性,有些程序员相比 /products/adminAdd 和 /news/adminPost 更喜欢 /admin/products/add 和 /admin/news/post。
激活这个功能,首先你需要把/app/config/core.php中CAKE_ADMIN的注释去掉。CAKE_ADMIN的默认值是'admin',不过你可以修改为任何你喜欢的名字。但是你要记住这个名字,因为你需要在每一个admin action名字前面加上这个前缀,格式为admin_actionName()。
/admin/products/add CAKE_ADMIN = 'admin' name of action in ProductsController = 'admin_add()' /superuser/news/post CAKE_ADMIN = 'superuser' name of action in NewsController = 'superuser_post()' /admin/posts/delete CAKE_ADMIN = 'admin' name of action in PostsController = 'admin_delete()'
使用admin route可以让你的业务逻辑非常井井有条。
注意!!并不是说使用了admin route同时Cake也替你完成了安全和认证,这些还是需要你自己来完成的。
类似的,你也能很快的为webservice建立路由。你需要将某个action暴露为webservice接口吗?首先,将/app/config/core.php中的WEBSERVICES选项设为'on'。和先前的admin一样,打开这个选项可以很方便的让带有如下前缀的action自动暴露为webservice接口。
- rss
- xml
- rest
- soap
- xmlrpc
这样做的结果就是同一个action,拥有了两种不同的视图,一个是标准的HTML视图,一个是webservice接口。因此你可以非常简单的让你的程序拥有webservice的能力。
举个例子,我的程序中有这么一个逻辑,有这么一个action可以告诉用户当前办公室里有多少人正在通话。我已经有了一个HTML视图,不过我希望再提供一个XML格式的接口供我的桌面Widget(译注:就是类似yahoo widget一类的桌面小贴士)或者是掌上设备来使用。首先,我打开了webservice路由功能:
/app/config/core.php (partial) /** * The define below is used to turn cake built webservices * on or off. Default setting is off. */ define('WEBSERVICES', 'on');
然后我在controller中构建代码如下:
<?php class PhonesController extends AppController { function doWhosOnline() { // this action is where we do all the work of seeing who's on the phone... // If I wanted this action to be available via Cake's xml webservices route, // I'd need to include a view at /app/views/posts/xml/do_whos_online.thtml. // Note: the default view used here is at /app/views/layouts/xml/default.thtml. // If a user requests /phones/doWhosOnline, they will get an HTML version. // If a user requests /xml/phones/doWhosOnline, they will get the XML version. } } ?>
Section 5 自定义反射配置(可选)
Cake的命名约束真的是非常不错,你可以命名model为Box,controller为Boxes,于是所有的问题都解决了。但是考虑到有的情况下(特别是非英语国家)这样的命名约束不如你意的话,你可以通过自定义反射配置来满足你的需求。
/app/config/inflections.php,这里定义了Cake的一些变量,你可以来调整名字单复数约定等。你需要详细阅读文件中的注释,并且最好具备正则表达式知识,否则请误随便修改该配置文件。
来源:http://www.1x3x.net/cakephp/configuration.html
发表评论
-
CakePHP你必须知道的21条技巧
2012-10-19 06:25 1886原文链接:http://www.avatarfinancial ... -
cakephp 1.3 Views
2012-10-09 06:12 1445Section 1 Views 视图 一个vie ... -
cakephp 1.3 Models
2012-10-09 06:07 2503Section 1 What is a model? ... -
cakephp 1.3 Controller
2012-10-09 05:49 3335Controller 一个controller用于管理 ... -
CakePHP 2.x十分钟博客教程
2012-10-07 01:27 244201. CakePHP2十分钟博客教 ... -
Create an Admin panel with CodeIgniter
2010-05-23 02:15 4178Create an Admin panel with Code ... -
Codeigniter Grid 使用方法 (flexigrid)
2010-05-23 02:05 2819来源:http://codeigniter.com/forum ... -
CI集成 ckeditor 配置
2010-05-23 01:34 3754配置 ckeditor 1.上传 下载 ckedito ... -
codeigniter 辅助函数 - 敏感词过滤
2010-05-05 06:18 4578我们都知道有些敏感的词汇是不适合出现在互联网上的,特别是在有用 ... -
实现简单 codeigniter 缓存 (cache)
2010-04-30 23:47 5282代码 class Test extends Contr ... -
CKEditor Helper for CodeIgniter
2010-04-19 00:37 3981Using CKEditor as a plugin in y ... -
codeigniter 生成 excel
2010-04-19 00:33 3330Excel Plugin Th ... -
CakePHP 中文手册
2010-04-14 21:04 2343基本概念 Section1 简介 ... -
利用 Cache_Lite代替codeigniter中的cache功能
2010-01-29 06:15 5516codeigniter的功能纵然强大,也有不足之处。其cach ... -
CodeIgniter 操作PDF ( Generating PDF files using CodeIgniter )
2010-01-03 04:03 3611PDF files rock! Some of the p ... -
CodeIgniter 合作 Authorize.net
2009-12-30 00:25 1617function payment(){ // 略... ... -
CodeIgniter 合作paypal
2009-12-30 00:15 2356<?php class Paypal extend ... -
CodeIgniter 操作 CSV
2009-12-29 07:17 4646A Comma separated values (CSV) ... -
codeigniter 操作 Rss
2009-12-29 07:12 1979I wrote a codeigniter library t ... -
codeigniter操作xml
2009-12-29 06:57 3996This Simplexml class provides a ...
相关推荐
CakePHP 1.3中文帮助文档,内容简单易懂并且全面,值得大家下载...
《CakePHP 1.3:深入理解MVC模式与应用实践》 CakePHP是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它在Web开发领域具有广泛的应用,尤其对于初学者和经验丰富的开发者来说,其简洁、易用的特性...
cakephp 参考手册 v1.3 虽然不是最新的2.X手册 但是完全可以使用
《CakePHP 1.3 Application Development Cookbook》是针对使用CakePHP 1.3框架进行Web应用开发的一本实践指南。本书旨在帮助开发者深入理解和运用CakePHP的特性,提高开发效率,构建高效、可维护的PHP应用程序。源...
cakephp 1.3.x 中文手册,部分英文没有翻译,随后翻译。
### CakePHP 1.3 应用开发知识点详解 #### 一、CakePHP 1.3 概述 CakePHP 是一款使用 PHP 编写的快速、简洁的 MVC 框架。它旨在提供一个结构化的应用程序开发框架,帮助开发者更高效地构建高质量的Web应用。...
### CakePHP 1.3 Application Development Cookbook 知识点概览 #### 一、书籍概述 《CakePHP 1.3 Application Development Cookbook》是一本专为CakePHP开发者编写的实用指南,提供了超过60个精心设计的“食谱”来...
《CakePHP 1.3.21:框架详解与应用实践》 CakePHP是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它致力于简化Web应用程序的开发,提供了一套强大的工具和约定,使开发者能够快速构建高质量的网站...
该文档是下载官方文档,进行整理制作成CHM,内容全面,值得下载...
《CakePHP 1.3 应用程序开发实战指南》是 Packt Publishing 在 2011 年出版的一本专业书籍,旨在帮助开发者深入理解并高效使用 CakePHP 框架进行Web应用开发。本书内容详实,涵盖了大量的实例和最佳实践,适合初学者...
与CakePHP 1.3一起使用 用法 将recaptcha.php文件放置在app/vendors 。 JS文件必须放在<head> : ... < script src =' https://www.google.com/recaptcha/api.js ' > </ script > </ head ...
CakePHP 的 Twig (v0.8.0) 这个用于 CakePHP 框架的插件允许您使用 Twig,一个灵活、快速且安全的 PHP 模板引擎。 除了使您能够使用 Twig 的大部分功能外,该插件还与 CakePHP 视图渲染器紧密集成,使您可以完全...
### CakePHP 安装与配置指南 #### 一、前言 本文档旨在详细介绍如何在特定环境下安装并配置 CakePHP 框架。所使用的环境包括 Apache 2.2.21、MySQL 5.5.20 和 PHP 5.3.10,操作系统为 Windows 7 Ultimate 32位。 #...
- **I18n**:CakePHP 支持多语言环境,可以通过配置文件轻松切换不同的语言。 - **L10n**:针对不同地区的日期时间、货币格式等本地化需求,框架也提供了相应的解决方案。 #### 测试 CakePHP 内置了强大的测试框架...
- **配置**:讲解了如何配置CakePHP的各种设置,以适应不同的开发场景。 - **路由**:介绍了CakePHP的路由机制,以及如何自定义URL结构。 - **会话**:解释了会话管理的相关概念,以及CakePHP如何处理会话数据。 - *...
对于 CakePHP 1.3,使用 1.3 分支。 安装 克隆/复制此目录中的文件到app/Plugin/ClearCache 通过调用CakePlugin::load('ClearCache');确保插件在app/Config/bootstrap.php CakePlugin::load('ClearCache'); 用法 ...
Laravel开发-laravel-cake13-hash Laravel 5包使用旧版cakephp 1.3进行密码哈希
- **Conventions Over Configuration**: CakePHP 遵循约定优于配置的原则,这意味着在大多数情况下,框架能够自动处理许多常见的配置问题,开发者只需关注业务逻辑。 - **The Model Layer**: 模型层负责处理数据访问...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...