MediaWiki REL1_39
FileDependency.php
Go to the documentation of this file.
1<?php
21use Wikimedia\AtEase\AtEase;
22
30 private $filename;
31 private $timestamp;
32
47 public function __construct( $filename, $timestamp = null ) {
48 $this->filename = $filename;
49 $this->timestamp = $timestamp;
50 }
51
55 public function __sleep() {
56 $this->loadDependencyValues();
57
58 return [ 'filename', 'timestamp' ];
59 }
60
61 public function loadDependencyValues() {
62 if ( $this->timestamp === null ) {
63 AtEase::suppressWarnings();
64 # Dependency on a non-existent file stores "false"
65 # This is a valid concept!
66 $this->timestamp = filemtime( $this->filename );
67 AtEase::restoreWarnings();
68 }
69 }
70
74 public function isExpired() {
75 AtEase::suppressWarnings();
76 $lastmod = filemtime( $this->filename );
77 AtEase::restoreWarnings();
78 if ( $lastmod === false ) {
79 if ( $this->timestamp === false ) {
80 # Still nonexistent
81 return false;
82 }
83
84 # Deleted
85 wfDebug( "Dependency triggered: {$this->filename} deleted." );
86
87 return true;
88 }
89
90 if ( $lastmod > $this->timestamp ) {
91 # Modified or created
92 wfDebug( "Dependency triggered: {$this->filename} changed." );
93
94 return true;
95 }
96
97 # Not modified
98 return false;
99 }
100}
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.
Base class to represent dependencies for LocalisationCache entries.
Depend on a file.
__construct( $filename, $timestamp=null)
Create a file dependency.
loadDependencyValues()
Hook to perform any expensive pre-serialize loading of dependency values.