This article was written about CakePHP 2.x and has been untested with CakePHP 3.x CakePHP seems to get a slightly unfavourable reputation when compared to the likes of Symfony orZend Framework due to its lack of namespaces and not playing nicely with…
CakePHP seems to get a slightly unfavourable reputation when compared to the likes of Symfony or Zend Framework due to its lack of namespaces and not playing nicely with Composer out of the box. However, that will change in the forthcoming version 3;…
Zend Framework 优点: Zend Framework大量应用了PHP5中面向对象的新特征:接口.异常.抽象类.SPL等等.这些东西的应用让Zend Framework具有高度的模块化和灵活性.同时,因为严格遵循"针对接口编程"和"单一对象职责"等原则,让Zend Framework很有希望成为一个出色的企业应用开发框架. 官方出品,自带了非常多的library,框架本身使用了很多设计模式来编写,架构上很优雅,执行效率中等:MVC设计,比较简洁,具有路由…
本来想把前后台分离,可是阅读了cakephp的说明,才发现.cakephp根本就不支持path/to路径. cakephp官网给出的 管理员分离方式:http://book.cakephp.org/2.0/en/development/routing.html#prefix-routing 意思就是说全部的前端后台的控制器都在一个控制器中,然后通过admin_前缀来区分是给管理员使用还是给前端使用. . . 看到这一段真的非常无语,使用人数那么多的一个框架.竟然是连这个path/to的功能都没有…
使用GitLab CI + Capistrano部署CakePHP应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方法3. 安装和设置GitLab CI Runner4. 安装和配置Capistrano    4.1 安装Ruby    4.2 安装Capistrano    4.3 在项目中配置Capistrano    4.4 用户的验证和授权    4.5 其它工具和设置5. 部署6. 小结A. 参考资料…
从CakePHP 1.3升级到2.5 摘要:最近把一个CakePHP 1.3的项目升级到了2.x,当然就用最新的版本2.5.3了,结果基本满意.本文记录了升级的过程,包括使用的工具,遇到的问题和相应的解决方法. 这篇文章涉及的内容要求至少有CakePHP中级水平,如果你是刚开始使用CakePHP,建议先不要作这样的尝试,否则遇到问题都不知道怎么解决. 目录 1. 为什么要升级 2. 项目概况 3. 使用的工具 4. 升级的过程 5. 升级之后遇到的问题及解决方法 A. 参考资料 1. 为什么要升…
CakePHP本身有一个uuid实现,所以一直以来,我都在尝试使用uuid做主键的可能性.虽然MySQL是我最常用的数据库,但是和 auto_increment_int主键相比,我对uuid主键更有好感,一方面是因为uuid的数据库无关性,另一方面是当你想把程序分布在多台服务器上时,uuid操作更简单. 不过MySQL还没有原生的uuid支持,在和innodb表类型配合时,可能会出现一些问题: 首先,innodb会对主键进行物理排序,这对auto_increment_int是个好消息,因为后一次…
一.常见的PHP框架 1.zendframwork: (ZF)是Zend公司推出的一套PHP开发框架 功能非常的强大,是一个重量级的框架,ZF 用 100%面向对象编码实现. ZF 的组件结构独一无二,每个组件几乎不依靠其他组件.这样的松耦合结构可以让开发者独立使用组件. 我们常称此为 "use-at-will"设计. 2.Yii由国人开发的重量级的框架 这个框架把代码的可重用性发挥到极致.Yii是一个高性能的PHP5的web应用程序开发框架.通过一个简单的命令行工具 yiic 可以快…
Unity本身不提供摇杆的组件,开发者可以使用牛逼的EasyTouch插件或者应用NGUI实现相关的需求,下面本文通过Unity自身的UGUI属性,实现虚拟摇杆的功能. 主参考 <Unity:使用 UGUI 的 ScrollRect 製作虛擬搖桿>和松神的<UGUI研究院之游戏摇杆>,分“摇杆UI的构建”和“摇杆事件连接”以及“摇杆表现强化”三方面总结制作过程中的思路笔记. 一 摇杆UI的搭建 核心是使用UGUI 的 ScrollRect Component( 经常用于 Scrol…
这两日对DOM等级的理解不是太通透,就进Mozilla官网去看了一下,然后进行了首次的对技术文档的翻译工作,虽然官网也有中文解释,但我想,自己翻译出来时,已经有了原汁原味的理解了吧,这边是做此次翻译的原因所在.----Johnny Zen 2017-11-17 DOM Levels[DOM 等级概述] @source:https://developer.mozilla.org @translator:Johnny Zen @school:XiHua University @contact:QQ:…
之前无法正常更新ENUM类型的数据,感觉是框架函数实现的bug. 问题很诡异,因为INIT的时候是可以成功写入的,没理由UPDATE的时候不成功. 前后琢磨了一下午,发现了一点蛛丝马迹才终于想通.问题出在Cakephp操作对ENUM类型值的保存做了一点手脚. 具体关于ENUM的实现暂时不提. 我的bug原因在于我的ENUM取的值是‘1’,‘2’,‘3’,‘4’,当我通过Model->set('col1','4')时,table里的表是1,跟init的时候一样.当时我认为UPDATE ‘col1’…
最近一直在使用cakephp这个框架学习,最近发现了一些问题,就是怎样将SQL语句打印出来进行调试,方法如下: $db=ConnectionManager::getDataSource('default'); $db->showLog(); 可以举一个例子来进行说明: public function abc(){ $this->layout="default"; $userData=$this->User-find('all'); //Below code to ru…
请求与响应对象 请求与响应对象在 CakePHP 2.0 是新增加的.在之前的版本中,这两个对象是由数组表示的,而相关的方法是分散在RequestHandlerComponent,Router,Dispatcher 和 Controller 之中的.关于请求对象包含什么信息,之前并没有权威性的对象. 在2.0中, CakeRequest 和 CakeResponse 用于此目的. CakeRequest CakeRequest 是 CakePHP 中缺省的请求对象.它集中了一些特性,用来查询(i…
控制器 控制器是MVC中的“C”. 如果你的网站使用Cake框架制作,一般根据url地址和通过路由,就会找到正确的控制器,然后控制器的动作就会被调用. 一个控制器需要解释请求数据.确保使用正确的模型.渲染正确的视图. 控制器可以被认为是模型和视图的中间人. 我们一般保持控制器瘦小,而模型肥胖. 这样代码更容易复用和测试. 通常,控制器用于管理关于单个模型的逻辑. 例如,如果你为一个在线面包店制作网站, 你可能会有 RecipesController 和 IngredientsController…
模型 模型在应用程序中是作为业务层而存在的(怎么感觉是数据层......).这就意味着,模型应当负责管理几乎所有涉及数据的事情,其合法性,以及你的业务领域中数据在工作流程中的演化和互动 . 通常模型类用来表示数据,并且在 CakePHP 应用程序中用来访问数据,具体说,模型代表数据库中的表,但不限于此,也可以访问任何操控数据的东西,比如文件,外部网络服务,iCal 日程,或者 CSV 文件中的行. 一个模型可以与其他模型关联.例如,一份菜谱可以和菜谱的作者关联,也可以和菜谱的原料相关联. 本章中…
简单的身份验证和授权应用 接着我们blog教程的例子,如果我们想要建立一个根据登录的用户身份来决定其安全访问到正确的urls. 同时我们还有其他的需求: 允许我们的blog有多个作者,每一个作者都可以自由创作他们自己的posts,编辑和删除它们,而不允许对别人的posts做任何的改动. 创建所有用户的相关代码 首先,让我们在数据库中新建一个表来保存用户的数据 CREATE TABLE users ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, user…
这是我的真心体会,在尝试使用Laravel.ThinkPHP.Yii.symfony2.CI.cakephp.Yii2 之后的真实想法(default7#zbphp.com). 1)ThinkPHP (版本号3.1.3) 我一開始用到的是ThinkPHP 3.1.3,入门门槛就是网址与方法相应这一点.当初我接触ThinkPHP3.1.3的时候事实上3.2版本号刚出不久,3.2与3.1.x相比是部分重构,用上了最新的命名空间,考虑到购买的虚拟主机可能不支持命名空间(命名空间必须PHP 5.3.3+…
CakePHP 2.x => 3.x 升级手顺 一.Controller层 1.find('list') 原2.x中该方法通过指定option中的'fields'来实现key=>value 3.x通过option中的'keyField'和'valueField'来替换,返回值需要用toArray()进行转换 2.find('first').find('count') 3.x中已经完全废弃掉这两个参数,而使用find()->first()以及find()->count()进行替换 3…
今wamp已安装cakephp3.x什么时候.报告这样的错误:Fatal error: You must enable the intl extension to use CakePHP. in D:\wamp1\www\cakephp\config\bootstrap.php on line 38.查了非常多资料.发现还是没用!最后.看cakephp手冊Cookbook 3.x才发现早已经有了解决方式: In WAMP, the intl extension is "activated&quo…
原文:http://debuggable.com/posts/learning-from-the-cakephp-source-code-part-ii:480f4dd6-57fc-4715-8709-439acbdd56cb 这段评论有意思: 非常正确,确实应该从代码入手! Hey Felix! As you wrote in Part I most of Cake's core code is "delightful and should help you to become a bette…
最近开始痛定思痛,研究cakephp的源码. 成长的路上从来没有捷径,没有小聪明. 只有傻傻的努力,你才能听到到成长的声音. 下面这篇文章虽然过时了,但是还是可以看到作者的精神,仿佛与作者隔着时空的交流,这就是阅读的意义所在吧 :) ============================================================= 原文: http://debuggable.com/posts/learning-from-the-cakephp-source-code-p…
  原文:http://blog.csdn.net/kunshan_shenbin/article/details/7644603  CakePHP下使用paginator需要对多个字段排序的做法 2012-06-08 11:03 448人阅读 评论(0) 收藏 举报 有的时候在进行翻页时需要对多个字段进行排序. 但是CakePHP的paginator的sort方法默认只能对一个字段进行排序. 解决的办法有2种: 1. 在model中追加一个虚拟字段: http://book.cakephp.o…
Cakephp 框架帮我们做了很多的工作,的确省了我们很多工作,提高了效率. 但是,碰到一些比较复杂的查询时,还是有些问题,官方的cookbook api 有说明一些详细的用法,但感觉还是不太够,有些地方讲的不够清楚. StackOverflow上的这个问题不错 http://stackoverflow.com/questions/5770032/cakephp-and-subquery The Question: How can I write SQL subquery using cake…
Cakephp 框架帮我们做了很多的工作,的确省了我们很多工作,提高了效率. 但是,碰到一些比较复杂的查询时,还是有些问题,官方的cookbook api 有说明一些详细的用法,但感觉还是不太够,有些地方讲的不够清楚. StackOverflow上的这个问题不错 http://stackoverflow.com/questions/5770032/cakephp-and-subquery The Question: How can I write SQL subquery using cake…
今天在wamp下安装cakephp3.x的时候,报出这么一条错误:Fatal error: You must enable the intl extension to use CakePHP. in D:\wamp1\www\cakephp\config\bootstrap.php on line 38.查了很多资料,发现还是没用!最后,看cakephp手册Cookbook 3.x才发现早已经有了解决方案: In WAMP, the intl extension is "activated&qu…
在用find获取数据后,我们要对所获取到的数据做一些处理,这时,直接在模型层覆盖cakephp内置的回调函数,使用find时会自动调用. 其中$baomings 就是find 到的 $this->data public function afterFind($baomings) { foreach ($baomings as $key => $val) { $baomings[$key]['Baoming']['status_cn'] = "未知"; if ($val['B…
目前在完成一个PayPal的支付页面,需要有PHP的开发环境,同时,在开发时使用了CakePHP的框架,于是就有了下面的情景. 操作环境: OS:ubuntu-14.04.2-desktop-amd64 mysql --version:mysql  Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3 whereis mysql :mysql: /usr/bin/mysql /etc/mysql /u…
在配置好cakephp之后,我们输入网址后都一般默认显示index/index 文件,那么怎么设置呢? 1.D:\www\cakephp\app\Config\routes.php…
在新搭建好cakephp矿建时,准备开发的时候我们会发现页面上有cakephp的标识,影响美观,和开发任务.那么怎么去掉呢? 1.找到FrontDesk\app\View\Layouts\default.ctp文件 2.复制一份备份保留为default.ctp1 3.屏蔽或者删除非必要部分 4.测试效果…
1. class CI_Controller { private static $instance; /** * Constructor */ public function __construct() { self::$instance =& $this; // Assign all the class objects that were instantiated by the // bootstrap file (CodeIgniter.php) to local class variabl…