Definindo e usando variáveis ​​de ambiente dentro do PHP

Overview

Variáveis ambientes PHP

Definindo e usando variáveis ​​de ambiente dentro do PHP

  • A primeira coisa a fazer é criar o arquivo composer.json na pasta raiz do projeto, com o seguinte padrão.
{
  "name": "starting/mvc",
  "autoload": {
    "psr-4": {
      "App\\":"app/"
    }
  }
}
  • Depois de criar seu arquivo composer.json, você precisa executar o seguinte comando em seu terminal, lembre-se de que você precisa estar na pasta raiz de seu projeto.
  composer install

se tudo estiver ok, uma pasta VENDOR foi criada em seu diretório, esta pasta contém os arquivos necessários para realizar as importações automáticas de nossos arquivos PHP.

  • Em sua pasta raiz, você precisa criar um arquivo index.php, é onde nosso aplicativo irá iniciar.
  // Arquivo index.php
  <?php
      require __DIR__.'/vendor/autoload.php';

se tudo correr bem você terá a seguinte estrutura de pastas e arquivos, não se preocupe com os arquivos dentro da pasta VENDOR.


📂 vendor
📃 index.php


  • Agora vamos criar o arquivo ".env" na raiz do projeto, onde vão ficar as variáveis ​​de ambiente.
  // Arquivo .env com variáveis ambiente para gerenciar banco de dados.

  HOST=localhost
  USER_NAME=root
  PASSWORD=123456
  DATABASE_USE_NAME=rsanttos
  • Agora vamos criar nossa classe para carregar nossas variáveis ​​de ambiente em nosso projeto PHP. Na raiz do nosso projeto vamos criar a pasta "app", esta é a pasta que definimos em "composer.json", dentro desta pasta criaremos também outra chamada "Common" e dentro desta pasta nosso arquivo "Environment.php" com o código:
<?php

  namespace App\Common;

  class Environment {
    /**
     * Método para carregar variáveis ambiente
     * @param string $dir caminho do arquivo .env
     */
    public static function load($dir) {
      // Verificar se o arquivo .env existe
      if(!file_exists($dir.'/.env')) {
        return false;
      }

      // Define as variáveis
      $lines = file($dir.'/.env');
      foreach($lines as $line) {
        putenv(trim($line));
      }
    }
  }

Esta é a estrutura de pastas e arquivos que temos até agora.


📂 app
   📂 Common
     📃 Environment.php
📂 vendor
🔆 .env
📃 composer.json
📃 index.php


  • Agora vamos carregar nossa classe no arquivo "index.php" e chamá-la.
  // Arquivo index.php
  <?php
      require __DIR__.'/vendor/autoload.php';

      // Classe Environment
      use \App\Common\Environment;

      // Chamada
      Environment::load(__DIR__);

      $env = getenv();
      print_r($env);

      // Para obter os valores das variáveis ​​de ambiente basta usar a função "getenv();"

      echo getenv('HOST')."\n";
      echo getenv('USER_NAME')."\n";
      echo getenv('PASSWORD')."\n";
      echo getenv('DATABASE_USE_NAME')."\n";

      // Para testar se está funcionando, basta digitar seu terminal.

      php index.php
  • Agora vamos criar nosso arquivo ".env.example", este arquivo é usado para garantir uma certa segurança, já que o arquivo ".env" só pode estar presente em seu ambiente de produção. O arquivo ".env.example" é uma cópia do seu arquivo ".env", agora em sua classe Environment dentro da pasta "app/Common" você pode alterar o caminho ".env" para ".env.example".
You might also like...
laravel package for the Ar-PHP Project
laravel package for the Ar-PHP Project

laravel package for the Ar-PHP Project this is just a wrapper to use with laravel for the Ar-PHP Library, for more details checkout khaled-alshamaa

A laravel service provider for the netsuite-php library service

netsuite-laravel A PHP supplemental package to the ryanwinchester/netsuite-php package to add the NetSuite service client to the service container of

Simplest Slugify for PHP to convert string into a slug.
Simplest Slugify for PHP to convert string into a slug.

Simplest Slugify for PHP to convert string into a slug. Documentation You can find the detailed documentation here in Slugify Documentation. Contribut

PHP package to help the development of Laravel-based Telegram bots
PHP package to help the development of Laravel-based Telegram bots

