From b89545511938f118929fb816676711a35d64b252 Mon Sep 17 00:00:00 2001 From: Saeed Vaziry Date: Tue, 7 Apr 2026 19:33:22 +0200 Subject: [PATCH] Add plain PHP loader support --- index.php | 4 ++-- src/Loader.php | 5 +++++ src/Loaders/BaseLoader.php | 5 +++++ src/Loaders/LoaderInterface.php | 2 ++ src/Loaders/PlainPhpLoader.php | 26 ++++++++++++++++++++++++++ 5 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 src/Loaders/PlainPhpLoader.php diff --git a/index.php b/index.php index 2d3fbb1..aa7656b 100644 --- a/index.php +++ b/index.php @@ -13,10 +13,10 @@ } $customLoader = Cli::getArgument('loader'); -$loader = Loader::load($arguments[1], $customLoader); +$loader = Loader::load($arguments[1], $customLoader ?: null); if ($loader === null) { - echo 'Invalid path'.PHP_EOL; + echo 'No supported project found. Make sure the path contains a Composer project (vendor/autoload.php).'.PHP_EOL; exit(1); } diff --git a/src/Loader.php b/src/Loader.php index b12d3bd..6eab317 100644 --- a/src/Loader.php +++ b/src/Loader.php @@ -6,6 +6,7 @@ use TweakPHP\Client\Loaders\LaravelLoader; use TweakPHP\Client\Loaders\LoaderInterface; use TweakPHP\Client\Loaders\PimcoreLoader; +use TweakPHP\Client\Loaders\PlainPhpLoader; use TweakPHP\Client\Loaders\SymfonyLoader; use TweakPHP\Client\Loaders\WordPressLoader; @@ -44,6 +45,10 @@ public static function load(string $path, ?string $encodedLoader = null) return new ComposerLoader($path); } + if (PlainPhpLoader::supports($path)) { + return new PlainPhpLoader($path); + } + return null; } diff --git a/src/Loaders/BaseLoader.php b/src/Loaders/BaseLoader.php index 384e525..bc47dd2 100644 --- a/src/Loaders/BaseLoader.php +++ b/src/Loaders/BaseLoader.php @@ -41,6 +41,11 @@ public function execute(string $code): array return $this->tinker->execute($code); } + public function executeStreaming(string $code): void + { + $this->tinker->executeStreaming($code); + } + public function casters(): array { return []; diff --git a/src/Loaders/LoaderInterface.php b/src/Loaders/LoaderInterface.php index 6dbd295..e08b040 100644 --- a/src/Loaders/LoaderInterface.php +++ b/src/Loaders/LoaderInterface.php @@ -14,5 +14,7 @@ public function init(): void; public function execute(string $code): array; + public function executeStreaming(string $code): void; + public function casters(): array; } diff --git a/src/Loaders/PlainPhpLoader.php b/src/Loaders/PlainPhpLoader.php new file mode 100644 index 0000000..2386afe --- /dev/null +++ b/src/Loaders/PlainPhpLoader.php @@ -0,0 +1,26 @@ +