框架配置
使用配置文件
每个应用程序都需要一种方法来定义影响应用程序的各种设置,这些通常是通过配置文件处理。配置文件只包含一个包含设置其公共属性作为的类。与许多其他框架不同,您不需要使用单个类来访问您的设置。相反,您只需创建一个类的实例,并为您提供所有设置。
访问配置文件
您可以通过创建一个实例来访问类中的配置属性。所有的属性都是公共的,所以你可以访问任何其他属性的设置:
$config = new \Config\Email();
//将设置作为类属性访问
$protocol = $config->username ;
$mailpath = $config->password ;
如果没有提供命名空间,它将查找已定义的所有可用命名空间中的文件以及/app/Config/。配置YP附带的所有配置文件都使用Config命名。在应用程序中使用这个命名空间将提供最好的性能,因为它知道在什么目录找到文件,不必扫描文件系统中的多个位置来到达。
您可以使用不同的命名空间在服务器上找到任何位置的配置文件。这允许您将生产服务器上的配置文件拉到一个不在Web可访问的空间中的文件夹,同时保持它在/app下,以便在开发过程中方便访问。
创建配置文件
如果您需要创建一个新的配置文件,您将默认在所需位置/app/Config中创建一个新文件 。然后创建该类并使用您的设置的公共属性填充它:
<?php
namespace Config;
class App extends \YP\Config\BaseConfig{
public $uriProtocol = 'REQUEST_URI';
public $appTimezone = 'Asia/Shanghai';
}
该类应该继承\YP\Config\BaseConfig,以确保它可以接收环境特定的设置。
处理不同的环境
因为您的站点可以在多个环境中运行,所以应用根据修改的环境值决定在哪种环境下运行,例如开发人员的本地机器或生产站点使用的服务器。在应用内部,您将有可能根据运行的服务器而改变的环境变量的设置。这可以包括数据库设置,API凭据和其他不同部署之间的设置。
环境常量ENVIRONMENT,我们只有设置这个常量的值就可以了,一般可能的值为:dev(开发)、test(测试)、prod(生产)
重要提示
当您的应用程序运行时,该文件将被自动加载,变量将被放入环境中。这将在除生产之外的任何环境中工作,其中应通过getServer支持的任何方式(如.htaccess文件等)在环境中设置变量。然后,这些变量可通过getenv(),$_SERVER和$_ENV。在三个中,推荐使用getenv()函数,因为它不区分大小写:
$s3_bucket = getenv('S3_BUCKET');
$s3_bucket = $_ENV['S3_BUCKET'];
$s3_bucket = $_SERVER['S3_BUCKET'];
嵌套变量
要保存键入,可以通过在${...}中包含变量名称来重用您在文件中指定的变量:
BASE_DIR = '/var/webroot/project-root';
CACHE_DIR = "${BASE_DIR}/cache";
TMP_DIR = "${BASE_DIR}/tmp";