PHP 클래스 Horde_ActiveSync_Driver_Base, horde

저자: Michael J Rubinsky ([email protected])
파일 보기 프로젝트 열기: horde/horde 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
$_authPass string User password
$_authUser string Authenticating user
$_device Horde_ActiveSync_Device The device object
$_logger Horde_Log_Logger Logger instance
$_params array Parameters
$_state Horde_ActiveSync_State_Base The state driver for this request. Needs to be injected into this class.
$_tempMap array Temporary serverid to uid map. Used when creating the hierarchy for the first time
$_typeMap
$_user string The username to sync with the backend as
$_version float Protocol version

공개 메소드들

메소드 설명
__construct ( array $params = [] ) : Horde_ActiveSync_Driver Const'r
__destruct ( ) Prevent circular dependency issues.
addDefaultBodyPrefTruncation ( array $bodyprefs ) : array Add default truncation values for this driver.
authenticate ( string $username, string $password, string $domain = null ) : mixed Any code needed to authenticate to backend as the actual user.
autoDiscover ( ) : array Return properties for an AUTODISCOVER request.
buildFbString ( stdClass $fb, Horde_Date $start, Horde_Date $end ) : string Build a EAS style FB string. Essentially, each digit represents 1/2 hour.
changeFolder ( string $id, string $displayname, string $parent, string $uid = null ) : Horde_ActiveSync_Message_Folder Change a folder on the server.
changeMessage ( string $folderid, string $id, Horde_ActiveSync_Message_Base $message, Horde_ActiveSync_Device $device ) : array | boolean Add/Edit a message
clearAuthentication ( ) : boolean Clear authentication
deleteFolder ( string $id, string $parent = Horde_ActiveSync::FOLDER_ROOT ) Delete a folder on the server.
deleteMessage ( string $folderid, array $ids ) Delete a message
fetch ( string $folderid, string $id, array $collection ) : Horde_ActiveSync_Message_Base Obtain the FULL message from the backend, regardless of any truncation options.
getAttachment ( string $name, array $options = [] ) : array Return the specified attachment.
getCurrentPolicy ( ) : array Return the security policies.
getFolder ( string $id ) : Horde_ActiveSync_Message_Folder Return the ActiveSync message object for the specified folder.
getFolderList ( ) : array Get the list of folder stat arrays @see self::statFolder()
getFolders ( ) : array Return an array of folder objects.
getFreebusy ( string $user, array $options = [] ) : mixed Request freebusy information from the server
getHeartbeatConfig ( ) : array Obtain the ping heartbeat settings
getMessage ( string $folderid, string $id, array $collection ) : Horde_ActiveSync_Message_Base Obtain an ActiveSync message from the backend.
getProvisioning ( ) : mixed Returns the provisioning support for the current request.
getSearchResults ( string $type, array $query ) : array Returns array of items which contain contact information
getServerChanges ( string $folderId, integer $from_ts, integer $to_ts, integer $cutoffdate, boolean $ping ) : array Get a list of server changes that occured during the specified time period.
getSettings ( array $settings, Horde_ActiveSync_Device $device ) : array Return settings from the backend for a SETTINGS request.
getSpecialFolderNameByType ( string $type ) : string Return the server id of the specified special folder type.
getSyncStamp ( $collection ) : integer Return the SyncStamp - the value used to determine the end of the current sync range. Default implementation uses timestamps. Concrete drivers can override this to provide another method to do this, such as using modification sequences.
getUser ( ) : string Get the username for this request.
getUsernameFromEmail ( string $email ) : string Attempt to guess a username based on the email address passed from EAS Autodiscover requests.
getWasteBasket ( string $class ) : string | boolean Get the wastebasket folder.
itemOperationsFetchMailbox ( string $longid, array $bodyprefs, boolean $mimesupport ) : Horde_ActiveSync_Message_Base Returnmail object represented by the specified longid. Used to fetch email objects from a search result, which only returns a 'longid'.
itemOperationsGetAttachmentData ( string $filereference ) Return the specified attachement data for an ITEMOPERATIONS request.
itemOperationsGetDocumentLibraryLink ( string $linkid, array $cred ) : array Return a documentlibrary item.
meetingResponse ( array $response ) : string Hanlde meeting responses.
moveMessage ( string $folderid, array $ids, string $newfolderid ) : array Move message
resolveRecipient ( string $type, string $search, array $options = [] ) : array Handle ResolveRecipient requests
sendMail ( mixed $rfc822, integer $forward = null, integer $reply = null, string $parent = null, boolean $save = true ) : boolean Sends the email represented by the rfc822 string received by the client.
setDevice ( Horde_ActiveSync_Device $device ) Set the currently connected device
setLogger ( Horde_Log_Logger $logger ) Setter for the logger instance
setProtocolVersion ( float $version ) Set the protocol version. Can't do it in constructer since we don't know the version at the time this driver is instantiated.
setReadFlag ( string $folderid, integer $uid, integer $flag ) Set the read (\seen) flag on the specified message.
setSettings ( array $settings, Horde_ActiveSync_Device $device ) : array Set backend settings from a SETTINGS request.
setup ( string $user ) : boolean Setup sync parameters. The user provided here is the user the backend will sync with. This allows you to authenticate as one user, and sync as another, if the backend supports this.
statFolder ( string $id, mixed $parent, mixed $mod = null ) : a Stat folder. Note that since the only thing that can ever change for a folder is the name, we use that as the 'mod' value.
statMailMessage ( string $folderid, integer | array $id ) : array Build a stat structure for an email message.
statMessage ( string $folderId, string $id ) : hash Get a message stat.

