Лучший способ хранить конфиги в проекте php composer?

Когда мы не используем рамки,

  1. что лучший способ хранить конфиги в проекте композитора и как мы можем загрузить их из контроллера или файла модели? мы предпочитаем хранить конфиги вне src папка.

  2. почему никто не использует константы класса хранить конфиги

ех. Приложение / Config / AppConfig :: TIMEZONE;

— composer.json

"autoload":
{
"psr-4":
{
"App\\": "src/app/"}
}

— /src/app/Configs/AppConfig.php

namespace App\Configs;

class AppConfig {
const TIMEZONE = 'EST';
}

— SRC / приложение / контроллеры / HelloWorld.php

namespace App\Controllers;
use App\Configs\AppConfig;

class HelloWorld
{
$timezone = AppConfig::TIMEZONE;
}

Спасибо

2

Решение

В современном мире дела идут современно. Лучший подход к конфигурациям — отдельно сохранять в каталоге. Теперь пришло время поговорить о вызове значений конфигурации; Создайте вспомогательную функцию, которая будет собирать данные для вас и эффективно возвращать, как вы хотели.

0

Другие решения

я использую этот пакет PHPConfig делать такие вещи.

Этот подход позволяет хранить все ваши элементы конфигурации в отдельном месте для остальной части вашего кода и обеспечивает легкий доступ к любым значениям конфигурации в любом месте вашего приложения.

Структура каталогов

- app
- app.php
- config
- config_file_one.php
- config_file_two.php
- public
- index.php

config_file_one.php

<?php
use TomWright\PHPConfig\Config;

$config = Config::getInstance();

$config->setItem('mysite.name', 'My Site');

config_file_two.php

<?php
use TomWright\PHPConfig\Config;

$config = Config::getInstance();

$config->setItem('mysite.url', 'https://www.example.com');

app.php

<?php
use TomWright\PHPConfig\Config;

class App {

public function __construct()
{
$this->loadConfigFiles();
}

private function loadConfigFiles()
{
require_once '/path/to/app/config/config_file_one.php';
require_once '/path/to/app/config/config_file_two.php';
}

public function run()
{
$config = Config::getInstance();

var_dump($config->getItem('mysite.name')); // My Site
var_dump($config->getItem('mysite.url')); // https://www.example.com
var_dump($config->getItem('mysite')); // stdClass { name => 'My Site', url => 'https://www.example.com' }
}

}

index.php

<?php
require_once './vendor/autoload.php';
$app = new App();
$app->run();

Вы можете сделать еще один шаг и автоматически включить все php-файлы в директорию config.

Вы также можете определить различные элементы конфигурации в зависимости от переменных среды и системных настроек, таких как среды разработки и производства.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector