MediaWiki REL1_34
FileDependency.php
Go to the documentation of this file.
1<?php
28 private $filename;
29 private $timestamp;
30
43 function __construct( $filename, $timestamp = null ) {
44 $this->filename = $filename;
45 $this->timestamp = $timestamp;
46 }
47
51 function __sleep() {
52 $this->loadDependencyValues();
53
54 return [ 'filename', 'timestamp' ];
55 }
56
58 if ( is_null( $this->timestamp ) ) {
59 Wikimedia\suppressWarnings();
60 # Dependency on a non-existent file stores "false"
61 # This is a valid concept!
62 $this->timestamp = filemtime( $this->filename );
63 Wikimedia\restoreWarnings();
64 }
65 }
66
70 function isExpired() {
71 Wikimedia\suppressWarnings();
72 $lastmod = filemtime( $this->filename );
73 Wikimedia\restoreWarnings();
74 if ( $lastmod === false ) {
75 if ( $this->timestamp === false ) {
76 # Still nonexistent
77 return false;
78 }
79
80 # Deleted
81 wfDebug( "Dependency triggered: {$this->filename} deleted.\n" );
82
83 return true;
84 }
85
86 if ( $lastmod > $this->timestamp ) {
87 # Modified or created
88 wfDebug( "Dependency triggered: {$this->filename} changed.\n" );
89
90 return true;
91 }
92
93 # Not modified
94 return false;
95 }
96}
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.
__construct( $filename, $timestamp=null)
Create a file dependency.
loadDependencyValues()
Hook to perform any expensive pre-serialize loading of dependency values.