보호된 메소드들

메소드 설명
_getClassFromType ( integer $type ) : string Convert a TYPE constant into it's associated CLASS constant.
_getFolderUidForBackendId ( string $id, string $type = null, string $old_id = null ) : string Get an activesync uid for the given backend serverid. If we've seen this serverid before, return the previously created uid, otherwise return a new one.

메소드 상세

__construct() 공개 메소드

Const'r
public __construct ( array $params = [] ) : Horde_ActiveSync_Driver
$params array Any configuration parameters or injected objects the concrete driver may need. - logger: (Horde_Log_Logger) The logger. DEFAULT: none (No logging). - state: (Horde_ActiveSync_State_Base) The state driver. DEFAULT: none (REQUIRED).
리턴 Horde_ActiveSync_Driver

__destruct() 공개 메소드

Prevent circular dependency issues.
public __destruct ( )

_getClassFromType() 보호된 메소드

Convert a TYPE constant into it's associated CLASS constant.
protected _getClassFromType ( integer $type ) : string
$type integer The TYPE.
리턴 string The CLASS

_getFolderUidForBackendId() 보호된 메소드

Get an activesync uid for the given backend serverid. If we've seen this serverid before, return the previously created uid, otherwise return a new one.
부터: 2.4.0
protected _getFolderUidForBackendId ( string $id, string $type = null, string $old_id = null ) : string
$id string The server's current folder name E.g., INBOX
$type string The folder type, a Horde_ActiveSync::FOLDER_TYPE_* constant. If empty, assumes FOLDER_TYPE_USER_MAIL
$old_id string The previous folder name for this folder, if the folder is being renamed. @since 2.15.0 @todo This is tempoarary until 3.0 (H6) when we will have the collection manager take care of ALL of the folder name <-> UID mapping management.
리턴 string A unique identifier for the specified backend folder id. The first character indicates the foldertype as such: 'F' - Email 'C' - Contact 'A' - Appointment 'T' - Task 'N' - Note

addDefaultBodyPrefTruncation() 공개 메소드

Add default truncation values for this driver.
사용 중단: Will be removed in 3.0. We don't need and indeed shouldn't set default values for truncationsize. Not to mention we were setting the incorrect constant value instead of the byte value.
public addDefaultBodyPrefTruncation ( array $bodyprefs ) : array
$bodyprefs array BODYPREFERENCE data.
리턴 array The BODYPREFERENCE data, with default truncationsize values.

authenticate() 공개 메소드

Any code needed to authenticate to backend as the actual user.
public authenticate ( string $username, string $password, string $domain = null ) : mixed
$username string The username to authenticate as
$password string The password
$domain string The user domain (unused in this driver).
리턴 mixed Boolean true on success, boolean false on credential failure or Horde_ActiveSync::AUTH_REASON_* constant on policy failure.

autoDiscover() 추상적인 공개 메소드

Return properties for an AUTODISCOVER request.
abstract public autoDiscover ( ) : array
리턴 array An array of properties.

buildFbString() 공개 정적인 메소드

The values are as follows: 0 - Free 1 - Tentative 2 - Busy 3 - OOF 4 - No data available. Though currently we only provide a Free/Busy/Unknown differentiation.
부터: 2.4.0
public static buildFbString ( stdClass $fb, Horde_Date $start, Horde_Date $end ) : string
$fb stdClass The fb information. An object containing: - s: The start of the period covered. - e: The end of the period covered. - b: An array of busy periods.
$start Horde_Date The start of the period requested by the client.
$end Horde_Date The end of the period requested by the client.
리턴 string The EAS freebusy string.

