- How do I install keboola/php-temp in a Laravel project?
- Install it with Composer using composer require keboola/php-temp. The package is framework-agnostic, so no Laravel service provider or config file is required. You can use the Temp class directly in application code, tests, or Artisan commands.
- How does keboola/php-temp clean up temporary files automatically?
- The package creates a dedicated temp directory and registers cleanup when the Temp object is destroyed. On destruction it recursively removes that directory and everything inside it. This keeps test suites and CLI tools from leaving artifacts behind without manual teardown.
- Can I use keboola/php-temp in PHPUnit or Laravel tests?
- Yes. It is framework-agnostic PHP, so it works inside PHPUnit tests in a Laravel project. Create temp files or directories through the Temp object and let it go out of scope to trigger recursive cleanup. Avoid holding references longer than needed if you rely on automatic removal.
- How do I create a temporary file with specific contents using keboola/php-temp?
- Use the createFileWithContents() helper to write contents into a new temporary file. The helpers return paths or SplFileInfo objects, so you can choose the form that fits your code. Check the package API for the exact argument order and return type in your installed version.
- What is the run ID prefix in keboola/php-temp and when should I use it?
- The run ID is an optional prefix used when creating the temp directory under the system temp path. It groups temp files created during the same process or run, which helps identify and organize related artifacts. Use it when multiple runs or workers may create temp files concurrently.
- Does keboola/php-temp work with Laravel storage or a custom temp directory?
- Yes. By default it uses sys_get_temp_dir(), but you can point it at a custom base directory. In Laravel you can choose a writable directory such as a subfolder under storage if your deployment permits it. Ensure the process has write and delete permissions there.
- Is keboola/php-temp compatible with Laravel 10, 11, and newer?
- keboola/php-temp is framework-agnostic and does not declare Laravel version constraints. It can be used with Laravel 10, 11, and other versions as long as your PHP version satisfies the package's Composer requirements. Check composer.json for the current PHP constraint.
- What happens if the Temp object is not destroyed in keboola/php-temp?
- Automatic cleanup happens when the Temp object is destroyed. If the object stays referenced, or the PHP process terminates abruptly, recursive removal may not run. In long-running workers, explicitly manage object lifetime or clean up on shutdown if leftover files matter.
- What are alternatives to keboola/php-temp for temporary files in PHP?
- Alternatives include PHP's tempnam() and sys_get_temp_dir(), Symfony Filesystem's temp file helpers, and other temporary-directory packages. keboola/php-temp focuses on a managed temp directory with recursive cleanup and an optional run ID prefix. Choose based on whether you need automatic directory cleanup or just single-file helpers.
- Is keboola/php-temp suitable for production or only for tests?
- It is suitable for tests, CLI tools, imports, and workflows that need throwaway disk storage. Its automatic recursive cleanup reduces leftover artifacts, but in long-running production processes you should verify when the Temp object is destroyed. It is not Laravel-specific, so no framework integration is required.