Herkes Hey, ben bir Google Takvim bağlanmak ve ekleme / düzenleme / silme olayları gibi çeşitli şeyler yapmak için Zend_GData Paketi kullanıyorum. Ancak, bu oldukça pahalı operasyonlar olduğunu bulmak ve bazen tamamlamak için görünür bir 4 saniye sürebilir. Ben kodu optimize etmek ve daha hızlı hale getirmek için yapabileceği bir şey olup olmadığını merak ediyorum? İşte benim eklenti fonksiyonun bir örneğidir:
function add_gcal($title, $date, $where, $desc){
$newIncludePath = array();
$newIncludePath[] = '../ZendGdata-1.8.4PL1/library';
$newIncludePath = implode($newIncludePath);
set_include_path($newIncludePath);
// load classes
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
Zend_Loader::loadClass('Zend_Http_Client');
// connect to service
$user = "******";
$pass = "******";
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
try {
$gdataCal = new Zend_Gdata_Calendar($client);
$newEvent = $gdataCal->newEventEntry();
$newEvent->title = $gdataCal->newTitle($title);
$newEvent->where = array($gdataCal->newWhere($where));
$newEvent->content = $gdataCal->newContent("$desc");
$when = $gdataCal->newWhen();
$when->startTime = $date;
$when->endTime = $date;
$newEvent->when = array($when);
$createdEvent = $gdataCal->insertEvent($newEvent);
return $createdEvent->id->text;
} catch (Zend_Gdata_App_Exception $e) {
return NULL;
}
}
Ben herhangi bir iyileştirme yapabilirsiniz eğer herkes görüyor mu? Her bir fonksiyon için (/ düzenlemek ekleme / silme), ben sınıfları yüklemek ve servise bağlanmak buna benzer bir şey, yapmak zorunda ...
Teşekkürler!
EDIT:
Ben bir kez giriş üzerine $ istemci bağlantı ayarı, ve sonra ben takvimde bir işlem yapmak için gereken her zaman re-ebil kullanma a OTURUM değişken olarak $ müşteri saklamak çalıştı. Bu benim şu Zend_GData_App_Exception almak, çalışmak için görünmüyor:
exception 'Zend_Gdata_App_HttpException' with message 'Argument is not an instance of Zend_Http_Client.'
in /home/content/*****/html/ZendGdata-1.8.4PL1/library/Zend/Gdata/App.php:247
Stack trace:
#0 /home/content/*****/html/ZendGdata-1.8.4PL1/library/Zend/Gdata/App.php(172):
Zend_Gdata_App->setHttpClient(Object(__PHP_Incomplete_Class), 'MyCompany-MyApp...')
#1 /home/content/*****/html/ZendGdata-1.8.4PL1/library/Zend/Gdata.php(107):
Zend_Gdata_App->__construct(Object(__PHP_Incomplete_Class), 'MyCompany-MyApp...')
#2 /home/content/*****/html/ZendGdata-1.8.4PL1/library/Zend/Gdata/Calendar.php(87):
Zend_Gdata->__construct(Object(__PHP_Incomplete_Class), 'MyCompany-MyApp...')
#3 /home/content/*****/html/scripts/functions.php(85):
Zend_Gdata_Calendar->__construct(Object(__PHP_Incomplete_Class))
#4 /home/content/*****/html/calendar/modify_duty.php(68):
add_gcal(Object(__PHP_Incomplete_Class), 'R4 - Stephen Au...', '2009-08-19', 'Building: Liva ...', 'Primary')
#5 {main}
Ben de bu kullanarak çalıştı:
// connect to service
$user = "******";
$pass = "******";
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
$client->setConfig(array('keepalive' => true));
Ben burada hataları olsun, ama hala yavaş. Ben giriş üzerine bu yapıyor ve ben yukarıda yaptığım gibi aynı hata var gibi, bir OTURUM değişken ayarlama değilim. Bu hiçbir hatayı alırken hala yeni bir bağlantı her zaman yapmak gibi, nasıl ben tam olarak kullanmak istiyorsunuz ... Bana öyle geliyor?