changeFolder() 추상적인 공개 메소드

Change a folder on the server.
abstract public changeFolder ( string $id, string $displayname, string $parent, string $uid = null ) : Horde_ActiveSync_Message_Folder
$id string The server's folder id
$displayname string The new display name.
$parent string The folder's parent, if needed.
$uid string The existing folder uid, if this is an edit. @since 2.9.0 (@todo Look at this for H6. It's here now to save an extra DB lookup for data we already have.)
리턴 Horde_ActiveSync_Message_Folder

changeMessage() 추상적인 공개 메소드

Add/Edit a message
abstract public changeMessage ( string $folderid, string $id, Horde_ActiveSync_Message_Base $message, Horde_ActiveSync_Device $device ) : array | boolean
$folderid string The server id for the folder the message belongs to.
$id string The server's uid for the message if this is a change to an existing message, null if new.
$message Horde_ActiveSync_Message_Base The activesync message
$device Horde_ActiveSync_Device The device information
리턴 array | boolean A stat array if successful, otherwise false.

clearAuthentication() 공개 메소드

Clear authentication
public clearAuthentication ( ) : boolean
리턴 boolean

deleteFolder() 추상적인 공개 메소드

Delete a folder on the server.
abstract public deleteFolder ( string $id, string $parent = Horde_ActiveSync::FOLDER_ROOT )
$id string The server's folder id.
$parent string The folder's parent, if needed.

deleteMessage() 추상적인 공개 메소드

Delete a message
abstract public deleteMessage ( string $folderid, array $ids )
$folderid string The folder id containing the messages.
$ids array An array of message ids to delete.

fetch() 공개 메소드

Obtain the FULL message from the backend, regardless of any truncation options.
public fetch ( string $folderid, string $id, array $collection ) : Horde_ActiveSync_Message_Base
$folderid string Folder id containing data to fetch.
$id string Server id of data to fetch.
$collection array The collection data.
리턴 Horde_ActiveSync_Message_Base The message data

getAttachment() 추상적인 공개 메소드

Return the specified attachment.
abstract public getAttachment ( string $name, array $options = [] ) : array
$name string The attachment identifier. For this driver, this consists of 'mailbox:uid:mimepart'
$options array Any options requested. Currently supported: - stream: (boolean) Return a stream resource for the mime contents.
리턴 array The attachment in the form of an array with the following structure: array('content-type' => {the content-type of the attachement}, 'data' => {the raw attachment data})

getCurrentPolicy() 추상적인 공개 메소드

Return the security policies.
abstract public getCurrentPolicy ( ) : array
리턴 array An array of provisionable properties and values.

getFolder() 추상적인 공개 메소드

Return the ActiveSync message object for the specified folder.
abstract public getFolder ( string $id ) : Horde_ActiveSync_Message_Folder
$id string The folder's server id.
리턴 Horde_ActiveSync_Message_Folder object.

getFolderList() 추상적인 공개 메소드

Get the list of folder stat arrays @see self::statFolder()
abstract public getFolderList ( ) : array
리턴 array An array of folder stat arrays.

getFolders() 추상적인 공개 메소드

Return an array of folder objects.
abstract public getFolders ( ) : array
리턴 array An array of Horde_ActiveSync_Message_Folder objects.

getFreebusy() 추상적인 공개 메소드

Request freebusy information from the server
사용 중단: Will be removed in 3.0 - this is provided by resolveRecipients
abstract public getFreebusy ( string $user, array $options = [] ) : mixed
$user string The user to request FB information for.
$options array Options.
리턴 mixed boolean|array The FB information, if available. Otherwise false.

getHeartbeatConfig() 공개 메소드

Obtain the ping heartbeat settings
public getHeartbeatConfig ( ) : array
리턴 array

getMessage() 추상적인 공개 메소드

Obtain an ActiveSync message from the backend.
abstract public getMessage ( string $folderid, string $id, array $collection ) : Horde_ActiveSync_Message_Base
$folderid string The server's folder id this message is from
$id string The server's message id
$collection array The colletion data. May contain things like: - mimesupport: (integer) Indicates if the device has MIME support. DEFAULT: 0 (No MIME support) - truncation: (integer) Non-MIME truncation limit. Anything larger than this amount of bytes will be truncated. DEFAULT: 0 (No truncation) - mimetruncation: (integer) MIME truncation limit. Anything larger than this amount of bytes will be truncated. DEFAULT: 0 (No truncation) - bodyprefs: (array) The bodypref array from the device.
리턴 Horde_ActiveSync_Message_Base The message data

getProvisioning() 추상적인 공개 메소드

Returns the provisioning support for the current request.
abstract public getProvisioning ( ) : mixed
리턴 mixed The value of the provisiong support flag.

getSearchResults() 추상적인 공개 메소드

Returns array of items which contain contact information
abstract public getSearchResults ( string $type, array $query ) : array
$type string The search type; ['gal'|'mailbox']
$query array The search query. An array containing: - query: (string) The search term. DEFAULT: none, REQUIRED - range: (string) A range limiter. DEFAULT: none (No range used).
리턴 array An array containing: - rows: An array of search results - status: The search store status code.

getServerChanges() 추상적인 공개 메소드

Get a list of server changes that occured during the specified time period.
abstract public getServerChanges ( string $folderId, integer $from_ts, integer $to_ts, integer $cutoffdate, boolean $ping ) : array
$folderId string The server id of the collection to check.
$from_ts integer The starting timestamp.
$to_ts integer The ending timestamp.
$cutoffdate integer The earliest date to retrieve back to.
$ping boolean If true, returned changeset may not contain the full changeset, may only contain a single change, designed only to indicate *some* change has taken place. The value should not be used to determine *what* change has taken place.
리턴 array A list of messge uids that have chnaged in the specified time period.

getSettings() 추상적인 공개 메소드

Return settings from the backend for a SETTINGS request.
abstract public getSettings ( array $settings, Horde_ActiveSync_Device $device ) : array
$settings array An array of settings to return.
$device Horde_ActiveSync_Device The device to obtain settings for.
리턴 array The requested settings.

getSpecialFolderNameByType() 추상적인 공개 메소드

Return the server id of the specified special folder type.
abstract public getSpecialFolderNameByType ( string $type ) : string
$type string The self::SPECIAL_* constant.
리턴 string The folder's server id.

getSyncStamp() 공개 메소드

Return the SyncStamp - the value used to determine the end of the current sync range. Default implementation uses timestamps. Concrete drivers can override this to provide another method to do this, such as using modification sequences.
public getSyncStamp ( $collection ) : integer
$collection string The collection id we are currently requesting.
리턴 integer The SyncStamp

getUser() 공개 메소드

Get the username for this request.
public getUser ( ) : string
리턴 string The current username

getUsernameFromEmail() 추상적인 공개 메소드

Attempt to guess a username based on the email address passed from EAS Autodiscover requests.
abstract public getUsernameFromEmail ( string $email ) : string
$email string The email address
리턴 string The username to use to authenticate to Horde with.

getWasteBasket() 추상적인 공개 메소드

Get the wastebasket folder.
abstract public getWasteBasket ( string $class ) : string | boolean
$class string The collection class.
리턴 string | boolean Returns name of the trash folder, or false if not using a trash folder.

itemOperationsFetchMailbox() 추상적인 공개 메소드

Returnmail object represented by the specified longid. Used to fetch email objects from a search result, which only returns a 'longid'.
abstract public itemOperationsFetchMailbox ( string $longid, array $bodyprefs, boolean $mimesupport ) : Horde_ActiveSync_Message_Base
$longid string The unique search result identifier.
$bodyprefs array The bodypreference array.
$mimesupport boolean Mimesupport flag.
리턴 Horde_ActiveSync_Message_Base The message requested.

itemOperationsGetAttachmentData() 추상적인 공개 메소드

Return the specified attachement data for an ITEMOPERATIONS request.
abstract public itemOperationsGetAttachmentData ( string $filereference )
$filereference string The attachment identifier.

meetingResponse() 추상적인 공개 메소드

Hanlde meeting responses.
abstract public meetingResponse ( array $response ) : string
$response array The response data. Contains: - requestid: The identifier of the meeting request. Used by the server to fetch the original meeting request details. - response: The user's response to the request. One of the response code constants. - folderid: The collection id that contains the meeting request.
리턴 string The UID of any created calendar entries, otherwise false.

moveMessage() 추상적인 공개 메소드

Move message
abstract public moveMessage ( string $folderid, array $ids, string $newfolderid ) : array
$folderid string Existing folder id
$ids array Message UIDs
$newfolderid string The new folder id
리턴 array The new uids for the message.

resolveRecipient() 추상적인 공개 메소드

Handle ResolveRecipient requests
abstract public resolveRecipient ( string $type, string $search, array $options = [] ) : array
$type string The type of recipient request. e.g., 'certificate'
$search string The email to resolve.
$options array
리턴 array An array of results containing any of the following: - type: (string) The type of result a GAL entry or personal address book entry. A Horde_ActiveSync::RESOLVE_RESULT constant. - displayname: (string) The display name of the contact. - emailaddress: (string) The emailaddress. - entries: (array) An array of certificates. - availability: (string) A EAS style FB string. - picture: (Horde_ActiveSync_Message_ResolveRecipientsPicture)

sendMail() 추상적인 공개 메소드

Sends the email represented by the rfc822 string received by the client.
abstract public sendMail ( mixed $rfc822, integer $forward = null, integer $reply = null, string $parent = null, boolean $save = true ) : boolean
$rfc822 mixed The rfc822 mime message, a string or stream resource.
$forward integer The UID of the message, if forwarding.
$reply integer The UID of the message if replying.
$parent string The collection id of parent message if forwarding/replying.
$save boolean Save in sent messages.
리턴 boolean

setDevice() 공개 메소드

Set the currently connected device
public setDevice ( Horde_ActiveSync_Device $device )
$device Horde_ActiveSync_Device The device object.

setLogger() 공개 메소드

Setter for the logger instance
public setLogger ( Horde_Log_Logger $logger )
$logger Horde_Log_Logger The logger

setProtocolVersion() 공개 메소드

Set the protocol version. Can't do it in constructer since we don't know the version at the time this driver is instantiated.
public setProtocolVersion ( float $version )
$version float The EAS protocol version to use.

setReadFlag() 추상적인 공개 메소드

Set the read (\seen) flag on the specified message.
사용 중단: Will be removed in 3.0, use changeMessage() instead.
abstract public setReadFlag ( string $folderid, integer $uid, integer $flag )
$folderid string The folder id containing the message.
$uid integer The message IMAP UID.
$flag integer The value to set the flag to.

setSettings() 추상적인 공개 메소드

Set backend settings from a SETTINGS request.
abstract public setSettings ( array $settings, Horde_ActiveSync_Device $device ) : array
$settings array The settings to store.
$device Horde_ActiveSync_Device The device to store settings for.
리턴 array An array of status responses for each set request. e.g.,: array('oof' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS, 'deviceinformation' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS);

setup() 공개 메소드

Setup sync parameters. The user provided here is the user the backend will sync with. This allows you to authenticate as one user, and sync as another, if the backend supports this.
public setup ( string $user ) : boolean
$user string The username to sync as on the backend.
리턴 boolean

statFolder() 추상적인 공개 메소드

Stat folder. Note that since the only thing that can ever change for a folder is the name, we use that as the 'mod' value.
abstract public statFolder ( string $id, mixed $parent, mixed $mod = null ) : a
$id string The folder id
$parent mixed The parent folder (or 0 if none).
$mod mixed Modification indicator. For folders, this is the name of the folder, since that's the only thing that can change.
리턴 a stat hash

statMailMessage() 추상적인 공개 메소드

Build a stat structure for an email message.
abstract public statMailMessage ( string $folderid, integer | array $id ) : array
$folderid string The mailbox name.
$id integer | array The message(s) to stat (IMAP UIDs).
리턴 array

statMessage() 추상적인 공개 메소드

Get a message stat.
abstract public statMessage ( string $folderId, string $id ) : hash
$folderId string The folder id
$id string The message id (??)
리턴 hash with 'id', 'mod', and 'flags' members

프로퍼티 상세

$_authPass 보호되어 있는 프로퍼티

User password
protected string $_authPass
리턴 string

$_authUser 보호되어 있는 프로퍼티

Authenticating user
protected string $_authUser
리턴 string

$_device 보호되어 있는 프로퍼티

The device object
부터: 2.12.0
protected Horde_ActiveSync_Device $_device
리턴 Horde_ActiveSync_Device

$_logger 보호되어 있는 프로퍼티

Logger instance
protected Horde_Log_Logger $_logger
리턴 Horde_Log_Logger

$_params 보호되어 있는 프로퍼티

Parameters
protected array $_params
리턴 array

$_state 보호되어 있는 프로퍼티

The state driver for this request. Needs to be injected into this class.
protected Horde_ActiveSync_State_Base $_state
리턴 Horde_ActiveSync_State_Base

$_tempMap 보호되어 있는 프로퍼티

Temporary serverid to uid map. Used when creating the hierarchy for the first time
protected array $_tempMap
리턴 array

$_typeMap 보호되어 있는 프로퍼티

protected $_typeMap

$_user 보호되어 있는 프로퍼티

The username to sync with the backend as
protected string $_user
리턴 string

$_version 보호되어 있는 프로퍼티

Protocol version
protected float $_version
리턴 float