From 2496203d6581aad33006f69017de383f347b446c Mon Sep 17 00:00:00 2001 From: Ibrahim BinAlshikh Date: Sun, 14 Jun 2026 10:32:08 +0300 Subject: [PATCH 1/3] feat(session): add CacheSessionStorage driver Adapter that implements SessionStorage using the cache library's Storage interface. Supports any cache backend (Redis, file, etc.). - Configurable key prefix for namespace isolation - Configurable TTL (default: 7200s) - Cache-level encryption disabled (sessions have their own) - 100% test coverage (11 tests, 18/18 lines) Closes #337 --- .../Cli/Commands/StepMigrationsCommand.php | 2 +- .../Framework/Session/CacheSessionStorage.php | 126 +++++++++++++ .../Tests/Session/CacheSessionStorageTest.php | 172 ++++++++++++++++++ tests/phpunit10.xml | 1 + 4 files changed, 300 insertions(+), 1 deletion(-) create mode 100644 WebFiori/Framework/Session/CacheSessionStorage.php create mode 100644 tests/WebFiori/Framework/Tests/Session/CacheSessionStorageTest.php diff --git a/WebFiori/Framework/Cli/Commands/StepMigrationsCommand.php b/WebFiori/Framework/Cli/Commands/StepMigrationsCommand.php index 2b078d124..0fcd706bf 100644 --- a/WebFiori/Framework/Cli/Commands/StepMigrationsCommand.php +++ b/WebFiori/Framework/Cli/Commands/StepMigrationsCommand.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/CacheSessionStorage.php b/WebFiori/Framework/Session/CacheSessionStorage.php new file mode 100644 index 000000000..c9b15c7a1 --- /dev/null +++ b/WebFiori/Framework/Session/CacheSessionStorage.php @@ -0,0 +1,126 @@ +storage = $cacheStorage; + $this->prefix = $prefix; + $this->ttl = $ttl; + } + + /** + * Returns the cache storage backend. + * + * @return Storage + */ + public function getStorage(): Storage { + return $this->storage; + } + + /** + * Returns the key prefix. + * + * @return string + */ + public function getPrefix(): string { + return $this->prefix; + } + + /** + * Returns the TTL in seconds. + * + * @return int + */ + public function getTTL(): int { + return $this->ttl; + } + + /** + * Sets the TTL for session entries. + * + * @param int $ttl Time-to-live in seconds. + */ + public function setTTL(int $ttl): void { + $this->ttl = $ttl; + } + + /** + * {@inheritDoc} + */ + public function gc(string $olderThan, int $maxCount = 0) { + $this->storage->purgeExpired(); + } + + /** + * {@inheritDoc} + */ + public function read(string $sessionId) { + $data = $this->storage->read($this->prefix . $sessionId, null); + + if ($data === null) { + return null; + } + + return $data; + } + + /** + * {@inheritDoc} + */ + public function remove(string $sessionId) { + $this->storage->delete($this->prefix . $sessionId); + } + + /** + * {@inheritDoc} + */ + public function save(string $sessionId, string $serializedSession) { + $item = new Item($this->prefix . $sessionId, $serializedSession, $this->ttl); + $secConfig = new SecurityConfig(); + $secConfig->setEncryptionEnabled(false); + $item->setSecurityConfig($secConfig); + $this->storage->store($item); + } +} diff --git a/tests/WebFiori/Framework/Tests/Session/CacheSessionStorageTest.php b/tests/WebFiori/Framework/Tests/Session/CacheSessionStorageTest.php new file mode 100644 index 000000000..164c609d4 --- /dev/null +++ b/tests/WebFiori/Framework/Tests/Session/CacheSessionStorageTest.php @@ -0,0 +1,172 @@ +cacheDir = sys_get_temp_dir().DIRECTORY_SEPARATOR.'wf-session-cache-test'; + + if (!is_dir($this->cacheDir)) { + mkdir($this->cacheDir, 0755, true); + } + } + + protected function tearDown(): void { + // Clean up cache files + $files = glob($this->cacheDir.DIRECTORY_SEPARATOR.'*'); + + foreach ($files as $file) { + if (is_file($file)) { + unlink($file); + } + } + + if (is_dir($this->cacheDir)) { + rmdir($this->cacheDir); + } + + parent::tearDown(); + } + + /** @test */ + public function testConstructorDefaults() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $this->assertSame($fileStorage, $storage->getStorage()); + $this->assertEquals('wf_session:', $storage->getPrefix()); + $this->assertEquals(7200, $storage->getTTL()); + } + + /** @test */ + public function testConstructorCustomValues() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage, 'custom:', 3600); + + $this->assertEquals('custom:', $storage->getPrefix()); + $this->assertEquals(3600, $storage->getTTL()); + } + + /** @test */ + public function testSetTTL() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + $storage->setTTL(1800); + + $this->assertEquals(1800, $storage->getTTL()); + } + + /** @test */ + public function testSaveAndRead() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $sessionId = 'test-session-123'; + $data = 'serialized_session_data_here'; + + $storage->save($sessionId, $data); + $result = $storage->read($sessionId); + + $this->assertEquals($data, $result); + } + + /** @test */ + public function testReadNonExistent() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $result = $storage->read('non-existent-id'); + $this->assertNull($result); + } + + /** @test */ + public function testRemove() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $sessionId = 'remove-test-456'; + $storage->save($sessionId, 'some_data'); + + // Verify it exists + $this->assertNotNull($storage->read($sessionId)); + + // Remove and verify + $storage->remove($sessionId); + $this->assertNull($storage->read($sessionId)); + } + + /** @test */ + public function testSaveOverwrite() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $sessionId = 'overwrite-test'; + $storage->save($sessionId, 'first_data'); + $storage->save($sessionId, 'second_data'); + + $this->assertEquals('second_data', $storage->read($sessionId)); + } + + /** @test */ + public function testGcDoesNotThrow() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $storage->save('gc-test-1', 'data1'); + $storage->gc('2020-01-01 00:00:00', 10); + + // Should not throw + $this->assertTrue(true); + } + + /** @test */ + public function testPrefixIsolation() { + $fileStorage = new FileStorage($this->cacheDir); + $storageA = new CacheSessionStorage($fileStorage, 'a:'); + $storageB = new CacheSessionStorage($fileStorage, 'b:'); + + $storageA->save('session1', 'data_a'); + $storageB->save('session1', 'data_b'); + + $this->assertEquals('data_a', $storageA->read('session1')); + $this->assertEquals('data_b', $storageB->read('session1')); + } + + /** @test */ + public function testRemoveDoesNotAffectOtherSessions() { + $fileStorage = new FileStorage($this->cacheDir); + $storage = new CacheSessionStorage($fileStorage); + + $storage->save('keep-me', 'keep_data'); + $storage->save('delete-me', 'delete_data'); + + $storage->remove('delete-me'); + + $this->assertEquals('keep_data', $storage->read('keep-me')); + $this->assertNull($storage->read('delete-me')); + } + + /** @test */ + public function testIntegrationWithSessionManager() { + $fileStorage = new FileStorage($this->cacheDir); + $cacheStorage = new CacheSessionStorage($fileStorage); + + // Simulate what SessionManager does + $sessionId = 'integration-test-789'; + $serialized = 'O:8:"stdClass":1:{s:4:"user";s:5:"admin";}'; + + $cacheStorage->save($sessionId, $serialized); + $loaded = $cacheStorage->read($sessionId); + + $this->assertEquals($serialized, $loaded); + + $cacheStorage->remove($sessionId); + $this->assertNull($cacheStorage->read($sessionId)); + } +} diff --git a/tests/phpunit10.xml b/tests/phpunit10.xml index 6e98d7523..d21277ca0 100644 --- a/tests/phpunit10.xml +++ b/tests/phpunit10.xml @@ -104,6 +104,7 @@ ../WebFiori/Framework/Session/SessionUser.php ../WebFiori/Framework/Session/SessionsManager.php ../WebFiori/Framework/Session/SessionManager.php + ../WebFiori/Framework/Session/CacheSessionStorage.php ../WebFiori/Framework/Session/SessionSchema.php ../WebFiori/Framework/Health/HealthCheck.php ../WebFiori/Framework/Health/HealthCheckResult.php From e33c04d8b62882499ea76e67082587156cd54948 Mon Sep 17 00:00:00 2001 From: Ibrahim BinAlshikh Date: Sun, 14 Jun 2026 10:58:51 +0300 Subject: [PATCH 2/3] chore: Updated License Headers --- LICENSE | 2 +- WebFiori/Framework/Access.php | 2 +- WebFiori/Framework/App.php | 2 +- WebFiori/Framework/AppBootstrapper.php | 2 +- WebFiori/Framework/Autoload/ClassInfo.php | 2 +- WebFiori/Framework/Autoload/ClassLoader.php | 2 +- WebFiori/Framework/Autoload/ClassLoaderException.php | 2 +- WebFiori/Framework/ClassRegistrar.php | 2 +- WebFiori/Framework/Cli/CLITestCase.php | 2 +- WebFiori/Framework/Cli/Commands/CreateMigrationCommand.php | 2 +- WebFiori/Framework/Cli/Commands/CreateSeederCommand.php | 2 +- WebFiori/Framework/Cli/Commands/DryRunMigrationsCommand.php | 2 +- WebFiori/Framework/Cli/Commands/InitMigrationsCommand.php | 2 +- WebFiori/Framework/Cli/Commands/MigrationsStatusCommand.php | 2 +- WebFiori/Framework/Cli/Commands/RollbackMigrationsCommand.php | 2 +- WebFiori/Framework/Cli/Commands/RunMigrationsCommandNew.php | 2 +- WebFiori/Framework/Cli/Commands/SchedulerCommand.php | 2 +- WebFiori/Framework/Cli/Commands/VersionCommand.php | 2 +- WebFiori/Framework/Cli/Commands/WHelpCommand.php | 2 +- WebFiori/Framework/Cli/Helpers/ClassInfoReader.php | 2 +- WebFiori/Framework/DB.php | 2 +- WebFiori/Framework/EmailMessage.php | 2 +- .../Framework/Exceptions/ArrayIndexOutOfBoundsException.php | 2 +- WebFiori/Framework/Exceptions/InitializationException.php | 2 +- WebFiori/Framework/Exceptions/InvalidCRONExprException.php | 2 +- WebFiori/Framework/Exceptions/MissingLangException.php | 2 +- WebFiori/Framework/Exceptions/NoSuchThemeException.php | 2 +- WebFiori/Framework/Exceptions/RoutingException.php | 2 +- WebFiori/Framework/Exceptions/SessionException.php | 2 +- WebFiori/Framework/Exceptions/UIException.php | 2 +- WebFiori/Framework/ExtendedWebServicesManager.php | 2 +- WebFiori/Framework/Handlers/APICallErrHandler.php | 2 +- WebFiori/Framework/Handlers/CLIErrHandler.php | 2 +- WebFiori/Framework/Handlers/HTTPErrHandler.php | 2 +- WebFiori/Framework/Ini.php | 2 +- WebFiori/Framework/Lang.php | 2 +- WebFiori/Framework/Middleware/AbstractMiddleware.php | 2 +- WebFiori/Framework/Middleware/MiddlewareManager.php | 2 +- WebFiori/Framework/Middleware/MiddlewareRegistry.php | 2 +- WebFiori/Framework/Privilege.php | 2 +- WebFiori/Framework/PrivilegesGroup.php | 2 +- WebFiori/Framework/Router/RouteBuilder.php | 2 +- WebFiori/Framework/Router/RouteDispatcher.php | 2 +- WebFiori/Framework/Router/RouteMatcher.php | 2 +- WebFiori/Framework/Router/RouteOption.php | 2 +- WebFiori/Framework/Router/Router.php | 2 +- WebFiori/Framework/Router/RouterUri.php | 2 +- WebFiori/Framework/Scheduler/AbstractTask.php | 2 +- WebFiori/Framework/Scheduler/BaseTask.php | 2 +- WebFiori/Framework/Scheduler/TaskArgument.php | 2 +- WebFiori/Framework/Scheduler/TasksManager.php | 2 +- WebFiori/Framework/Session/DatabaseSessionStorage.php | 2 +- WebFiori/Framework/Session/DefaultSessionStorage.php | 2 +- WebFiori/Framework/Session/Session.php | 2 +- WebFiori/Framework/Session/SessionDB.php | 2 +- WebFiori/Framework/Session/SessionManager.php | 2 +- WebFiori/Framework/Session/SessionOption.php | 2 +- WebFiori/Framework/Session/SessionSchema.php | 2 +- WebFiori/Framework/Session/SessionStatus.php | 2 +- WebFiori/Framework/Session/SessionStorage.php | 2 +- WebFiori/Framework/Session/SessionUser.php | 2 +- WebFiori/Framework/Session/SessionsManager.php | 2 +- WebFiori/Framework/Theme.php | 4 ++-- WebFiori/Framework/ThemeManager.php | 2 +- WebFiori/Framework/Ui/BeforeRenderCallback.php | 2 +- WebFiori/Framework/Ui/HTTPCodeView.php | 2 +- WebFiori/Framework/Ui/ServerErrPage/ServerErrPage.php | 2 +- WebFiori/Framework/Ui/StarterPage.php | 2 +- WebFiori/Framework/Ui/WebPage.php | 2 +- WebFiori/Framework/Ui/ui-functions.php | 2 +- WebFiori/Framework/User.php | 2 +- WebFiori/Framework/Writers/AttributeTableWriter.php | 2 +- WebFiori/Framework/Writers/CommandClassWriter.php | 2 +- WebFiori/Framework/Writers/DocblockBuilder.php | 2 +- WebFiori/Framework/Writers/DomainEntityWriter.php | 2 +- WebFiori/Framework/Writers/LangClassWriter.php | 2 +- WebFiori/Framework/Writers/MiddlewareClassWriter.php | 2 +- WebFiori/Framework/Writers/MigrationClassWriter.php | 2 +- WebFiori/Framework/Writers/RepositoryWriter.php | 2 +- WebFiori/Framework/Writers/RestServiceWriter.php | 2 +- WebFiori/Framework/Writers/SchedulerTaskClassWriter.php | 2 +- WebFiori/Framework/Writers/SeederClassWriter.php | 2 +- WebFiori/Framework/Writers/ServiceHolder.php | 2 +- WebFiori/Framework/Writers/ThemeClassWriter.php | 2 +- WebFiori/Framework/Writers/ThemeComponentWriter.php | 2 +- 85 files changed, 86 insertions(+), 86 deletions(-) diff --git a/LICENSE b/LICENSE index db65ed5f0..b4560ce3d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019-present, Ibrahim BinAlshikh and contributors. +Copyright (c) 2019-present WebFiori Framework and contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/WebFiori/Framework/Access.php b/WebFiori/Framework/Access.php index 6eb2b8055..8570b4c81 100644 --- a/WebFiori/Framework/Access.php +++ b/WebFiori/Framework/Access.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/App.php b/WebFiori/Framework/App.php index 0283f4337..eee3e6b6c 100644 --- a/WebFiori/Framework/App.php +++ b/WebFiori/Framework/App.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/AppBootstrapper.php b/WebFiori/Framework/AppBootstrapper.php index fa5154c58..d74943d70 100644 --- a/WebFiori/Framework/AppBootstrapper.php +++ b/WebFiori/Framework/AppBootstrapper.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Autoload/ClassInfo.php b/WebFiori/Framework/Autoload/ClassInfo.php index b952a79ed..83af83eb5 100644 --- a/WebFiori/Framework/Autoload/ClassInfo.php +++ b/WebFiori/Framework/Autoload/ClassInfo.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2024 Ibrahim BinAlshikh + * Copyright (c) 2024-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Autoload/ClassLoader.php b/WebFiori/Framework/Autoload/ClassLoader.php index 1567de78f..2f719f6fd 100644 --- a/WebFiori/Framework/Autoload/ClassLoader.php +++ b/WebFiori/Framework/Autoload/ClassLoader.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Autoload/ClassLoaderException.php b/WebFiori/Framework/Autoload/ClassLoaderException.php index f45a27a37..cd442e5f7 100644 --- a/WebFiori/Framework/Autoload/ClassLoaderException.php +++ b/WebFiori/Framework/Autoload/ClassLoaderException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/ClassRegistrar.php b/WebFiori/Framework/ClassRegistrar.php index ba1bb3a5e..26d74fdb6 100644 --- a/WebFiori/Framework/ClassRegistrar.php +++ b/WebFiori/Framework/ClassRegistrar.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/CLITestCase.php b/WebFiori/Framework/Cli/CLITestCase.php index 391e96d8f..8601ae631 100644 --- a/WebFiori/Framework/Cli/CLITestCase.php +++ b/WebFiori/Framework/Cli/CLITestCase.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2024 Ibrahim BinAlshikh + * Copyright (c) 2024-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/CreateMigrationCommand.php b/WebFiori/Framework/Cli/Commands/CreateMigrationCommand.php index 789e65058..e340e6115 100644 --- a/WebFiori/Framework/Cli/Commands/CreateMigrationCommand.php +++ b/WebFiori/Framework/Cli/Commands/CreateMigrationCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/CreateSeederCommand.php b/WebFiori/Framework/Cli/Commands/CreateSeederCommand.php index 9eef592db..10a675f0c 100644 --- a/WebFiori/Framework/Cli/Commands/CreateSeederCommand.php +++ b/WebFiori/Framework/Cli/Commands/CreateSeederCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/DryRunMigrationsCommand.php b/WebFiori/Framework/Cli/Commands/DryRunMigrationsCommand.php index 9adcd3c0f..2d38e1c0e 100644 --- a/WebFiori/Framework/Cli/Commands/DryRunMigrationsCommand.php +++ b/WebFiori/Framework/Cli/Commands/DryRunMigrationsCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/InitMigrationsCommand.php b/WebFiori/Framework/Cli/Commands/InitMigrationsCommand.php index 30620fa8b..d3711ef00 100644 --- a/WebFiori/Framework/Cli/Commands/InitMigrationsCommand.php +++ b/WebFiori/Framework/Cli/Commands/InitMigrationsCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/MigrationsStatusCommand.php b/WebFiori/Framework/Cli/Commands/MigrationsStatusCommand.php index c444eee51..07c5ff5e0 100644 --- a/WebFiori/Framework/Cli/Commands/MigrationsStatusCommand.php +++ b/WebFiori/Framework/Cli/Commands/MigrationsStatusCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/RollbackMigrationsCommand.php b/WebFiori/Framework/Cli/Commands/RollbackMigrationsCommand.php index f0b8883f9..f225c05e2 100644 --- a/WebFiori/Framework/Cli/Commands/RollbackMigrationsCommand.php +++ b/WebFiori/Framework/Cli/Commands/RollbackMigrationsCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/RunMigrationsCommandNew.php b/WebFiori/Framework/Cli/Commands/RunMigrationsCommandNew.php index e935eafb8..ff9e97d66 100644 --- a/WebFiori/Framework/Cli/Commands/RunMigrationsCommandNew.php +++ b/WebFiori/Framework/Cli/Commands/RunMigrationsCommandNew.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/SchedulerCommand.php b/WebFiori/Framework/Cli/Commands/SchedulerCommand.php index 1aab73bd2..e6147b8b6 100644 --- a/WebFiori/Framework/Cli/Commands/SchedulerCommand.php +++ b/WebFiori/Framework/Cli/Commands/SchedulerCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/VersionCommand.php b/WebFiori/Framework/Cli/Commands/VersionCommand.php index d60a80574..aeb92cddf 100644 --- a/WebFiori/Framework/Cli/Commands/VersionCommand.php +++ b/WebFiori/Framework/Cli/Commands/VersionCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Commands/WHelpCommand.php b/WebFiori/Framework/Cli/Commands/WHelpCommand.php index f91d8a1d2..d64a76484 100644 --- a/WebFiori/Framework/Cli/Commands/WHelpCommand.php +++ b/WebFiori/Framework/Cli/Commands/WHelpCommand.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Cli/Helpers/ClassInfoReader.php b/WebFiori/Framework/Cli/Helpers/ClassInfoReader.php index 4bfa58dd8..41626db93 100644 --- a/WebFiori/Framework/Cli/Helpers/ClassInfoReader.php +++ b/WebFiori/Framework/Cli/Helpers/ClassInfoReader.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/DB.php b/WebFiori/Framework/DB.php index edbc216c7..51425e3a4 100644 --- a/WebFiori/Framework/DB.php +++ b/WebFiori/Framework/DB.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/EmailMessage.php b/WebFiori/Framework/EmailMessage.php index 9e50b9835..e6bffef47 100644 --- a/WebFiori/Framework/EmailMessage.php +++ b/WebFiori/Framework/EmailMessage.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/ArrayIndexOutOfBoundsException.php b/WebFiori/Framework/Exceptions/ArrayIndexOutOfBoundsException.php index 3251befa0..55566fb90 100644 --- a/WebFiori/Framework/Exceptions/ArrayIndexOutOfBoundsException.php +++ b/WebFiori/Framework/Exceptions/ArrayIndexOutOfBoundsException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/InitializationException.php b/WebFiori/Framework/Exceptions/InitializationException.php index 143f95c97..5327a5afa 100644 --- a/WebFiori/Framework/Exceptions/InitializationException.php +++ b/WebFiori/Framework/Exceptions/InitializationException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/InvalidCRONExprException.php b/WebFiori/Framework/Exceptions/InvalidCRONExprException.php index 95eac152a..fa9a8b342 100644 --- a/WebFiori/Framework/Exceptions/InvalidCRONExprException.php +++ b/WebFiori/Framework/Exceptions/InvalidCRONExprException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/MissingLangException.php b/WebFiori/Framework/Exceptions/MissingLangException.php index 50d95c9f0..82910ad87 100644 --- a/WebFiori/Framework/Exceptions/MissingLangException.php +++ b/WebFiori/Framework/Exceptions/MissingLangException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/NoSuchThemeException.php b/WebFiori/Framework/Exceptions/NoSuchThemeException.php index c65e00bec..4cd946ee7 100644 --- a/WebFiori/Framework/Exceptions/NoSuchThemeException.php +++ b/WebFiori/Framework/Exceptions/NoSuchThemeException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/RoutingException.php b/WebFiori/Framework/Exceptions/RoutingException.php index ff6b240ef..1e4078a19 100644 --- a/WebFiori/Framework/Exceptions/RoutingException.php +++ b/WebFiori/Framework/Exceptions/RoutingException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/SessionException.php b/WebFiori/Framework/Exceptions/SessionException.php index f576f0ad1..22608089b 100644 --- a/WebFiori/Framework/Exceptions/SessionException.php +++ b/WebFiori/Framework/Exceptions/SessionException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Exceptions/UIException.php b/WebFiori/Framework/Exceptions/UIException.php index a21f14e2b..f1b7219f5 100644 --- a/WebFiori/Framework/Exceptions/UIException.php +++ b/WebFiori/Framework/Exceptions/UIException.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/ExtendedWebServicesManager.php b/WebFiori/Framework/ExtendedWebServicesManager.php index 9d5d3ee12..40f99c521 100644 --- a/WebFiori/Framework/ExtendedWebServicesManager.php +++ b/WebFiori/Framework/ExtendedWebServicesManager.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Handlers/APICallErrHandler.php b/WebFiori/Framework/Handlers/APICallErrHandler.php index 5e2a272ff..3cfd9da5b 100644 --- a/WebFiori/Framework/Handlers/APICallErrHandler.php +++ b/WebFiori/Framework/Handlers/APICallErrHandler.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2022 Ibrahim BinAlshikh + * Copyright (c) 2022-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Handlers/CLIErrHandler.php b/WebFiori/Framework/Handlers/CLIErrHandler.php index 8014afbe6..f4464ed20 100644 --- a/WebFiori/Framework/Handlers/CLIErrHandler.php +++ b/WebFiori/Framework/Handlers/CLIErrHandler.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2022 Ibrahim BinAlshikh + * Copyright (c) 2022-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Handlers/HTTPErrHandler.php b/WebFiori/Framework/Handlers/HTTPErrHandler.php index be8ed9efd..036e383b0 100644 --- a/WebFiori/Framework/Handlers/HTTPErrHandler.php +++ b/WebFiori/Framework/Handlers/HTTPErrHandler.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2022 Ibrahim BinAlshikh + * Copyright (c) 2022-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ini.php b/WebFiori/Framework/Ini.php index 9ea8101ec..d6141f2c3 100644 --- a/WebFiori/Framework/Ini.php +++ b/WebFiori/Framework/Ini.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2023 Ibrahim BinAlshikh + * Copyright (c) 2023-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Lang.php b/WebFiori/Framework/Lang.php index 40d32ba57..d192e808f 100644 --- a/WebFiori/Framework/Lang.php +++ b/WebFiori/Framework/Lang.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Middleware/AbstractMiddleware.php b/WebFiori/Framework/Middleware/AbstractMiddleware.php index 940e18349..4118bae11 100644 --- a/WebFiori/Framework/Middleware/AbstractMiddleware.php +++ b/WebFiori/Framework/Middleware/AbstractMiddleware.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Middleware/MiddlewareManager.php b/WebFiori/Framework/Middleware/MiddlewareManager.php index e81af1e26..94f8e525a 100644 --- a/WebFiori/Framework/Middleware/MiddlewareManager.php +++ b/WebFiori/Framework/Middleware/MiddlewareManager.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Middleware/MiddlewareRegistry.php b/WebFiori/Framework/Middleware/MiddlewareRegistry.php index 55ea01889..67e59882e 100644 --- a/WebFiori/Framework/Middleware/MiddlewareRegistry.php +++ b/WebFiori/Framework/Middleware/MiddlewareRegistry.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Privilege.php b/WebFiori/Framework/Privilege.php index e603e8f67..696bb159b 100644 --- a/WebFiori/Framework/Privilege.php +++ b/WebFiori/Framework/Privilege.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/PrivilegesGroup.php b/WebFiori/Framework/PrivilegesGroup.php index d63a5eab5..38b92b851 100644 --- a/WebFiori/Framework/PrivilegesGroup.php +++ b/WebFiori/Framework/PrivilegesGroup.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/RouteBuilder.php b/WebFiori/Framework/Router/RouteBuilder.php index f7129869d..a262066b9 100644 --- a/WebFiori/Framework/Router/RouteBuilder.php +++ b/WebFiori/Framework/Router/RouteBuilder.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/RouteDispatcher.php b/WebFiori/Framework/Router/RouteDispatcher.php index 0d902d66f..f07751300 100644 --- a/WebFiori/Framework/Router/RouteDispatcher.php +++ b/WebFiori/Framework/Router/RouteDispatcher.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/RouteMatcher.php b/WebFiori/Framework/Router/RouteMatcher.php index d007c0c6f..57f9cb5f1 100644 --- a/WebFiori/Framework/Router/RouteMatcher.php +++ b/WebFiori/Framework/Router/RouteMatcher.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/RouteOption.php b/WebFiori/Framework/Router/RouteOption.php index ef8dc0280..7934ede46 100644 --- a/WebFiori/Framework/Router/RouteOption.php +++ b/WebFiori/Framework/Router/RouteOption.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/Router.php b/WebFiori/Framework/Router/Router.php index 28c54f95e..25993c056 100644 --- a/WebFiori/Framework/Router/Router.php +++ b/WebFiori/Framework/Router/Router.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Router/RouterUri.php b/WebFiori/Framework/Router/RouterUri.php index 36efa5162..23f753073 100644 --- a/WebFiori/Framework/Router/RouterUri.php +++ b/WebFiori/Framework/Router/RouterUri.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Scheduler/AbstractTask.php b/WebFiori/Framework/Scheduler/AbstractTask.php index 0cb0ad4ca..4fedcd463 100644 --- a/WebFiori/Framework/Scheduler/AbstractTask.php +++ b/WebFiori/Framework/Scheduler/AbstractTask.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Scheduler/BaseTask.php b/WebFiori/Framework/Scheduler/BaseTask.php index f9ce96f5f..1f203b06e 100644 --- a/WebFiori/Framework/Scheduler/BaseTask.php +++ b/WebFiori/Framework/Scheduler/BaseTask.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2018 Ibrahim BinAlshikh + * Copyright (c) 2018-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Scheduler/TaskArgument.php b/WebFiori/Framework/Scheduler/TaskArgument.php index 5cef347cc..4e31650aa 100644 --- a/WebFiori/Framework/Scheduler/TaskArgument.php +++ b/WebFiori/Framework/Scheduler/TaskArgument.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Scheduler/TasksManager.php b/WebFiori/Framework/Scheduler/TasksManager.php index 72a14f4cb..766ddcc96 100644 --- a/WebFiori/Framework/Scheduler/TasksManager.php +++ b/WebFiori/Framework/Scheduler/TasksManager.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2018 Ibrahim BinAlshikh + * Copyright (c) 2018-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/DatabaseSessionStorage.php b/WebFiori/Framework/Session/DatabaseSessionStorage.php index 6e017dc5b..33bd5bef8 100644 --- a/WebFiori/Framework/Session/DatabaseSessionStorage.php +++ b/WebFiori/Framework/Session/DatabaseSessionStorage.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/DefaultSessionStorage.php b/WebFiori/Framework/Session/DefaultSessionStorage.php index 53c0aad8d..b9d36bf2a 100644 --- a/WebFiori/Framework/Session/DefaultSessionStorage.php +++ b/WebFiori/Framework/Session/DefaultSessionStorage.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/Session.php b/WebFiori/Framework/Session/Session.php index 89b416f71..1197a708c 100644 --- a/WebFiori/Framework/Session/Session.php +++ b/WebFiori/Framework/Session/Session.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionDB.php b/WebFiori/Framework/Session/SessionDB.php index 055028acd..ffe6e67f2 100644 --- a/WebFiori/Framework/Session/SessionDB.php +++ b/WebFiori/Framework/Session/SessionDB.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionManager.php b/WebFiori/Framework/Session/SessionManager.php index 726df6b59..0e457733e 100644 --- a/WebFiori/Framework/Session/SessionManager.php +++ b/WebFiori/Framework/Session/SessionManager.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionOption.php b/WebFiori/Framework/Session/SessionOption.php index a7953a634..343bd06c8 100644 --- a/WebFiori/Framework/Session/SessionOption.php +++ b/WebFiori/Framework/Session/SessionOption.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2024 Ibrahim BinAlshikh + * Copyright (c) 2024-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionSchema.php b/WebFiori/Framework/Session/SessionSchema.php index f340fefe4..acdcf8c57 100644 --- a/WebFiori/Framework/Session/SessionSchema.php +++ b/WebFiori/Framework/Session/SessionSchema.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionStatus.php b/WebFiori/Framework/Session/SessionStatus.php index bb4a840f4..63a5bd6c3 100644 --- a/WebFiori/Framework/Session/SessionStatus.php +++ b/WebFiori/Framework/Session/SessionStatus.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2023 Ibrahim BinAlshikh + * Copyright (c) 2023-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionStorage.php b/WebFiori/Framework/Session/SessionStorage.php index 7e8e428f8..8a6a05a1f 100644 --- a/WebFiori/Framework/Session/SessionStorage.php +++ b/WebFiori/Framework/Session/SessionStorage.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionUser.php b/WebFiori/Framework/Session/SessionUser.php index 198a95665..f5f4a5375 100644 --- a/WebFiori/Framework/Session/SessionUser.php +++ b/WebFiori/Framework/Session/SessionUser.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Session/SessionsManager.php b/WebFiori/Framework/Session/SessionsManager.php index 14616478d..709089c2b 100644 --- a/WebFiori/Framework/Session/SessionsManager.php +++ b/WebFiori/Framework/Session/SessionsManager.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Theme.php b/WebFiori/Framework/Theme.php index a5dafc576..14708f67a 100644 --- a/WebFiori/Framework/Theme.php +++ b/WebFiori/Framework/Theme.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE @@ -525,7 +525,7 @@ public function setAfterLoaded(callable $function, array $params = []) { /** * Sets the name of theme author. * - * @param string $author The name of theme author (such as 'Ibrahim BinAlshikh'). + * @param string $author The name of theme author (such as '-present WebFiori Framework'). * * @since 1.0 */ diff --git a/WebFiori/Framework/ThemeManager.php b/WebFiori/Framework/ThemeManager.php index 527208bd8..42053f103 100644 --- a/WebFiori/Framework/ThemeManager.php +++ b/WebFiori/Framework/ThemeManager.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/BeforeRenderCallback.php b/WebFiori/Framework/Ui/BeforeRenderCallback.php index 059c34066..bf43034b5 100644 --- a/WebFiori/Framework/Ui/BeforeRenderCallback.php +++ b/WebFiori/Framework/Ui/BeforeRenderCallback.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2022 Ibrahim BinAlshikh + * Copyright (c) 2022-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/HTTPCodeView.php b/WebFiori/Framework/Ui/HTTPCodeView.php index 6c3e8c989..226821ba4 100644 --- a/WebFiori/Framework/Ui/HTTPCodeView.php +++ b/WebFiori/Framework/Ui/HTTPCodeView.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/ServerErrPage/ServerErrPage.php b/WebFiori/Framework/Ui/ServerErrPage/ServerErrPage.php index 3f4525e25..f87564572 100644 --- a/WebFiori/Framework/Ui/ServerErrPage/ServerErrPage.php +++ b/WebFiori/Framework/Ui/ServerErrPage/ServerErrPage.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2023 Ibrahim BinAlshikh + * Copyright (c) 2023-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/StarterPage.php b/WebFiori/Framework/Ui/StarterPage.php index ab4173613..d25d3d83b 100644 --- a/WebFiori/Framework/Ui/StarterPage.php +++ b/WebFiori/Framework/Ui/StarterPage.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/WebPage.php b/WebFiori/Framework/Ui/WebPage.php index 3433c1afd..21d0f4057 100644 --- a/WebFiori/Framework/Ui/WebPage.php +++ b/WebFiori/Framework/Ui/WebPage.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Ui/ui-functions.php b/WebFiori/Framework/Ui/ui-functions.php index f284a8d36..92ddba72a 100644 --- a/WebFiori/Framework/Ui/ui-functions.php +++ b/WebFiori/Framework/Ui/ui-functions.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2023 Ibrahim BinAlshikh + * Copyright (c) 2023-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/User.php b/WebFiori/Framework/User.php index ca3f579fd..c3044b4d9 100644 --- a/WebFiori/Framework/User.php +++ b/WebFiori/Framework/User.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2019 Ibrahim BinAlshikh + * Copyright (c) 2019-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/AttributeTableWriter.php b/WebFiori/Framework/Writers/AttributeTableWriter.php index e14ed4b7c..dc86b8cac 100644 --- a/WebFiori/Framework/Writers/AttributeTableWriter.php +++ b/WebFiori/Framework/Writers/AttributeTableWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/CommandClassWriter.php b/WebFiori/Framework/Writers/CommandClassWriter.php index 75d2a3b3e..44dfdeae8 100644 --- a/WebFiori/Framework/Writers/CommandClassWriter.php +++ b/WebFiori/Framework/Writers/CommandClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/DocblockBuilder.php b/WebFiori/Framework/Writers/DocblockBuilder.php index d763b7abe..73d957e7a 100644 --- a/WebFiori/Framework/Writers/DocblockBuilder.php +++ b/WebFiori/Framework/Writers/DocblockBuilder.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/DomainEntityWriter.php b/WebFiori/Framework/Writers/DomainEntityWriter.php index 346b10d0a..9b9ad233a 100644 --- a/WebFiori/Framework/Writers/DomainEntityWriter.php +++ b/WebFiori/Framework/Writers/DomainEntityWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/LangClassWriter.php b/WebFiori/Framework/Writers/LangClassWriter.php index eaa477138..76d7f7ae1 100644 --- a/WebFiori/Framework/Writers/LangClassWriter.php +++ b/WebFiori/Framework/Writers/LangClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2021 Ibrahim BinAlshikh + * Copyright (c) 2021-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/MiddlewareClassWriter.php b/WebFiori/Framework/Writers/MiddlewareClassWriter.php index d615f1331..17becc68f 100644 --- a/WebFiori/Framework/Writers/MiddlewareClassWriter.php +++ b/WebFiori/Framework/Writers/MiddlewareClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/MigrationClassWriter.php b/WebFiori/Framework/Writers/MigrationClassWriter.php index 1376bc930..aa5fb1630 100644 --- a/WebFiori/Framework/Writers/MigrationClassWriter.php +++ b/WebFiori/Framework/Writers/MigrationClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/RepositoryWriter.php b/WebFiori/Framework/Writers/RepositoryWriter.php index 0056d48ed..3f5d4b916 100644 --- a/WebFiori/Framework/Writers/RepositoryWriter.php +++ b/WebFiori/Framework/Writers/RepositoryWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/RestServiceWriter.php b/WebFiori/Framework/Writers/RestServiceWriter.php index 0f7edf50f..ffc1dfba2 100644 --- a/WebFiori/Framework/Writers/RestServiceWriter.php +++ b/WebFiori/Framework/Writers/RestServiceWriter.php @@ -3,7 +3,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2026 Ibrahim BinAlshikh + * Copyright (c) 2026-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/SchedulerTaskClassWriter.php b/WebFiori/Framework/Writers/SchedulerTaskClassWriter.php index 45aefcee9..964ff16df 100644 --- a/WebFiori/Framework/Writers/SchedulerTaskClassWriter.php +++ b/WebFiori/Framework/Writers/SchedulerTaskClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/SeederClassWriter.php b/WebFiori/Framework/Writers/SeederClassWriter.php index dc226f3e0..0f0b50945 100644 --- a/WebFiori/Framework/Writers/SeederClassWriter.php +++ b/WebFiori/Framework/Writers/SeederClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2025 Ibrahim BinAlshikh + * Copyright (c) 2025-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/ServiceHolder.php b/WebFiori/Framework/Writers/ServiceHolder.php index 0280077cb..21fee879c 100644 --- a/WebFiori/Framework/Writers/ServiceHolder.php +++ b/WebFiori/Framework/Writers/ServiceHolder.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/ThemeClassWriter.php b/WebFiori/Framework/Writers/ThemeClassWriter.php index cf2c365ad..0adbd4873 100644 --- a/WebFiori/Framework/Writers/ThemeClassWriter.php +++ b/WebFiori/Framework/Writers/ThemeClassWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE diff --git a/WebFiori/Framework/Writers/ThemeComponentWriter.php b/WebFiori/Framework/Writers/ThemeComponentWriter.php index 7588d1bc0..5a88d3efb 100644 --- a/WebFiori/Framework/Writers/ThemeComponentWriter.php +++ b/WebFiori/Framework/Writers/ThemeComponentWriter.php @@ -2,7 +2,7 @@ /** * This file is licensed under MIT License. * - * Copyright (c) 2020 Ibrahim BinAlshikh + * Copyright (c) 2020-present WebFiori Framework * * For more information on the license, please visit: * https://github.com/WebFiori/.github/blob/main/LICENSE From c9a0bde7809bea701938353d80b9a4984c365c63 Mon Sep 17 00:00:00 2001 From: Ibrahim BinAlshikh Date: Sun, 14 Jun 2026 11:01:16 +0300 Subject: [PATCH 3/3] ci: show docs/ci/test/build/refactor commits in changelog --- release-please-config.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/release-please-config.json b/release-please-config.json index 180f5dec7..519962e11 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -9,13 +9,13 @@ { "type": "fix", "section": "Bug Fixes" }, { "type": "perf", "section": "Performance Improvements" }, { "type": "revert", "section": "Reverts" }, - { "type": "docs", "section": "Documentation" }, - { "type": "style", "section": "Styles" }, - { "type": "chore", "section": "Miscellaneous Chores" }, - { "type": "refactor", "section": "Code Refactoring" }, - { "type": "test", "section": "Testing" }, - { "type": "build", "section": "Build System" }, - { "type": "ci", "section": "Continuous Integration" }, + { "type": "docs", "section": "Documentation", "hidden": false }, + { "type": "style", "section": "Styles", "hidden": false }, + { "type": "chore", "section": "Miscellaneous Chores", "hidden": false }, + { "type": "refactor", "section": "Code Refactoring", "hidden": false }, + { "type": "test", "section": "Testing", "hidden": false }, + { "type": "build", "section": "Build System", "hidden": false }, + { "type": "ci", "section": "Continuous Integration", "hidden": false }, { "type": "ui", "section": "User Interface" }, { "type": "database", "section": "Database Changes" }, { "type": "email", "section": "Email Notifications Changes" }