Changeset 3010366
- Timestamp:
- 12/15/2023 06:56:27 AM (2 years ago)
- Location:
- future-monitor
- Files:
-
- 6 added
- 2 deleted
- 22 edited
- 1 copied
-
tags/1.0.1 (copied) (copied from future-monitor/trunk)
-
tags/1.0.1/Plugin.php (modified) (4 diffs)
-
tags/1.0.1/classes/Components (added)
-
tags/1.0.1/classes/Components/Component.php (added)
-
tags/1.0.1/classes/Components/Plugin.php (added)
-
tags/1.0.1/classes/Schedule.php (modified) (2 diffs)
-
tags/1.0.1/classes/Store.php (modified) (3 diffs)
-
tags/1.0.1/composer.json (deleted)
-
tags/1.0.1/readme.txt (modified) (2 diffs)
-
tags/1.0.1/vendor/autoload.php (modified) (1 diff)
-
tags/1.0.1/vendor/composer/ClassLoader.php (modified) (24 diffs)
-
tags/1.0.1/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
tags/1.0.1/vendor/composer/autoload_namespaces.php (modified) (1 diff)
-
tags/1.0.1/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
tags/1.0.1/vendor/composer/autoload_real.php (modified) (2 diffs)
-
tags/1.0.1/vendor/composer/autoload_static.php (modified) (1 diff)
-
trunk/Plugin.php (modified) (4 diffs)
-
trunk/classes/Components (added)
-
trunk/classes/Components/Component.php (added)
-
trunk/classes/Components/Plugin.php (added)
-
trunk/classes/Schedule.php (modified) (2 diffs)
-
trunk/classes/Store.php (modified) (3 diffs)
-
trunk/composer.json (deleted)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/ClassLoader.php (modified) (24 diffs)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_namespaces.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
future-monitor/tags/1.0.1/Plugin.php
r2303898 r3010366 4 4 * Plugin URI: https://github.com/palasthotel/future-monitor 5 5 * Description: Monitors the future of your system. For example planned posts... 6 * Version: 1.0. 06 * Version: 1.0.1 7 7 * Author: Palasthotel by Edward Bock <edward.bock@palasthotel.de> 8 8 * Author URI: https://palasthotel.de … … 10 10 * Domain Path: /languages 11 11 * Requires at least: 4.0 12 * Tested up to: 5.3.212 * Tested up to: 6.4.2 13 13 * License: http://www.gnu.org/licenses/gpl-3.0.html GPLv3 14 14 * … … 19 19 namespace Palasthotel\FutureMonitor; 20 20 21 require_once dirname(__FILE__) . "/vendor/autoload.php"; 21 22 22 /** 23 * @property string url 24 * @property string path 25 * @property string basename 26 * @property DashboardWidget dashboardWidget 27 * @property Store store 28 * @property Schedule schedule 29 */ 30 class Plugin { 23 class Plugin extends Components\Plugin { 31 24 32 25 const DOMAIN = "future-monitor"; 33 26 const SCHEDULE_ACTION = "future_monitor_publish_future_posts"; 27 public Store $store; 28 public Schedule $schedule; 29 public DashboardWidget $dashboardWidget; 34 30 35 public function __construct() { 36 37 load_plugin_textdomain( 38 Plugin::DOMAIN, 39 false, 40 dirname( plugin_basename( __FILE__ ) ) . '/languages' 41 ); 42 43 $this->url = plugin_dir_url( __FILE__ ); 44 $this->path = plugin_dir_path( __FILE__ ); 45 $this->basename = plugin_basename( __FILE__ ); 46 47 require_once dirname(__FILE__)."/vendor/autoload.php"; 31 public function onCreate(): void { 32 $this->loadTextdomain(Plugin::DOMAIN, "languages"); 48 33 49 34 $this->store = new Store(); … … 51 36 $this->dashboardWidget = new DashboardWidget($this); 52 37 53 /**54 * on activate or deactivate plugin55 */56 register_activation_hook( __FILE__, array( $this, "activation" ) );57 register_deactivation_hook( __FILE__, array( $this, "deactivation" ) );58 38 } 59 39 60 public function activation(){ 40 public function onSiteActivation(): void { 41 parent::onSiteActivation(); 61 42 $this->schedule->start(); 62 43 } 63 44 64 public function deactivation(){ 45 public function onSiteDeactivation(): void { 46 parent::onSiteDeactivation(); 65 47 $this->schedule->stop(); 66 48 } -
future-monitor/tags/1.0.1/classes/Schedule.php
r2303898 r3010366 5 5 6 6 7 /** 8 * @property Plugin plugin 9 */ 10 class Schedule { 7 use Palasthotel\FutureMonitor\Components\Component; 11 8 12 /** 13 * Schedule constructor. 14 * 15 * @param Plugin $plugin 16 */ 17 public function __construct($plugin) { 18 $this->plugin = $plugin; 9 class Schedule extends Component { 10 public function onCreate(): void { 19 11 add_action( 'admin_init', array( $this, 'start' ) ); 20 12 add_action( Plugin::SCHEDULE_ACTION, array($this,'execute')); 21 13 } 22 14 23 /** 24 * @return false|int 25 */ 26 public function isScheduled() { 15 public function isScheduled(): bool|int { 27 16 return wp_next_scheduled( Plugin::SCHEDULE_ACTION ); 28 17 } 29 18 30 public function start() {19 public function start(): void { 31 20 if(!$this->isScheduled()){ 32 21 wp_schedule_event( time(), 'hourly', Plugin::SCHEDULE_ACTION ); … … 34 23 } 35 24 36 public function stop() {25 public function stop(): void { 37 26 wp_clear_scheduled_hook(Plugin::SCHEDULE_ACTION); 38 27 } 39 28 40 public function execute() {29 public function execute(): void { 41 30 $posts = $this->plugin->store->getPublishablePostIds(); 42 31 foreach ($posts as $post_id){ -
future-monitor/tags/1.0.1/classes/Store.php
r2303898 r3010366 5 5 6 6 7 use WP_Post; 8 7 9 class Store { 8 10 9 private $post_ids;11 private ?array $post_ids = null; 10 12 11 13 /** 12 * @return array14 * @return int[] 13 15 */ 14 public function getScheduledPostIdsFromOptions() {16 public function getScheduledPostIdsFromOptions(): array { 15 17 16 18 if ( $this->post_ids == NULL ) { … … 37 39 38 40 /** 39 * @return \WP_Post[]41 * @return WP_Post[] 40 42 */ 41 public function getFuturePostIds() {43 public function getFuturePostIds(): array { 42 44 return get_posts( array( 43 45 'fields' => 'ids', … … 51 53 52 54 /** 53 * @return \WP_Post[]55 * @return WP_Post[] 54 56 */ 55 public function getPublishablePostIds() {57 public function getPublishablePostIds(): array { 56 58 return get_posts( array( 57 59 'fields' => 'ids', -
future-monitor/tags/1.0.1/readme.txt
r2303898 r3010366 4 4 Tags: dashboard, widget, planned posts, schedule visualization 5 5 Requires at least: 4.0 6 Tested up to: 5.3.27 Requires PHP: 7.38 Stable tag: 1.0. 06 Tested up to: 6.4.2 7 Requires PHP: 8.0 8 Stable tag: 1.0.1 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 30 30 == Changelog == 31 31 32 = 1.0.1 = 33 * PHP 8.2 update 34 32 35 = 1.0 = 33 36 * First release -
future-monitor/tags/1.0.1/vendor/autoload.php
r2303898 r3010366 3 3 // autoload.php @generated by Composer 4 4 5 if (PHP_VERSION_ID < 50600) { 6 if (!headers_sent()) { 7 header('HTTP/1.1 500 Internal Server Error'); 8 } 9 $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; 10 if (!ini_get('display_errors')) { 11 if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 12 fwrite(STDERR, $err); 13 } elseif (!headers_sent()) { 14 echo $err; 15 } 16 } 17 trigger_error( 18 $err, 19 E_USER_ERROR 20 ); 21 } 22 5 23 require_once __DIR__ . '/composer/autoload_real.php'; 6 24 -
future-monitor/tags/1.0.1/vendor/composer/ClassLoader.php
r2303898 r3010366 38 38 * @author Fabien Potencier <fabien@symfony.com> 39 39 * @author Jordi Boggiano <j.boggiano@seld.be> 40 * @see http ://www.php-fig.org/psr/psr-0/41 * @see http ://www.php-fig.org/psr/psr-4/40 * @see https://www.php-fig.org/psr/psr-0/ 41 * @see https://www.php-fig.org/psr/psr-4/ 42 42 */ 43 43 class ClassLoader 44 44 { 45 /** @var \Closure(string):void */ 46 private static $includeFile; 47 48 /** @var string|null */ 49 private $vendorDir; 50 45 51 // PSR-4 52 /** 53 * @var array<string, array<string, int>> 54 */ 46 55 private $prefixLengthsPsr4 = array(); 56 /** 57 * @var array<string, list<string>> 58 */ 47 59 private $prefixDirsPsr4 = array(); 60 /** 61 * @var list<string> 62 */ 48 63 private $fallbackDirsPsr4 = array(); 49 64 50 65 // PSR-0 66 /** 67 * List of PSR-0 prefixes 68 * 69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) 70 * 71 * @var array<string, array<string, list<string>>> 72 */ 51 73 private $prefixesPsr0 = array(); 74 /** 75 * @var list<string> 76 */ 52 77 private $fallbackDirsPsr0 = array(); 53 78 79 /** @var bool */ 54 80 private $useIncludePath = false; 81 82 /** 83 * @var array<string, string> 84 */ 55 85 private $classMap = array(); 86 87 /** @var bool */ 56 88 private $classMapAuthoritative = false; 89 90 /** 91 * @var array<string, bool> 92 */ 57 93 private $missingClasses = array(); 94 95 /** @var string|null */ 58 96 private $apcuPrefix; 59 97 98 /** 99 * @var array<string, self> 100 */ 101 private static $registeredLoaders = array(); 102 103 /** 104 * @param string|null $vendorDir 105 */ 106 public function __construct($vendorDir = null) 107 { 108 $this->vendorDir = $vendorDir; 109 self::initializeIncludeClosure(); 110 } 111 112 /** 113 * @return array<string, list<string>> 114 */ 60 115 public function getPrefixes() 61 116 { 62 117 if (!empty($this->prefixesPsr0)) { 63 return call_user_func_array('array_merge', $this->prefixesPsr0);118 return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); 64 119 } 65 120 … … 67 122 } 68 123 124 /** 125 * @return array<string, list<string>> 126 */ 69 127 public function getPrefixesPsr4() 70 128 { … … 72 130 } 73 131 132 /** 133 * @return list<string> 134 */ 74 135 public function getFallbackDirs() 75 136 { … … 77 138 } 78 139 140 /** 141 * @return list<string> 142 */ 79 143 public function getFallbackDirsPsr4() 80 144 { … … 82 146 } 83 147 148 /** 149 * @return array<string, string> Array of classname => path 150 */ 84 151 public function getClassMap() 85 152 { … … 88 155 89 156 /** 90 * @param array $classMap Class to filename map 157 * @param array<string, string> $classMap Class to filename map 158 * 159 * @return void 91 160 */ 92 161 public function addClassMap(array $classMap) … … 103 172 * appending or prepending to the ones previously set for this prefix. 104 173 * 105 * @param string $prefix The prefix 106 * @param array|string $paths The PSR-0 root directories 107 * @param bool $prepend Whether to prepend the directories 174 * @param string $prefix The prefix 175 * @param list<string>|string $paths The PSR-0 root directories 176 * @param bool $prepend Whether to prepend the directories 177 * 178 * @return void 108 179 */ 109 180 public function add($prefix, $paths, $prepend = false) 110 181 { 182 $paths = (array) $paths; 111 183 if (!$prefix) { 112 184 if ($prepend) { 113 185 $this->fallbackDirsPsr0 = array_merge( 114 (array)$paths,186 $paths, 115 187 $this->fallbackDirsPsr0 116 188 ); … … 118 190 $this->fallbackDirsPsr0 = array_merge( 119 191 $this->fallbackDirsPsr0, 120 (array)$paths192 $paths 121 193 ); 122 194 } … … 127 199 $first = $prefix[0]; 128 200 if (!isset($this->prefixesPsr0[$first][$prefix])) { 129 $this->prefixesPsr0[$first][$prefix] = (array)$paths;201 $this->prefixesPsr0[$first][$prefix] = $paths; 130 202 131 203 return; … … 133 205 if ($prepend) { 134 206 $this->prefixesPsr0[$first][$prefix] = array_merge( 135 (array)$paths,207 $paths, 136 208 $this->prefixesPsr0[$first][$prefix] 137 209 ); … … 139 211 $this->prefixesPsr0[$first][$prefix] = array_merge( 140 212 $this->prefixesPsr0[$first][$prefix], 141 (array)$paths213 $paths 142 214 ); 143 215 } … … 148 220 * appending or prepending to the ones previously set for this namespace. 149 221 * 150 * @param string $prefix The prefix/namespace, with trailing '\\'151 * @param array|string $paths The PSR-4 base directories152 * @param bool $prepend Whether to prepend the directories222 * @param string $prefix The prefix/namespace, with trailing '\\' 223 * @param list<string>|string $paths The PSR-4 base directories 224 * @param bool $prepend Whether to prepend the directories 153 225 * 154 226 * @throws \InvalidArgumentException 227 * 228 * @return void 155 229 */ 156 230 public function addPsr4($prefix, $paths, $prepend = false) 157 231 { 232 $paths = (array) $paths; 158 233 if (!$prefix) { 159 234 // Register directories for the root namespace. 160 235 if ($prepend) { 161 236 $this->fallbackDirsPsr4 = array_merge( 162 (array)$paths,237 $paths, 163 238 $this->fallbackDirsPsr4 164 239 ); … … 166 241 $this->fallbackDirsPsr4 = array_merge( 167 242 $this->fallbackDirsPsr4, 168 (array)$paths243 $paths 169 244 ); 170 245 } … … 176 251 } 177 252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 178 $this->prefixDirsPsr4[$prefix] = (array)$paths;253 $this->prefixDirsPsr4[$prefix] = $paths; 179 254 } elseif ($prepend) { 180 255 // Prepend directories for an already registered namespace. 181 256 $this->prefixDirsPsr4[$prefix] = array_merge( 182 (array)$paths,257 $paths, 183 258 $this->prefixDirsPsr4[$prefix] 184 259 ); … … 187 262 $this->prefixDirsPsr4[$prefix] = array_merge( 188 263 $this->prefixDirsPsr4[$prefix], 189 (array)$paths264 $paths 190 265 ); 191 266 } … … 196 271 * replacing any others previously set for this prefix. 197 272 * 198 * @param string $prefix The prefix 199 * @param array|string $paths The PSR-0 base directories 273 * @param string $prefix The prefix 274 * @param list<string>|string $paths The PSR-0 base directories 275 * 276 * @return void 200 277 */ 201 278 public function set($prefix, $paths) … … 212 289 * replacing any others previously set for this namespace. 213 290 * 214 * @param string $prefix The prefix/namespace, with trailing '\\'215 * @param array|string $paths The PSR-4 base directories291 * @param string $prefix The prefix/namespace, with trailing '\\' 292 * @param list<string>|string $paths The PSR-4 base directories 216 293 * 217 294 * @throws \InvalidArgumentException 295 * 296 * @return void 218 297 */ 219 298 public function setPsr4($prefix, $paths) … … 235 314 * 236 315 * @param bool $useIncludePath 316 * 317 * @return void 237 318 */ 238 319 public function setUseIncludePath($useIncludePath) … … 257 338 * 258 339 * @param bool $classMapAuthoritative 340 * 341 * @return void 259 342 */ 260 343 public function setClassMapAuthoritative($classMapAuthoritative) … … 277 360 * 278 361 * @param string|null $apcuPrefix 362 * 363 * @return void 279 364 */ 280 365 public function setApcuPrefix($apcuPrefix) … … 297 382 * 298 383 * @param bool $prepend Whether to prepend the autoloader or not 384 * 385 * @return void 299 386 */ 300 387 public function register($prepend = false) 301 388 { 302 389 spl_autoload_register(array($this, 'loadClass'), true, $prepend); 390 391 if (null === $this->vendorDir) { 392 return; 393 } 394 395 if ($prepend) { 396 self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; 397 } else { 398 unset(self::$registeredLoaders[$this->vendorDir]); 399 self::$registeredLoaders[$this->vendorDir] = $this; 400 } 303 401 } 304 402 305 403 /** 306 404 * Unregisters this instance as an autoloader. 405 * 406 * @return void 307 407 */ 308 408 public function unregister() 309 409 { 310 410 spl_autoload_unregister(array($this, 'loadClass')); 411 412 if (null !== $this->vendorDir) { 413 unset(self::$registeredLoaders[$this->vendorDir]); 414 } 311 415 } 312 416 … … 315 419 * 316 420 * @param string $class The name of the class 317 * @return bool|null True if loaded, null otherwise421 * @return true|null True if loaded, null otherwise 318 422 */ 319 423 public function loadClass($class) 320 424 { 321 425 if ($file = $this->findFile($class)) { 322 includeFile($file); 426 $includeFile = self::$includeFile; 427 $includeFile($file); 323 428 324 429 return true; 325 430 } 431 432 return null; 326 433 } 327 434 … … 368 475 } 369 476 477 /** 478 * Returns the currently registered loaders keyed by their corresponding vendor directories. 479 * 480 * @return array<string, self> 481 */ 482 public static function getRegisteredLoaders() 483 { 484 return self::$registeredLoaders; 485 } 486 487 /** 488 * @param string $class 489 * @param string $ext 490 * @return string|false 491 */ 370 492 private function findFileWithExtension($class, $ext) 371 493 { … … 433 555 return false; 434 556 } 557 558 /** 559 * @return void 560 */ 561 private static function initializeIncludeClosure() 562 { 563 if (self::$includeFile !== null) { 564 return; 565 } 566 567 /** 568 * Scope isolated include. 569 * 570 * Prevents access to $this/self from included files. 571 * 572 * @param string $file 573 * @return void 574 */ 575 self::$includeFile = \Closure::bind(static function($file) { 576 include $file; 577 }, null, null); 578 } 435 579 } 436 437 /**438 * Scope isolated include.439 *440 * Prevents access to $this/self from included files.441 */442 function includeFile($file)443 {444 include $file;445 } -
future-monitor/tags/1.0.1/vendor/composer/autoload_classmap.php
r2303898 r3010366 3 3 // autoload_classmap.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 8 8 return array( 9 ' Palasthotel\\FutureMonitor\\DashboardWidget' => $baseDir . '/classes/DashboardWidget.php',9 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 10 10 ); -
future-monitor/tags/1.0.1/vendor/composer/autoload_namespaces.php
r2303898 r3010366 3 3 // autoload_namespaces.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
future-monitor/tags/1.0.1/vendor/composer/autoload_psr4.php
r2303898 r3010366 3 3 // autoload_psr4.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
future-monitor/tags/1.0.1/vendor/composer/autoload_real.php
r2303898 r3010366 14 14 } 15 15 16 /** 17 * @return \Composer\Autoload\ClassLoader 18 */ 16 19 public static function getLoader() 17 20 { … … 21 24 22 25 spl_autoload_register(array('ComposerAutoloaderInitcee45bc917afd312f76959aa7478f42e', 'loadClassLoader'), true, true); 23 self::$loader = $loader = new \Composer\Autoload\ClassLoader( );26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 24 27 spl_autoload_unregister(array('ComposerAutoloaderInitcee45bc917afd312f76959aa7478f42e', 'loadClassLoader')); 25 28 26 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 27 if ($useStaticLoader) { 28 require_once __DIR__ . '/autoload_static.php'; 29 30 call_user_func(\Composer\Autoload\ComposerStaticInitcee45bc917afd312f76959aa7478f42e::getInitializer($loader)); 31 } else { 32 $map = require __DIR__ . '/autoload_namespaces.php'; 33 foreach ($map as $namespace => $path) { 34 $loader->set($namespace, $path); 35 } 36 37 $map = require __DIR__ . '/autoload_psr4.php'; 38 foreach ($map as $namespace => $path) { 39 $loader->setPsr4($namespace, $path); 40 } 41 42 $classMap = require __DIR__ . '/autoload_classmap.php'; 43 if ($classMap) { 44 $loader->addClassMap($classMap); 45 } 46 } 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInitcee45bc917afd312f76959aa7478f42e::getInitializer($loader)); 47 31 48 32 $loader->register(true); -
future-monitor/tags/1.0.1/vendor/composer/autoload_static.php
r2303898 r3010366 22 22 23 23 public static $classMap = array ( 24 ' Palasthotel\\FutureMonitor\\DashboardWidget' => __DIR__ . '/../..' . '/classes/DashboardWidget.php',24 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 25 25 ); 26 26 -
future-monitor/trunk/Plugin.php
r2303898 r3010366 4 4 * Plugin URI: https://github.com/palasthotel/future-monitor 5 5 * Description: Monitors the future of your system. For example planned posts... 6 * Version: 1.0. 06 * Version: 1.0.1 7 7 * Author: Palasthotel by Edward Bock <edward.bock@palasthotel.de> 8 8 * Author URI: https://palasthotel.de … … 10 10 * Domain Path: /languages 11 11 * Requires at least: 4.0 12 * Tested up to: 5.3.212 * Tested up to: 6.4.2 13 13 * License: http://www.gnu.org/licenses/gpl-3.0.html GPLv3 14 14 * … … 19 19 namespace Palasthotel\FutureMonitor; 20 20 21 require_once dirname(__FILE__) . "/vendor/autoload.php"; 21 22 22 /** 23 * @property string url 24 * @property string path 25 * @property string basename 26 * @property DashboardWidget dashboardWidget 27 * @property Store store 28 * @property Schedule schedule 29 */ 30 class Plugin { 23 class Plugin extends Components\Plugin { 31 24 32 25 const DOMAIN = "future-monitor"; 33 26 const SCHEDULE_ACTION = "future_monitor_publish_future_posts"; 27 public Store $store; 28 public Schedule $schedule; 29 public DashboardWidget $dashboardWidget; 34 30 35 public function __construct() { 36 37 load_plugin_textdomain( 38 Plugin::DOMAIN, 39 false, 40 dirname( plugin_basename( __FILE__ ) ) . '/languages' 41 ); 42 43 $this->url = plugin_dir_url( __FILE__ ); 44 $this->path = plugin_dir_path( __FILE__ ); 45 $this->basename = plugin_basename( __FILE__ ); 46 47 require_once dirname(__FILE__)."/vendor/autoload.php"; 31 public function onCreate(): void { 32 $this->loadTextdomain(Plugin::DOMAIN, "languages"); 48 33 49 34 $this->store = new Store(); … … 51 36 $this->dashboardWidget = new DashboardWidget($this); 52 37 53 /**54 * on activate or deactivate plugin55 */56 register_activation_hook( __FILE__, array( $this, "activation" ) );57 register_deactivation_hook( __FILE__, array( $this, "deactivation" ) );58 38 } 59 39 60 public function activation(){ 40 public function onSiteActivation(): void { 41 parent::onSiteActivation(); 61 42 $this->schedule->start(); 62 43 } 63 44 64 public function deactivation(){ 45 public function onSiteDeactivation(): void { 46 parent::onSiteDeactivation(); 65 47 $this->schedule->stop(); 66 48 } -
future-monitor/trunk/classes/Schedule.php
r2303898 r3010366 5 5 6 6 7 /** 8 * @property Plugin plugin 9 */ 10 class Schedule { 7 use Palasthotel\FutureMonitor\Components\Component; 11 8 12 /** 13 * Schedule constructor. 14 * 15 * @param Plugin $plugin 16 */ 17 public function __construct($plugin) { 18 $this->plugin = $plugin; 9 class Schedule extends Component { 10 public function onCreate(): void { 19 11 add_action( 'admin_init', array( $this, 'start' ) ); 20 12 add_action( Plugin::SCHEDULE_ACTION, array($this,'execute')); 21 13 } 22 14 23 /** 24 * @return false|int 25 */ 26 public function isScheduled() { 15 public function isScheduled(): bool|int { 27 16 return wp_next_scheduled( Plugin::SCHEDULE_ACTION ); 28 17 } 29 18 30 public function start() {19 public function start(): void { 31 20 if(!$this->isScheduled()){ 32 21 wp_schedule_event( time(), 'hourly', Plugin::SCHEDULE_ACTION ); … … 34 23 } 35 24 36 public function stop() {25 public function stop(): void { 37 26 wp_clear_scheduled_hook(Plugin::SCHEDULE_ACTION); 38 27 } 39 28 40 public function execute() {29 public function execute(): void { 41 30 $posts = $this->plugin->store->getPublishablePostIds(); 42 31 foreach ($posts as $post_id){ -
future-monitor/trunk/classes/Store.php
r2303898 r3010366 5 5 6 6 7 use WP_Post; 8 7 9 class Store { 8 10 9 private $post_ids;11 private ?array $post_ids = null; 10 12 11 13 /** 12 * @return array14 * @return int[] 13 15 */ 14 public function getScheduledPostIdsFromOptions() {16 public function getScheduledPostIdsFromOptions(): array { 15 17 16 18 if ( $this->post_ids == NULL ) { … … 37 39 38 40 /** 39 * @return \WP_Post[]41 * @return WP_Post[] 40 42 */ 41 public function getFuturePostIds() {43 public function getFuturePostIds(): array { 42 44 return get_posts( array( 43 45 'fields' => 'ids', … … 51 53 52 54 /** 53 * @return \WP_Post[]55 * @return WP_Post[] 54 56 */ 55 public function getPublishablePostIds() {57 public function getPublishablePostIds(): array { 56 58 return get_posts( array( 57 59 'fields' => 'ids', -
future-monitor/trunk/readme.txt
r2303898 r3010366 4 4 Tags: dashboard, widget, planned posts, schedule visualization 5 5 Requires at least: 4.0 6 Tested up to: 5.3.27 Requires PHP: 7.38 Stable tag: 1.0. 06 Tested up to: 6.4.2 7 Requires PHP: 8.0 8 Stable tag: 1.0.1 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 30 30 == Changelog == 31 31 32 = 1.0.1 = 33 * PHP 8.2 update 34 32 35 = 1.0 = 33 36 * First release -
future-monitor/trunk/vendor/autoload.php
r2303898 r3010366 3 3 // autoload.php @generated by Composer 4 4 5 if (PHP_VERSION_ID < 50600) { 6 if (!headers_sent()) { 7 header('HTTP/1.1 500 Internal Server Error'); 8 } 9 $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; 10 if (!ini_get('display_errors')) { 11 if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 12 fwrite(STDERR, $err); 13 } elseif (!headers_sent()) { 14 echo $err; 15 } 16 } 17 trigger_error( 18 $err, 19 E_USER_ERROR 20 ); 21 } 22 5 23 require_once __DIR__ . '/composer/autoload_real.php'; 6 24 -
future-monitor/trunk/vendor/composer/ClassLoader.php
r2303898 r3010366 38 38 * @author Fabien Potencier <fabien@symfony.com> 39 39 * @author Jordi Boggiano <j.boggiano@seld.be> 40 * @see http ://www.php-fig.org/psr/psr-0/41 * @see http ://www.php-fig.org/psr/psr-4/40 * @see https://www.php-fig.org/psr/psr-0/ 41 * @see https://www.php-fig.org/psr/psr-4/ 42 42 */ 43 43 class ClassLoader 44 44 { 45 /** @var \Closure(string):void */ 46 private static $includeFile; 47 48 /** @var string|null */ 49 private $vendorDir; 50 45 51 // PSR-4 52 /** 53 * @var array<string, array<string, int>> 54 */ 46 55 private $prefixLengthsPsr4 = array(); 56 /** 57 * @var array<string, list<string>> 58 */ 47 59 private $prefixDirsPsr4 = array(); 60 /** 61 * @var list<string> 62 */ 48 63 private $fallbackDirsPsr4 = array(); 49 64 50 65 // PSR-0 66 /** 67 * List of PSR-0 prefixes 68 * 69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) 70 * 71 * @var array<string, array<string, list<string>>> 72 */ 51 73 private $prefixesPsr0 = array(); 74 /** 75 * @var list<string> 76 */ 52 77 private $fallbackDirsPsr0 = array(); 53 78 79 /** @var bool */ 54 80 private $useIncludePath = false; 81 82 /** 83 * @var array<string, string> 84 */ 55 85 private $classMap = array(); 86 87 /** @var bool */ 56 88 private $classMapAuthoritative = false; 89 90 /** 91 * @var array<string, bool> 92 */ 57 93 private $missingClasses = array(); 94 95 /** @var string|null */ 58 96 private $apcuPrefix; 59 97 98 /** 99 * @var array<string, self> 100 */ 101 private static $registeredLoaders = array(); 102 103 /** 104 * @param string|null $vendorDir 105 */ 106 public function __construct($vendorDir = null) 107 { 108 $this->vendorDir = $vendorDir; 109 self::initializeIncludeClosure(); 110 } 111 112 /** 113 * @return array<string, list<string>> 114 */ 60 115 public function getPrefixes() 61 116 { 62 117 if (!empty($this->prefixesPsr0)) { 63 return call_user_func_array('array_merge', $this->prefixesPsr0);118 return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); 64 119 } 65 120 … … 67 122 } 68 123 124 /** 125 * @return array<string, list<string>> 126 */ 69 127 public function getPrefixesPsr4() 70 128 { … … 72 130 } 73 131 132 /** 133 * @return list<string> 134 */ 74 135 public function getFallbackDirs() 75 136 { … … 77 138 } 78 139 140 /** 141 * @return list<string> 142 */ 79 143 public function getFallbackDirsPsr4() 80 144 { … … 82 146 } 83 147 148 /** 149 * @return array<string, string> Array of classname => path 150 */ 84 151 public function getClassMap() 85 152 { … … 88 155 89 156 /** 90 * @param array $classMap Class to filename map 157 * @param array<string, string> $classMap Class to filename map 158 * 159 * @return void 91 160 */ 92 161 public function addClassMap(array $classMap) … … 103 172 * appending or prepending to the ones previously set for this prefix. 104 173 * 105 * @param string $prefix The prefix 106 * @param array|string $paths The PSR-0 root directories 107 * @param bool $prepend Whether to prepend the directories 174 * @param string $prefix The prefix 175 * @param list<string>|string $paths The PSR-0 root directories 176 * @param bool $prepend Whether to prepend the directories 177 * 178 * @return void 108 179 */ 109 180 public function add($prefix, $paths, $prepend = false) 110 181 { 182 $paths = (array) $paths; 111 183 if (!$prefix) { 112 184 if ($prepend) { 113 185 $this->fallbackDirsPsr0 = array_merge( 114 (array)$paths,186 $paths, 115 187 $this->fallbackDirsPsr0 116 188 ); … … 118 190 $this->fallbackDirsPsr0 = array_merge( 119 191 $this->fallbackDirsPsr0, 120 (array)$paths192 $paths 121 193 ); 122 194 } … … 127 199 $first = $prefix[0]; 128 200 if (!isset($this->prefixesPsr0[$first][$prefix])) { 129 $this->prefixesPsr0[$first][$prefix] = (array)$paths;201 $this->prefixesPsr0[$first][$prefix] = $paths; 130 202 131 203 return; … … 133 205 if ($prepend) { 134 206 $this->prefixesPsr0[$first][$prefix] = array_merge( 135 (array)$paths,207 $paths, 136 208 $this->prefixesPsr0[$first][$prefix] 137 209 ); … … 139 211 $this->prefixesPsr0[$first][$prefix] = array_merge( 140 212 $this->prefixesPsr0[$first][$prefix], 141 (array)$paths213 $paths 142 214 ); 143 215 } … … 148 220 * appending or prepending to the ones previously set for this namespace. 149 221 * 150 * @param string $prefix The prefix/namespace, with trailing '\\'151 * @param array|string $paths The PSR-4 base directories152 * @param bool $prepend Whether to prepend the directories222 * @param string $prefix The prefix/namespace, with trailing '\\' 223 * @param list<string>|string $paths The PSR-4 base directories 224 * @param bool $prepend Whether to prepend the directories 153 225 * 154 226 * @throws \InvalidArgumentException 227 * 228 * @return void 155 229 */ 156 230 public function addPsr4($prefix, $paths, $prepend = false) 157 231 { 232 $paths = (array) $paths; 158 233 if (!$prefix) { 159 234 // Register directories for the root namespace. 160 235 if ($prepend) { 161 236 $this->fallbackDirsPsr4 = array_merge( 162 (array)$paths,237 $paths, 163 238 $this->fallbackDirsPsr4 164 239 ); … … 166 241 $this->fallbackDirsPsr4 = array_merge( 167 242 $this->fallbackDirsPsr4, 168 (array)$paths243 $paths 169 244 ); 170 245 } … … 176 251 } 177 252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 178 $this->prefixDirsPsr4[$prefix] = (array)$paths;253 $this->prefixDirsPsr4[$prefix] = $paths; 179 254 } elseif ($prepend) { 180 255 // Prepend directories for an already registered namespace. 181 256 $this->prefixDirsPsr4[$prefix] = array_merge( 182 (array)$paths,257 $paths, 183 258 $this->prefixDirsPsr4[$prefix] 184 259 ); … … 187 262 $this->prefixDirsPsr4[$prefix] = array_merge( 188 263 $this->prefixDirsPsr4[$prefix], 189 (array)$paths264 $paths 190 265 ); 191 266 } … … 196 271 * replacing any others previously set for this prefix. 197 272 * 198 * @param string $prefix The prefix 199 * @param array|string $paths The PSR-0 base directories 273 * @param string $prefix The prefix 274 * @param list<string>|string $paths The PSR-0 base directories 275 * 276 * @return void 200 277 */ 201 278 public function set($prefix, $paths) … … 212 289 * replacing any others previously set for this namespace. 213 290 * 214 * @param string $prefix The prefix/namespace, with trailing '\\'215 * @param array|string $paths The PSR-4 base directories291 * @param string $prefix The prefix/namespace, with trailing '\\' 292 * @param list<string>|string $paths The PSR-4 base directories 216 293 * 217 294 * @throws \InvalidArgumentException 295 * 296 * @return void 218 297 */ 219 298 public function setPsr4($prefix, $paths) … … 235 314 * 236 315 * @param bool $useIncludePath 316 * 317 * @return void 237 318 */ 238 319 public function setUseIncludePath($useIncludePath) … … 257 338 * 258 339 * @param bool $classMapAuthoritative 340 * 341 * @return void 259 342 */ 260 343 public function setClassMapAuthoritative($classMapAuthoritative) … … 277 360 * 278 361 * @param string|null $apcuPrefix 362 * 363 * @return void 279 364 */ 280 365 public function setApcuPrefix($apcuPrefix) … … 297 382 * 298 383 * @param bool $prepend Whether to prepend the autoloader or not 384 * 385 * @return void 299 386 */ 300 387 public function register($prepend = false) 301 388 { 302 389 spl_autoload_register(array($this, 'loadClass'), true, $prepend); 390 391 if (null === $this->vendorDir) { 392 return; 393 } 394 395 if ($prepend) { 396 self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; 397 } else { 398 unset(self::$registeredLoaders[$this->vendorDir]); 399 self::$registeredLoaders[$this->vendorDir] = $this; 400 } 303 401 } 304 402 305 403 /** 306 404 * Unregisters this instance as an autoloader. 405 * 406 * @return void 307 407 */ 308 408 public function unregister() 309 409 { 310 410 spl_autoload_unregister(array($this, 'loadClass')); 411 412 if (null !== $this->vendorDir) { 413 unset(self::$registeredLoaders[$this->vendorDir]); 414 } 311 415 } 312 416 … … 315 419 * 316 420 * @param string $class The name of the class 317 * @return bool|null True if loaded, null otherwise421 * @return true|null True if loaded, null otherwise 318 422 */ 319 423 public function loadClass($class) 320 424 { 321 425 if ($file = $this->findFile($class)) { 322 includeFile($file); 426 $includeFile = self::$includeFile; 427 $includeFile($file); 323 428 324 429 return true; 325 430 } 431 432 return null; 326 433 } 327 434 … … 368 475 } 369 476 477 /** 478 * Returns the currently registered loaders keyed by their corresponding vendor directories. 479 * 480 * @return array<string, self> 481 */ 482 public static function getRegisteredLoaders() 483 { 484 return self::$registeredLoaders; 485 } 486 487 /** 488 * @param string $class 489 * @param string $ext 490 * @return string|false 491 */ 370 492 private function findFileWithExtension($class, $ext) 371 493 { … … 433 555 return false; 434 556 } 557 558 /** 559 * @return void 560 */ 561 private static function initializeIncludeClosure() 562 { 563 if (self::$includeFile !== null) { 564 return; 565 } 566 567 /** 568 * Scope isolated include. 569 * 570 * Prevents access to $this/self from included files. 571 * 572 * @param string $file 573 * @return void 574 */ 575 self::$includeFile = \Closure::bind(static function($file) { 576 include $file; 577 }, null, null); 578 } 435 579 } 436 437 /**438 * Scope isolated include.439 *440 * Prevents access to $this/self from included files.441 */442 function includeFile($file)443 {444 include $file;445 } -
future-monitor/trunk/vendor/composer/autoload_classmap.php
r2303898 r3010366 3 3 // autoload_classmap.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 8 8 return array( 9 ' Palasthotel\\FutureMonitor\\DashboardWidget' => $baseDir . '/classes/DashboardWidget.php',9 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', 10 10 ); -
future-monitor/trunk/vendor/composer/autoload_namespaces.php
r2303898 r3010366 3 3 // autoload_namespaces.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
future-monitor/trunk/vendor/composer/autoload_psr4.php
r2303898 r3010366 3 3 // autoload_psr4.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
future-monitor/trunk/vendor/composer/autoload_real.php
r2303898 r3010366 14 14 } 15 15 16 /** 17 * @return \Composer\Autoload\ClassLoader 18 */ 16 19 public static function getLoader() 17 20 { … … 21 24 22 25 spl_autoload_register(array('ComposerAutoloaderInitcee45bc917afd312f76959aa7478f42e', 'loadClassLoader'), true, true); 23 self::$loader = $loader = new \Composer\Autoload\ClassLoader( );26 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 24 27 spl_autoload_unregister(array('ComposerAutoloaderInitcee45bc917afd312f76959aa7478f42e', 'loadClassLoader')); 25 28 26 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 27 if ($useStaticLoader) { 28 require_once __DIR__ . '/autoload_static.php'; 29 30 call_user_func(\Composer\Autoload\ComposerStaticInitcee45bc917afd312f76959aa7478f42e::getInitializer($loader)); 31 } else { 32 $map = require __DIR__ . '/autoload_namespaces.php'; 33 foreach ($map as $namespace => $path) { 34 $loader->set($namespace, $path); 35 } 36 37 $map = require __DIR__ . '/autoload_psr4.php'; 38 foreach ($map as $namespace => $path) { 39 $loader->setPsr4($namespace, $path); 40 } 41 42 $classMap = require __DIR__ . '/autoload_classmap.php'; 43 if ($classMap) { 44 $loader->addClassMap($classMap); 45 } 46 } 29 require __DIR__ . '/autoload_static.php'; 30 call_user_func(\Composer\Autoload\ComposerStaticInitcee45bc917afd312f76959aa7478f42e::getInitializer($loader)); 47 31 48 32 $loader->register(true); -
future-monitor/trunk/vendor/composer/autoload_static.php
r2303898 r3010366 22 22 23 23 public static $classMap = array ( 24 ' Palasthotel\\FutureMonitor\\DashboardWidget' => __DIR__ . '/../..' . '/classes/DashboardWidget.php',24 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', 25 25 ); 26 26
Note: See TracChangeset
for help on using the changeset viewer.