View Code PHP
<?php class SmsApi { public static function create($smsprovider){ $sms = null; switch ($smsprovider) { case 'duanxinwang': $sms = new DuanXinWang(); break; case 'baidusms': $sms = new BaiduSms(); break; } return $sms; } } class DuanXinWang { public function getsms(){ } } class BaiduSms { public function getsms(){ } } //使用方法 $sms = SmsApi::create(C('SMS_PROVIDER'));//此可通过配置读取 短信商 C('SMS_PROVIDER') =duanxinwang $sms->getsms(); |
以下为增加版
View Code PHP
<?php class SmsApi { public static function create($smsprovider){ $sms = null; $sms= new $smsprovider(); //如果使用了命名空间,这里一定要带上 return $sms; } } class DuanXinWang { public function getsms(){ echo 'duanxinwang'; } } class BaiduSms { public function getsms(){ } } //使用方法 $sms = SmsApi::create('DuanXinWang');//此可通过配置读取 短信商 C('SMS_PROVIDER') =DuanXinWang $sms->getsms(); ?> |
相关博文
PHP 设计模式-工厂类