Laravel-telegram-bot Project description goes here. This description is usually two to three lines long. It should give an overview of what the projec

Deploy and execute non-PHP AWS Lambda functions from your Laravel application.

Sidecar for Laravel Deploy and execute non-PHP AWS Lambda functions from your Laravel application. Read the full docs at hammerstone.dev/sidecar/docs.

Laravel blade directives and php helpers for serverside rendered content, based on browser window size WITHOUT css

Laravel Window Size and Breakpoints Laravel blade directives and php helpers for server side rendered content, based on browser window size WITHOUT cs

Send PHP errors to Flare
Send PHP errors to Flare

Send PHP errors to Flare This repository contains a PHP client to send PHP errors to Flare. Documentation You can find the documentation of this packa

Winbox.js wrapper in PHP.
Winbox.js wrapper in PHP.

Winbox PHP A wrapper for using Winbox.js just coding in PHP. Based on: JS Repo - https://github.com/nextapps-de/winbox Installation Clone the repo or

Control frontend access to properties/methods in Livewire using PHP 8 attributes.
Control frontend access to properties/methods in Livewire using PHP 8 attributes.

This package adds PHP 8.0 attribute support to Livewire. In specific, the attributes are used for flagging component properties and methods as frontend-accessible.

Owner
Ricardo Santos
Desenvolvimento mobile, web e desktop
Ricardo Santos
Essa é uma aplicação RESTFul API e também uma aplicação MVC usando Blade construída com Laravel 8.

MVC - API - CRUD - REVENDA DE CARROS Essa é uma aplicação RESTFul API e também uma aplicação MVC usando Blade construída com Laravel 8. Neste projeto

matheusaltair 2 Dec 14, 2021
Proyecto Start-Basic sobre Login y crud de usuarios, mediante Api Rest, usando la plantilla AdminLte 3.1 y manejo de roles y permisos con spatie y autenticacion JWT

Proyecto Start-Basic sobre Login y crud de usuarios, mediante Api Rest, usando la plantilla AdminLte 3.1 y manejo de roles y permisos con spatie y autenticacion JWT

null 9 Jul 5, 2022
Laravel 4.* and 5.* service providers to handle PHP errors, dump variables, execute PHP code remotely in Google Chrome

Laravel 4.* service provider for PHP Console See https://github.com/barbushin/php-console-laravel/releases/tag/1.2.1 Use "php-console/laravel-service-

Sergey 73 Jun 1, 2022
Public API for the project coding.events. Made in PHP 8.0 with Lumen 8, PHP-FPM, NGINX and MySQL 8.

coding.events API Uma API feita apenas para passar o tempo, montando uma API para o site <coding.events>. Sinta-se livre para usar esse código como es

Kaique Garcia 3 Oct 9, 2022
PHP phonebook with map (Active Directory, LDAP -> MySQL, PHP)

LDAP phonebook ???? ???? Development ветка Вопросы предпочтительнее задавать в Issues, а не по почте Корпоративный телефонный справочник с отображение

null 47 Nov 30, 2022
States allows you to create PHP classes following the State Pattern in PHP.

States allows you to create PHP classes following the State Pattern in PHP. This can be a cleaner way for an object to change its behavior at runtime without resorting to large monolithic conditional statements and this improve maintainability and workflows writing.

Teknoo Software 10 Nov 20, 2022
PHP components - collection of cross-project PHP classes

PHP components Collection of cross-project PHP classes. Install: $ composer require ansas/php-component Ansas\Component\Convert\ConvertPrice Convert "

null 1 Jan 5, 2022
Lavacharts is a graphing / charting library for PHP 5.4+ that wraps Google's Javascript Chart API.

Lavacharts 3.1.12 Lavacharts is a graphing / chart library for PHP5.4+ that wraps the Google Chart API. Stable: Dev: Developer Note Please don't be di

Kevin Hill 616 Dec 17, 2022
PHP Secure Headers

Secure Headers Add security related headers to HTTP response. The package includes Service Providers for easy Laravel integration. Version Installatio

null 431 Dec 26, 2022
A Simple GUID creator Laravel Package for PHP

A Simple GUID creator package for PHP. This package is useful for creating globally unique identifiers (GUID). It's under MIT license so it's free for

Sujip Thapa 15 Jun 26, 2021