jevets/kirby-phpdotenv

适用于Kirby CMS的PHPDotenv

0.0.3 2016-03-30 17:24 UTC

This package is not auto-updated.

Last update: 2024-09-26 00:05:36 UTC


README

这是一个围绕vlucas' PHP dotenv库的简单包装,用于Kirby CMS

为什么?

我已经在我的Kirby项目中使用.env有一段时间了,但我厌倦了每次为每个新站点粘贴env()函数。所以,我创建了这个包。

快速示例

# .env
APP_DEBUG=true
# site/config/config.php
c::set('debug', env('APP_DEBUG', false));
# elsewhere
c::get('debug'); // true

安装

通过Composer安装

composer require jevets/kirby-phpdotenv 

用法

1. 实例化

在你的网站的index.php文件中(或在site.php文件中),加载Composer的自动加载器。

require_once 'path/to/vendor/autoload.php';

然后使用以下方式实例化:

  1. dotenv可以找到你的.env文件的路径
  2. 除了.env之外的文件名
new Jevets\Kirby\Dotenv\Dotenv(__DIR__ . DS, '.env');

注意: Jevets\Kirby\Dotenv\Dotenv将为你实例化并运行[dotenv]->load()

2. 创建你的.env文件

KIRBY_LICENSE=1234-12345-123456

APP_MODE=production
APP_DEBUG=true

3. 在config.php文件中使用

c::set('license', env('KIRBY_LICENSE', 'put your license in .env'));
c::set('debug', env('APP_DEBUG', false));

c::get('license'); // "1234-12345-123456"
c::get('debug'); // true

此库加载一个全局辅助函数

function env($key, $default = '') {...}

注意 function env()声明被if (!function_exists('env'))包裹,因此你可以覆盖它或使用自己的方法。

自定义文件夹设置

在我的Kirby项目中,我通常保持以下文件夹结构

project/
  .env
  .env.example
  .gitignore
  package.json
  composer.json
  site/
    accounts/
    blueprints/
    cache/
    config/
    snippets/
    templates/
  public/
    kirby/
      toolkit/
    panel/
    content/
    assets/
    thumbs/
    index.php
    site.php
  src/
  vendor/

这里是我的典型的site.php

# Composer autoload
require __DIR__ . DS . '..' . DS . 'vendor' . DS . 'autoload.php';

# DotEnv
new Jevets\Kirby\Dotenv\Dotenv(__DIR__ . DS . '..');

# Setup Kirby
$kirby = kirby();
$kirby->roots()->site = __DIR__ . DS . '..' . DS . 'site';

变更日志

0.0.3

  • 将helpers.php中的类别名从String重命名为Str,以兼容PHP7

0.0.2

  • 初始版本发布

合作

欢迎提交拉取请求和建议!

致谢

  • dotenv的全部功劳都归功于vlucas,他在PHP dotenv上的出色工作。我只是将它包装在包中,以加快基于Kirby的站点的开发。
  • 我从Laravel 5.1中盗用了Taylor Otwell的env()函数,并对其进行了一些调整,以便与Kirby一起使用。

错误/问题

请在GitHub仓库上的问题跟踪器中提交问题。