如何使用PHP编写器提供可配置的脚本

Phi*_*ler 12 php configuration composer-php

我想提供一个可以使用PHP的包管理器安装的脚本,该脚本composer必须是可配置的.

使用composer,我们可以轻松定义供应商二进制文件.

但是,我认为没有任何配置它们的可能性.

可以在包中包含配置文件.但是,供应商目录的名称和位置是可配置的,因此这将不是非常可靠.

为了比较:使用Python的包管理器pip,我们可以使用环境变量进行配置.我们可以在激活虚拟环境的同时设置环境变量,例如使用类似的工具virtualenvwrapper.

在PHP社区中必须至少进行类似方法的实验.

附录:背后的故事

我有脚本为网站的测试版本同步数据库和用户生成的文件.

对于Django站点,我总是使用相同的脚本,它们依赖于我使用virtualenvwrapper定义的环境变量.

对于Drupal站点,人们可以通过匆忙实现很多目标.

但是对于Wordpress,我找不到一个简单而干净的工具.这应该

  • 住在公众可用的文件夹之外
  • 可以与作曲家一起安装,最终与其他通用PHP工具结合使用
  • 使用简单而强大的方法来检测设置.

说实话,我错过了PHP中的virtualenvwrapper.virtualenvwrapper是一个linux脚本,主要做两件事:

  1. 它激活了Python虚拟环境.转换为PHP意味着后面的所有内容都使用某个编写器包的自动加载器.
  2. 它在激活或停用虚拟环境时执行脚本.在那里,人们可以定义环境变量做任何其他有用的事情.

小智 3

我不确定你想要实现什么,但是如果你想在 Php 中使用环境变量,有很多选择。

https://github.com/symfony/dotenv就是其中之一并且维护得很好。

<?php
use Symfony\Component\Dotenv\Dotenv;

$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/path/to/.env');
Run Code Online (Sandbox Code Playgroud)

然后您可以按照您想要的方式使用这些环境变量来进行配置。例如对于数据库配置:

$someSettings = [
    // Db config
    DB_CONNECTION => [
        'host' => getenv('DB_HOST'),
        'username' => getenv('DB_USERNAME'),
        'password' => getenv('DB_PASSWORD'),
        'database' => getenv('DB_DATABASE')
    ]
];
Run Code Online (Sandbox Code Playgroud)