php框架架构构思

为什么用复数形式做表名

期待cakphp1.3的stable版本

http://thechaw.com是由cakephp1.3建成的,也介绍了1.3的程序和进度

关于session的两个有用函数

session_unset();销毁session变量
session_destroy();删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留
因此,释放用户的session所有资源,需要顺序执行如下代码:
程序代码
$_SESSION['user'] = ‘tony’;
session_unset();
session_destroy();

xdebug安装中遇到的问题

在xdebug.org下载了对应的xdebug.dll,对应是指与我的php5.25版本相对应的debug,按照官方的指示,我把用zend方法,而并非extension方法,这句话是指用zend_extension_ts=”c:/php/ext/php_xdebug.dll”替换zend_extension_ts=”..\..\ZendOptimizer\ZendExtensionManager.dll”,我一直把前者放在extension下面,而并非文件的最后一行,另外一定要把最后一行zend_extension_ts=”..\..\ZendOptimizer\ZendExtensionManager.dll”给替换掉,否则永远安装不会成功

重温PHP基础

最近比较忙,没有在做cakephp项目,对大家的问题并没有一一解答,在此表示歉意,保证以后有时间会及时解决问题的
1、var_dump()函数,输出表达式的结构信息,包括表达式的类型与值,而print_r只显示值,不显示类型。
2、Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。建议在linux下安装使用,如果安装成功
$mem = new Memcache;
$mem->connect(”127.0.0.1″, 11211);
$mem->set(’key’, ‘This is a memcached test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
如果输出This is a memcached test!刚表明安装成功。
把数据库查询信息放在memcache,用户每次访问,进行数据匹配,如果不同更换mem数据,否则直接跳出直接访问。
一般情况下会有多台memcache服务器,毕竟一台服务器的内存是有限的。
3、error_reporting 设定错误讯息回报的等级,方便错误信息。
4、method_exists 创建一个新的对象,判断本对象是否存在某个方法
5、instanceof 测定创建的对象属于哪个类
6、__autoload 自动加载类文件,不使用不会加载
7、set_exception_handler和set_error_handler ,前者是异常处理函数,发生异常时可调用一个自定义函数,后者跟error_reporting 类似,如果设置了后者error_reporting 将失效,两者是为系统安全设置的。
8、date_default_timezone_set 设定用于一个脚本中所有日期时间函数的默认时区
说明
9、sql语句的安全问题,外来变量一定要追加引号,以避免SQL注入等安全事件的发生,例如下面代码:
$sql = “SELECT * FROM tb_users WHERE uid=’$uid’”;
$sql = “update `users` set `name`={$value['stepuser']} where `adv_id`=1″;
10、如果你的服务器在国外,时区跟中国有差别,可以定义时区date_default_timezone_set(’Asia/Shanghai’);
11、判断文件是否存在和可读if(file_exists($file_path) && is_readable($file_path))

实现头像上传及剪切功能(cakephp+jquery)

此功能的优点就不多说了,具体实现如下:

在同一个模型中建立两重关系,不需要时删除关系

参考:http://book.cakephp.org/cn/view/851/Multiple-relations-to-the-same-model
由于系统需要有站内信功能,故建立mails表,包括mail_id from_user_id to_user_id等等。
mail的模型:
var $belongsTo = array(
‘Sender’ => array(’className’ => ‘User’,
‘foreignKey’ => ‘from_user_id’,
‘dependent’ => false,
‘fields’=> array(’Sender.user_id’,'Sender.nickname’),
‘order’ => ”
),
‘Recipient’ => array(’className’ => ‘User’,
‘foreignKey’ => ‘to_user_id’,
‘dependent’ => false,
‘fields’=> array(’Recipient.user_id’,'Recipient.nickname’),
‘order’ => ”
)
);
控制器:
function sendbox() {
$this->Mail->unbindAndPushModels(
array(’belongsTo’ => array(’Sender’))
);
//$brands = $this->Mail->find(’all’);
$this->set(’mails’,$this->paginate(’Mail’,array(’Mail.from_user_id’ => $this->Auth->user(’user_id’),’Mail.status’ => 1)));
}

分页unbindModel失效解决办法

建立appmodel.php页面,建立函数
function unbindAndPushModels($params)
{
$backAssociation = array();
foreach($params as $assoc => $models) {
foreach($models as $model) {
if(isset($this->{$assoc}[$model])) {
$backAssociation[$assoc][$model] = $this->{$assoc}[$model];
unset($this->{$assoc}[$model]);
}
}
}
return $backAssociation;
}
在控制器下
$this->Mail->unbindAndPushModels(
array(’belongsTo’ => array(’Recipient’))
);

推荐新东方

想提高英语水平的同学与朋友,推荐去新东方学习,老师比高中大学老师讲的好多了

关于升级mysql5.1的注意事项

为了使用mysql5.1的新功能,花费了一整天的时间升级它,几费周折,终于搞定。
简单描述一下过程
备份原有数据,删除当前mysql,下载最新no rpm包,安装包及修改/usr/local/mysql权限及所属,在linux下面看到mysql启动成功,apache正常运行,可是打开phpmyadmin后,只能打开首页面,登录后没有任何提示不说,还跳转到错误页面。
然后卸载php5.22,下载安装5.27,安装成功,倒入旧表,修改权限,正常使用。

 Page 1 of 6  1  2  3  4  5 » ... ; ;Last » ;