public function get_db($sql_rewrite = null) { apf_require_file('Mysqli_Database.php'); $db = Mysqli_Database::get_instance(); $db->_sql_rewrite = $sql_rewrite; return $db; }
/** * 邮件发送 * @return boolean */ public function send_mail($recipient, $mailsubject, $mailbody) { apf_require_file("Swift.php"); Swift_ClassLoader::load("Swift_Connection_SMTP"); $message = new Swift_Message($mailsubject); $message->setFrom("安居客<*****@*****.**>"); $message->attach(new Swift_Message_Part(strip_tags($mailbody), "text/plain", "base64", "utf-8")); $message->attach(new Swift_Message_Part($mailbody, "text/html", "base64", "utf-8")); foreach ($recipient as $re) { Mail_Queue::put('*****@*****.**', $re, $mailsubject, $message, Const_Mail::TYPE_SWIFT, Const_Mail::TYPE_ID_COMMUNITY_SUBSCRIBE); } return true; }
/** * 生成二维码后返回内容 * @param $value * @return array */ private function _getQrCodeContent($value) { apf_require_file('phpqrcode.php', 'classes/util/phpqrcode'); $errorCorrectionLevel = "M"; $matrixPointSize = "5"; $image = QRcode::getImage($value, false, $errorCorrectionLevel, $matrixPointSize, 2); ob_start(); ImagePNG($image); $content = ob_get_contents(); ImageDestroy($image); ob_end_clean(); return $content; }
/** * APF主入口,实例化请求类、响应类,然后执行真正的框架流程 */ public function run() { if ($this->get_config('SESSION_START')) { apf_require_file('spider.php'); if (!is_spider()) { $session_domain = $this->get_config('SESSION_DOMAIN'); if (!$session_domain) { $session_domain = $_SERVER['SERVER_NAME']; } ini_set('session.cookie_domain', $session_domain); session_start(); } } $this->prepare(); if (!$this->dispatch()) { echo "Error"; } }
protected function sentMail($mailSubject, $mailBody) { if ($this->mailSwitch == true && !empty($this->mailAddress)) { $mailto = $this->mailAddress; apf_require_file("Swift.php"); Swift_ClassLoader::load("Swift_Connection_SMTP"); $smtpuser = APF::get_instance()->get_config("SmtpUser"); $smtpemailto = $mailto; $message = new Swift_Message($mailSubject); $message->setFrom("安居客<" . $smtpuser . ">"); $message->setTo($smtpemailto); $message->attach(new Swift_Message_Part(strip_tags($mailBody), "text/plain", "base64", "utf-8")); $message->attach(new Swift_Message_Part($mailBody, "text/html", "base64", "utf-8")); foreach ($smtpemailto as $to) { if (!empty($to)) { @Mail_Queue::put($smtpuser, $to, $mailSubject, $message, Const_Mail::TYPE_SWIFT, Const_Mail::TYPE_ID_COMMUNITY_SUBSCRIBE); } } } }
/** * 发送邮件 * @param $mailSubject 标题 * @param $mailBody 内容 * @param array $mailTo 接受人,数组 * @return bool */ public function sendMail($mailSubject, $mailBody, $mailTo = array()) { if (empty($mailSubject) || empty($mailBody) || empty($mailTo)) { return false; } apf_require_file("Swift.php"); Swift_ClassLoader::load("Swift_Connection_SMTP"); $smtpuser = APF::get_instance()->get_config("SmtpUser"); $smtpemailto = $mailTo; $message = new Swift_Message($mailSubject); $message->setFrom("安居客<" . $smtpuser . ">"); $message->setTo($smtpemailto); $message->attach(new Swift_Message_Part(strip_tags($mailBody), "text/plain", "base64", "utf-8")); $message->attach(new Swift_Message_Part($mailBody, "text/html", "base64", "utf-8")); foreach ($smtpemailto as $to) { if (!empty($to)) { @Mail_Queue::put($smtpuser, $to, $mailSubject, $message, Const_Mail::TYPE_SWIFT, Const_Mail::TYPE_ID_COMMUNITY_SUBSCRIBE); } } return true; }
<?php apf_require_file('Stomp.php'); class APF_MQ_Stomp extends Stomp { }
<?php apf_require_class('APF_DFS_DFS'); apf_require_file('MogileFSc.php'); class APF_DFS_MogileFSc implements APF_DFS_DFS { public function init($config) { if ($this->mfs) { throw new Exception("Cannot initialize twice!"); } $mfscfg = $config['mogilefs']; $domain = $mfscfg['domain']; $class = $mfscfg['class']; $trackers = $mfscfg['trackers']; $memcacheds = APF::get_instance()->get_config('memcacheds', 'dfs'); // TODO: validate parameters? // TODO: other parameters like timeouts? $this->mfs = new MogileFSc($domain, $class, $trackers, $memcacheds); } public function load($filename) { return $this->mfs->get($filename); } public function save($filename, $content) { return $this->mfs->set($filename, $content); } public function delete($filename) { return $this->mfs->delete($filename);
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Fluent Logger * * Fluent Logger client communicates to Fluentd with json formatted messages. */ apf_require_file('FluentLogger.php'); class Util_Nlog_FluentLogger extends BaseLogger { const CONNECTION_TIMEOUT = 3; const SOCKET_TIMEOUT = 3; const MAX_WRITE_RETRY = 5; /* 1000 means 0.001 sec */ const USLEEP_WAIT = 1000; /* Fluent uses port 24224 as a default port */ const DEFAULT_LISTEN_PORT = 24224; const DEFAULT_ADDRESS = "127.0.0.1"; /** * backoff strategies: default usleep * * attempts | wait * 1 | 0.003 sec
<?php apf_require_file('PhpAmqpLib.php'); class APF_AMQPLIB_Factory { const CONF_F_AMQP = 'amqp'; private function __construct() { } /** * @return APF_AMQP_Factory */ public static function &get_instance() { if (!self::$instance) { self::$instance = new APF_AMQPLIB_Factory(); } return self::$instance; } private static $instance; /** * @return AMQPConnection */ public function get_connection($name = 'default') { if (!isset($this->connection_list[$name])) { $this->connection_list[$name] = $this->load_connection($name); } return $this->connection_list[$name]; } private $connection_list;
/** * 导入v2类 * @param string $class 类名 * @param string $prefix 父目录 * @param string $firelog * @return boolean */ function apf_require_class($class, $prefix = "classes", $firelog = true) { if (defined('G_LOAD_AUTO') && G_LOAD_AUTO === true) { return true; } if ($prefix == "classes" && class_exists($class)) { return true; } $file = apf_classname_to_filename($class); $flag = true; if (!apf_require_file("{$file}.php", $prefix)) { if ($firelog) { $logger = APF::get_instance()->get_logger(); //出错时的url $error_url = @$_SERVER['REQUEST_URI']; //屏蔽由于某些蜘蛛将url处理成小写时,引发的class not found if (preg_match('#\\.js$|\\.css$#', $error_url)) { return false; } //trigger_error("'$prefix/$class' not found", E_USER_ERROR); $http_host = @$_SERVER['HTTP_HOST']; $http_refer = @$_SERVER['HTTP_REFERER']; $logger->error("'{$prefix}/{$class}' not found error_url : {$http_host}{$error_url} refer : {$http_refer}"); //add by jackie for more error infomation ob_start(); debug_print_backtrace(); $trace = ob_get_contents(); ob_end_clean(); $logger->error($trace); } return false; } return $flag; }
<?php /* * 邮件发送类实现 * */ apf_require_file("Swift.php"); apf_require_class("Mail_Queue"); Swift_ClassLoader::load("Swift_Connection_SMTP"); class Bll_House_UpDown_Worker_MailBll { private static $instance = null; //private $recipient = array('*****@*****.**','*****@*****.**', '*****@*****.**');//邮件接收方 private $recipient = array('*****@*****.**', '*****@*****.**'); //邮件接收方 private $sender = '*****@*****.**'; //邮件发送方 private $subject = ''; public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } /** * 邮件发送 * @param params */ public function send($params = array()) { $mailsubject = $this->getSubject();
<?php apf_require_file('Apache/Solr/Service.php'); apf_require_file('Apache/Solr/HttpTransport/CurlNoReuse.php'); class Util_Solr { /** * service instance * * @var Apache_Solr_Service * @access private */ private $service = null; private $CONFIG_N_SERVICE_CLASSNAME = 'Apache_Solr_Service'; private $CONFIG_N_HTTPTRANSPORT_CLASSNAME = 'Apache_Solr_HttpTransport_CurlNoReuse'; const CONFIG_K_HOST = 'host'; const CONFIG_K_PORT = 'port'; const CONFIG_K_PATH = 'path'; public function __construct($config) { $host = $config[self::CONFIG_K_HOST]; $port = $config[self::CONFIG_K_PORT]; $path = $config[self::CONFIG_K_PATH]; /* loading essetial class definition */ $http_transport = new $this->CONFIG_N_HTTPTRANSPORT_CLASSNAME(); $this->service = new $this->CONFIG_N_SERVICE_CLASSNAME($host, $port, $path, $http_transport); } public function search($query, $params, $offset = 0, $limit = 10) { $retval = false; $logger = APF::get_instance()->get_logger();
<?php /** * Created by PhpStorm. * User: cay * Date: 15-5-4 * Time: 下午2:44 */ //require "autoload.php";//引入微聊SDK apf_require_file("bll/wechat/autoload.php", "classes"); //引入微聊SDK abstract class Bll_Wechat_Wechat { public $appId; //应用id public $appSecret; //应用密钥 public $token; //令牌(公共加密串) public $encodingAESKey; //消息加解密密钥 public $accountId; //公众号在anjuke的id public $wechatId; //公众号的id public function __construct() { $this->init(); } /** * 初始化微信服务的数据
<?php /** * */ apf_require_file('Mysqli_Database.php'); class APF_DB_Mysqli extends Mysqli_Database { private static $instance; public static function &get_instance() { if (!self::$instance) { self::$instance = new APF_DB_Mysqli(); } return self::$instance; } public function query($sql) { APF::get_instance()->benchmark_begin('APF_DB_Mysqli::query'); parent::query($sql); APF::get_instance()->benchmark_end('APF_DB_Mysqli::query'); return $this; } }
function apf_require_class($class, $prefix = "classes", $firelog = true) { if ($prefix == "classes" && class_exists($class)) { return true; } $file = apf_classname_to_filename($class); $flag = true; if (substr($class, 0, 3) == "HK_" && !apf_require_file("{$file}.php", $prefix)) { $class = substr($class, 3); $file = apf_classname_to_filename($class); $flag = false; } if (!apf_require_file("{$file}.php", $prefix)) { if ($firelog) { $logger = APF::get_instance()->get_logger(); //出错时的url $error_url = @$_SERVER['REQUEST_URI']; $http_host = @$_SERVER['HTTP_HOST']; $http_refer = @$_SERVER['HTTP_REFERER']; $logger->error("'{$prefix}/{$class}' not found error_url : {$http_host}{$error_url} refer : {$http_refer}"); //add by jackie for more error infomation ob_start(); debug_print_backtrace(); $trace = ob_get_contents(); ob_end_clean(); $logger->error($trace); } return false; } return $flag; }