单例模式:简单的说,一个对象只负责一个特定的任务。
<?php
class DanLi{
//静态成员变量
private static $_instance;
//私有的构造方法
private function __construct(){
}
//防止对象被克隆
public function __clone(){
trigger_error('Clone is not allow!',E_USER_ERROR);
}
public static function getInstance(){
if(!(self::$_instance instanceof self)){
self::$_instance = new self;
}
return self::$_instance;
}
public function test(){
echo "ok";
}
}
//错误:$danli = new DanLi(); $danli_clone = clone $danli;
//正确:$danli = DanLi::getInstance(); $danli->test();
?>
本文链接
前几天要帮人测试一个wp的网站,对方要求先在a主机折腾,完了上b主机运行。wordpress的各种插件,模板参数设置,也是费时间的。由于不能用phpmyadmin ,所以就查找一下 wordpress 的官方网,想弄个帝国备份之类的插件。
一开始是准备用backwpup,这个也是个非常出名的wp自动备份插件,可以说是好评如潮。
找了个国外的是视频教程,里面演练了一番插件的使用。本以为一切妥当。
临到要用了才发现找不到tools选项。数据恢复这个功能在免费版被淹割了。中指都懒得束了。
又试了几个,费了半天劲终于找到一个符合要求的插件。wordpress搬家成功,支持一键换域名,ftp数据传送。几分钟就搞定。当然,我试的时候费了不少时间,搞残了一个站,因为换域名弄错了。OK,前面罗嗦了。
进入正题:Wordpress 搬家插件-换空间换域名之一键搞定:Wordpress Move,图文教程/
先下载插件,http://wordpress.org/extend/plugins/wordpress-move/
上传,启动就免谈了。一般是新旧两个站都要装一下这个插件。
///////////////////////////////////////////////////////////////////////////////////////////////////////
1,先在旧站备份一下,不备份就不能传,(废话了)
备份数据库,备份文件加数据库都可以。
2,备份完了要设置一下ftp先,否则等转移的时候在设置会很卡的。
这里有个要点,就是remote backup path 这个路径必须保证文件传到新网站的插件目录下,传到别的位置,新网站的插件会找不到备份数据,无法恢复。
3,转文件
选migrate 项目的begin。
4.
,
5,恢复数据。点击3图中的 restore项目就可以啦。
只要设置正确,10分钟就可以搞定啦。
本文链接
<?php
//对象
class MyObject{
public function __construct(){}
public function test(){
return 'test';
}
}
//工厂
class MyFactory{
public static function factory(){
return new MyObject();
}
}
$myObject = MyFactory::factory();
echo $myObject->test();
?>
<?php
//抽象类 定义属性及抽象方法
abstract class Operation{
protected $_NumberA = 0;
protected $_NumberB = 0;
protected $_Result= 0;
public function __construct($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
}
public function setNumber($A,$B){
$this->_NumberA = $A;
$this->_NumberB = $B;
}
public function clearResult(){
$this->_Result = 0;
}
abstract protected function getResult();
}
//操作类
class OperationAdd extends Operation{
public function getResult(){
$this->_Result = $this->_NumbserA + $this->_NumberB;
return $this->_Result;
}
}
class OperationSub extends Operation{
public function getResult(){
$this->_Result = $this->_NumberA - $this->_NumberB;
return $this->_Result;
}
}
…………
//工厂类
class OperationFactory{
private static $obj;
public static function CreationOperation($type,$A,$B){
switch($type){
case '+':
self::$obj = new OperationAdd($A,$B);
break;
case '-':
self::$obj = new OperationSub($A,$B);
break;
……
}
}
}
//操作
$obj = OperationFactory:: CreationOperation('+',5,6);
echo $obj-> getResult();
?>
本文链接