miladrahimi / phpconfig
该软件包已被废弃且不再维护。未建议替代软件包。
PHP配置工具
v2.0
2018-09-09 12:46 UTC
Requires
- php: >=7.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 6.*
README
PhpConfig
PHP配置工具
概述
PhpConfig 是一个最小的软件包,用于向您的PHP项目添加配置工具。它提供了不同类型的配置存储库,例如运行时数组、PHP文件、PHP文件目录、JSON文件和JSON文件目录。
安装
在您项目的根目录中运行以下命令
composer require miladrahimi/phpconfig
入门
首先,您需要向 PhpConfig 提供配置数据。它支持不同类型的存储库,如 PHP 文件、JSON 文件,您可以使用您感兴趣的类型。
例如,我们使用数组存储库作为配置数据源。以下示例演示了如何将数据数组用作数据源,如何在您的代码中访问数据,以及如何使用 .
操作符进行更深入的访问。
use MiladRahimi\PhpConfig\Config; use MiladRahimi\PhpConfig\Repositories\ArrayRepository; $data = [ 'name' => 'MyProject', 'mysql' => [ 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'secret', 'database' => 'my_database' ] ]; $repository = new ArrayRepository($data); $config = new Config($repository); $name = $config->get('name'); // "MyProject" $mysql_username = $config->get('mysql.username', 'root'); // "root" $mysql_password => $config->get('mysql.password', ''); // "secret" $locale = $config->get('locale', 'en'); // "en" (Default) // Runtime config setting/manipulating $config->set('locale', 'fa'); $locale = $config->get('locale', 'en'); // "fa"
存储库
上面的示例说明了如何使用定义的数组作为 PhpConfig 的存储库。在本节中,我们将介绍一些其他存储库。
配置PHP文件
您可以将数据数组放入一个单独的PHP文件中
<?php return [ 'name' => 'MyProject', 'mysql' => [ 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'secret', 'database' => 'my_database' ] ];
然后使用配置文件
use MiladRahimi\PhpConfig\Config; use MiladRahimi\PhpConfig\Repositories\FileRepository; $repository = new FileRepository('config.php'); $config = new Config($repository); $mysql_username = $config->get('mysql.username');
配置目录
在更大的规模中,您可能需要将配置数据拆分到多个文件中。不用担心,这会非常容易处理!
例如,将配置文件组织在一个目录中
Project
- index.php
- configs
- - app.php
- - mysql.php
例如 app.php
<?php return [ 'name' => 'MyProject', 'locale' => [ 'code' => 'fa', 'name' => 'Farsi (Persian)', ], 'url' => 'https://example.com' ];
和 mysql.php
<?php return [ 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'secret', 'database' => 'my_database' ];
以及主代码
use MiladRahimi\PhpConfig\Config; use MiladRahimi\PhpConfig\Repositories\DirectoryRepository; $config = new Config(new DirectoryRepository('configs')); $app_locale_code = $config->get('app.locale.code', 'en'); $mysql_username = $config->get('mysql.username', 'default-username');
配置JSON文件
PHP数组语法看起来很漂亮,但您可能更喜欢JSON。如果是这样,好消息是您可以将配置写入类似以下示例的JSON格式。
例如,config.json
{ "app": { "name": "MyProject", "locale": { "code": "fa", "name": "Farsi (Persian)" } } }
以及主代码
use MiladRahimi\PhpConfig\Config; use MiladRahimi\PhpConfig\Repositories\JsonFileRepository; $config = new Config(new JsonFileRepository('config.json')); $app_locale_code = $config->get('app.locale.code', 'en'); // "fa"
配置JSON目录
单个JSON配置文件仍然存在单个PHP文件的问题,因此我们实现了另一种存储库类型,用于多个JSON文件。
例如,将配置文件组织在一个目录中
Project
- index.php
- configs
- - app.json
- - mysql.json
例如,app.json
{ "name": "MyProject", "locale": { "code": "fa", "name": "Farsi (Persian)" } }
和 mysql.json
{ "hostname": "localhost", "username": "root", "password": "secret", "database": "my_project_db" }
以及主代码
use MiladRahimi\PhpConfig\Config; use MiladRahimi\PhpConfig\Repositories\JsonDirectoryRepository; $config = new Config(new JsonDirectoryRepository('configs')); $app_locale_code = $config->get('app.locale.code', 'en'); // "fa" $mysql_username = $config->get('mysql.username', 'default-username');
自定义存储库
您还可以通过实现以下接口来创建自己的存储库
<?php namespace MiladRahimi\PhpConfig\Repositories; interface Repository { /** * Get configuration data * * @return array */ public function getData(): array; }
许可证
PhpConfig最初由Milad Rahimi创建,并按照MIT许可证发布。