MediaWiki  master
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 
57  function loadDependencyValues() {
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 }
__construct( $filename, $timestamp=null)
Create a file dependency.
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.