====== DownloadService ======
**Layer:** ''Service'' · **Source:** ''lib/service/DownloadService.php:24'' (lines 24–405)
----
class DownloadService
Business logic for download management
======= Docblock Metadata =======
^ Tag ^ Value ^
| ''@category'' | Service Class |
| ''@author'' | M.Noermoehammad |
| ''@license'' | MIT |
| ''@version'' | 1.0 |
| ''@since'' | Since Release 1.0 |
======= Inheritance =======
//No parent, interface or trait. This is a root type.//
======= Constants (0) =======
//None.//
======= Properties (3) =======
^ Visibility ^ Type ^ Name ^ Default ^ Line ^
| ''private'' | ''(untyped)'' | ''$downloadModel'' | | 26 |
| ''private'' | ''(untyped)'' | ''$mediaDao'' | | 27 |
| ''private'' | ''(untyped)'' | ''$sanitizer'' | | 28 |
======= Methods (24) =======
^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''__construct()'' | (undocumented) | 30 |
| public | ''validateDownloadRequest()'' | Validate download request | 43 |
| public | ''getDownloadInfo()'' | Get download info by identifier | 58 |
| public | ''getMediaByIdentifier()'' | Get media by identifier | 69 |
| public | ''isDownloadExpired()'' | Check if download is expired | 86 |
| public | ''isMimeTypeAllowed()'' | Check if MIME type is allowed | 103 |
| public | ''createDownloadRecord()'' | Create download record | 115 |
| public | ''deleteDownloadRecord()'' | Delete download record | 137 |
| public | ''deleteDownloadRecords()'' | Delete multiple download records | 148 |
| public | ''expireDownloadRecord()'' | Expire a download record | 165 |
| public | ''expireDownloadRecords()'' | Expire multiple download records | 182 |
| public | ''regenerateDownloadRecord()'' | Regenerate download identifier | 199 |
| public | ''regenerateDownloadRecords()'' | Regenerate multiple download records | 220 |
| public | ''generateDownloadIdentifier()'' | Generate download identifier | 236 |
| public | ''refreshDownloadExpiry()'' | Refresh download expiry | 259 |
| public | ''getDownloadUrl()'' | Get download URL | 278 |
| public | ''recordDownloadAttempt()'' | Record download attempt | 299 |
| public | ''getDownloadStatistics()'' | Get download statistics | 317 |
| public | ''getDownloadCountByMedia()'' | Get download count by media | 348 |
| public | ''getDownloadsByMedia()'' | Get downloads by media | 359 |
| public | ''getDownloadHistory()'' | Get download history | 370 |
| public | ''getFileTypeDistribution()'' | Get file type distribution | 380 |
| public | ''getRecentDownloads()'' | Get recent downloads | 391 |
| public | ''getAllDownloads()'' | Get all downloads with media info | 401 |
======== __construct() ========
public function __construct(DownloadModel $downloadModel, MediaDao $mediaDao)
//lines 30–35 (6)//
^ Parameter ^ Type ^ Default ^ Description ^
| ''$downloadModel'' | [[scriptlog:lib:model:downloadmodel|''DownloadModel'']] | //required// | //none// |
| ''$mediaDao'' | [[scriptlog:lib:dao:mediadao|''MediaDao'']] | //required// | //none// |
======== validateDownloadRequest() ========
public function validateDownloadRequest($identifier)
//lines 43–50 (8)//
Validate download request
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|null
======== getDownloadInfo() ========
public function getDownloadInfo($identifier)
//lines 58–61 (4)//
Get download info by identifier
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|null
======== getMediaByIdentifier() ========
public function getMediaByIdentifier($identifier)
//lines 69–78 (10)//
Get media by identifier
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array|null
======== isDownloadExpired() ========
public function isDownloadExpired($identifier)
//lines 86–95 (10)//
Check if download is expired
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== isMimeTypeAllowed() ========
public function isMimeTypeAllowed($mimeType)
//lines 103–106 (4)//
Check if MIME type is allowed
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mimeType'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== createDownloadRecord() ========
public function createDownloadRecord($mediaId, $ipAddress)
//lines 115–129 (15)//
Create download record
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | //required// | //none// |
| ''$ipAddress'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — int
======== deleteDownloadRecord() ========
public function deleteDownloadRecord($identifier)
//lines 137–140 (4)//
Delete download record
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== deleteDownloadRecords() ========
public function deleteDownloadRecords($identifiers)
//lines 148–157 (10)//
Delete multiple download records
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifiers'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== expireDownloadRecord() ========
public function expireDownloadRecord($identifier)
//lines 165–174 (10)//
Expire a download record
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== expireDownloadRecords() ========
public function expireDownloadRecords($identifiers)
//lines 182–191 (10)//
Expire multiple download records
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifiers'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== regenerateDownloadRecord() ========
public function regenerateDownloadRecord($identifier)
//lines 199–212 (14)//
Regenerate download identifier
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — string|false
======== regenerateDownloadRecords() ========
public function regenerateDownloadRecords($identifiers)
//lines 220–229 (10)//
Regenerate multiple download records
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifiers'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== generateDownloadIdentifier() ========
public function generateDownloadIdentifier()
//lines 236–251 (16)//
Generate download identifier
//Takes no parameters.//
**Returns:** ''(none declared)'' — string
======== refreshDownloadExpiry() ========
public function refreshDownloadExpiry($identifier)
//lines 259–269 (11)//
Refresh download expiry
^ Parameter ^ Type ^ Default ^ Description ^
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — bool
======== getDownloadUrl() ========
public function getDownloadUrl($_mediaId, $identifier)
//lines 278–287 (10)//
Get download URL
^ Parameter ^ Type ^ Default ^ Description ^
| ''$_mediaId'' | ''(untyped)'' | //required// | //none// |
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — string
======== recordDownloadAttempt() ========
public function recordDownloadAttempt($mediaId, $identifier, $ipAddress, $userAgent, $status = 'success')
//lines 299–310 (12)//
Record download attempt
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | //required// | //none// |
| ''$identifier'' | ''(untyped)'' | //required// | //none// |
| ''$ipAddress'' | ''(untyped)'' | //required// | //none// |
| ''$userAgent'' | ''(untyped)'' | //required// | //none// |
| ''$status'' | ''(untyped)'' | '''success''' | //none// |
**Returns:** ''(none declared)'' — bool
======== getDownloadStatistics() ========
public function getDownloadStatistics()
//lines 317–340 (24)//
Get download statistics
//Takes no parameters.//
**Returns:** ''(none declared)'' — array
======== getDownloadCountByMedia() ========
public function getDownloadCountByMedia($mediaId)
//lines 348–351 (4)//
Get download count by media
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — int
======== getDownloadsByMedia() ========
public function getDownloadsByMedia($mediaId)
//lines 359–362 (4)//
Get downloads by media
^ Parameter ^ Type ^ Default ^ Description ^
| ''$mediaId'' | ''(untyped)'' | //required// | //none// |
**Returns:** ''(none declared)'' — array
======== getDownloadHistory() ========
public function getDownloadHistory($limit = 50)
//lines 370–373 (4)//
Get download history
^ Parameter ^ Type ^ Default ^ Description ^
| ''$limit'' | ''(untyped)'' | ''50'' | //none// |
**Returns:** ''(none declared)'' — array
======== getFileTypeDistribution() ========
public function getFileTypeDistribution()
//lines 380–383 (4)//
Get file type distribution
//Takes no parameters.//
**Returns:** ''(none declared)'' — array
======== getRecentDownloads() ========
public function getRecentDownloads($limit = 10)
//lines 391–394 (4)//
Get recent downloads
^ Parameter ^ Type ^ Default ^ Description ^
| ''$limit'' | ''(untyped)'' | ''10'' | //none// |
**Returns:** ''(none declared)'' — array
======== getAllDownloads() ========
public function getAllDownloads()
//lines 401–404 (4)//
Get all downloads with media info
//Takes no parameters.//
**Returns:** ''(none declared)'' — array
======= Imports =======
^ Alias ^ Fully-qualified name ^
| ''Sanitize'' | [[scriptlog:lib:core:sanitize|''Scriptlog\Core\Sanitize'']] |
| ''MediaDao'' | [[scriptlog:lib:dao:mediadao|''Scriptlog\Dao\MediaDao'']] |
| ''DownloadModel'' | [[scriptlog:lib:model:downloadmodel|''Scriptlog\Model\DownloadModel'']] |
----
//This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//