akmnahid/laravel-local-env-support

The laravel-local-env-support plugin allows Laravel developers to seamlessly integrate environment-specific .env.local configurations, enhancing adaptability across different development stages.

v1.0.3 2024-10-01 09:36 UTC

This package is not auto-updated.

Last update: 2024-11-13 08:01:30 UTC


README

License Total Downloads

A Laravel package to add support for .env.local files, allowing you to override environment variables defined in the main .env file without modifying it. This is particularly useful for local development and testing environments.

Table of Contents

Installation

You can install this package via Composer:

composer require akmnahid/laravel-local-env-support

To install directly from VCS repository in your composer.json:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/akmnahid/laravel-local-env-support"
        }
    ],
    "require": {
        "akmnahid/laravel-local-env-support": "dev-main"
    }
}

Then run:

composer update

Usage

  1. Create a .env.local file in the root directory of your Laravel project.

  2. Add environment variables to .env.local that you wish to override from the main .env file.

    Example .env.local:

    APP_DEBUG=true
    DB_HOST=localhost
  3. Ensure .env.local is added to your .gitignore file to prevent it from being committed to version control.

  4. Clear the configuration cache if you have previously cached your configurations:

    php artisan config:clear
  5. Run your application as usual. Variables defined in .env.local will override those in .env.

Features

  • Override Environment Variables: Variables in .env.local will override those defined in .env.

  • Easy to Use: Simply install the package and create a .env.local file.

  • Auto-Discovery: The package uses Laravel's auto-discovery feature, so no additional setup is required.

Requirements

  • PHP: >=7.3
  • Laravel: >=8.0
  • Dependencies:
    • vlucas/phpdotenv: >=5.5

License

This project is licensed under the MIT License. See the LICENSE file for details.

Additional Notes

  • Environment File Order: The variables in .env.local will override those in .env. This allows you to keep default settings in .env and customize only the necessary variables in .env.local.

  • Version Control: It's recommended to add .env.local to your .gitignore file to prevent sensitive data from being committed to your repository.

  • Configuration Caching: If you cache your configurations using php artisan config:cache, remember to clear the cache whenever you make changes to your environment files.

    php artisan config:clear
  • Auto-Discovery: This package supports Laravel's package auto-discovery, so you don't need to manually add the service provider to your config/app.php file.

  • To Add Manually: Add following to your config/app.php file:

'providers' => [
    // Other Service Providers

    \LaravelEnvLocal\EnvLocalServiceProvider::class, // Add this line
],

Troubleshooting

  • Variables Not Overriding: If the variables from .env.local are not overriding those from .env, ensure that:

    • The .env.local file is located in the root directory of your Laravel project.
    • You have cleared the configuration cache using php artisan config:clear.
    • There are no syntax errors in your .env.local file.
  • Cache Issues: Remember that environment variables are cached when you run php artisan config:cache. Always clear the cache after making changes to your environment files.

Credits

Support

If you encounter any issues or have questions, feel free to open an issue on GitHub .

Versioning

This project adheres to Semantic Versioning. For the versions available, see the tags on this repository.

Changelog

All notable changes to this project will be documented in this section.

  • v1.0.3: Updated readme.md
  • v1.0.2: Updates with new codebases
  • v1.0.1: Initial release with support for loading .env.local files.
  • v1.0.0: Initial release with support for loading .env.local files.

Feel free to customize and extend this package to suit your specific needs. Contributions and suggestions are welcome!