Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Php Tmpfile

Php Tmpfile Laravel Package

mikehaertl/php-tmpfile

Create and manage secure temporary files in PHP with an object-oriented API. php-tmpfile handles creation, automatic cleanup, and safe paths across platforms—ideal for generating intermediate output, working with CLI tools, or handling uploads without manual temp file housekeeping.

View on GitHub
Deep Wiki
Context7

A convenience class for temporary files

Frequently asked questions about Php Tmpfile
Can I use php-tmpfile in Laravel for handling file uploads before validation?
Yes, php-tmpfile is ideal for this use case. Create a temporary file with `TmpFile::create()`, write the uploaded content, and process it before moving it to permanent storage. The package handles cleanup automatically when the object is destroyed, reducing manual error-prone code.
How does php-tmpfile integrate with Laravel’s Storage facade?
php-tmpfile is designed for ephemeral files, while Laravel’s Storage facade handles persistent storage. You can use both together—for example, create a temp file with php-tmpfile, process it, then move it to Storage using `Storage::put()`. It’s a great complement for hybrid workflows.
Will php-tmpfile work with Laravel’s filesystem drivers like S3?
The package is built for local temporary files using PHP’s native `tmpfile()` and `sys_get_temp_dir()`. For cloud storage, you’d need to extend it with a FlySystem adapter, but out of the box, it’s optimized for local temp files in Laravel.
Does php-tmpfile support Laravel’s service container for dependency injection?
Yes, you can bind `TmpFile` to Laravel’s service container for easy dependency injection. Register it in `AppServiceProvider` using `bind()` and then resolve it in your services or controllers. This keeps your code clean and testable.
How do I ensure temporary files are deleted even if an exception occurs?
php-tmpfile includes a `delete()` method and automatic cleanup via `__destruct()`. For extra safety, wrap your code in a `try-catch` block and explicitly call `delete()` if needed. Alternatively, integrate with Laravel’s event system to trigger cleanup on request end.
Is php-tmpfile compatible with Laravel 8, 9, and 10?
Yes, the package supports Laravel 8+ and PHP 8.1+. It has no breaking changes and works seamlessly with Laravel’s filesystem abstraction. Always check the package’s Composer requirements for the latest Laravel version support.
Can I mock php-tmpfile in Laravel’s PHPUnit tests?
Absolutely. The package’s simplicity makes it easy to mock. Use PHPUnit’s mock builder to create a fake `TmpFile` instance and stub methods like `write()`, `read()`, and `delete()`. This ensures your tests remain fast and isolated.
What’s the performance impact of using php-tmpfile vs. native tmpfile()?
The overhead is negligible. php-tmpfile adds a thin abstraction layer over PHP’s native functions, so performance is nearly identical to `tmpfile()`. Benchmark it in your specific use case, but expect minimal differences for most applications.
How can I extend php-tmpfile to support custom temp directories?
You can pass a custom directory path to `TmpFile::create()` using the `setDirectory()` method. This is useful if you need temp files in a specific location, like a Laravel storage disk. Just ensure the directory is writable.
Are there alternatives to php-tmpfile for Laravel temp files?
Yes, Laravel’s built-in `Storage::disk('local')->put()` can handle temporary files, but it lacks auto-cleanup and is less opinionated. For more advanced use cases, consider `league/flysystem` with a temporary adapter, though it’s heavier. php-tmpfile strikes a balance between simplicity and convenience.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
graham-campbell/flysystem
bugban/symfony
beyonder-capi/workflow-extensions-bundle
beyonder-capi/job-queue-bundle
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php