merlinblack/nigelib

此软件包已 废弃 并不再维护。未建议替代包。

适用于微型小型 Web 应用的微型库。

v0.0.6 2018-04-11 06:22 UTC

This package is not auto-updated.

Last update: 2022-08-06 06:49:31 UTC


README

2022年8月1日 存档 - 这相当陈旧。我不再维护它,毫无疑问现在有更好的方法来做这些事情。

Software LicensePackagist

适用于微型小型 Web 应用的微型 PHP 库。

即我的有用小工具集合。

关于

具有类似 Laravel 风格的配置文件,可以根据运行代码的机器的域名(或其他参数)自动切换。这意味着你可以在目录中设置默认设置,并在该目录下,你可以选择性地有一个目录,用于在特定主机上运行时使用新或覆盖的设置。

安装 symfony/yaml 允许 Config 类也加载 Yaml 文件。

如果也安装了 Aura/Sql,数据库连接管理器具有 SQL 查询分析。连接仅在第一次检索时初始化,并使用 Config 类进行配置。

Console 类检测输出位置,以写入纯文本、使用 ANSI 转义序列的彩色文本或您可以根据需要样式化的 HTML。

PharBuilder 是一个类,用于帮助构建命令行实用程序,作为 Phar 文件。有关更多信息,请参阅 PharBuilder.php & phartest.php。

StaticDelegate 可以扩展以提供对类实例的方便静态访问,只要有一种方法可以检索实例。提供了两个静态类 - ConfigFacade 和 DatabaseConnectionManagerFacade。

SimpleTemplate 是一个类,用于帮助以 PHP 代码的形式渲染简单模板。它不试图成为一个模板引擎,然而对于基本的视图和模型分离,它也做得不错。

安装

通过 Composer

$ composer require merlinblack/nigelib

或使用 git 进行克隆。

示例用法

以下是检索配置在 configlocalconfig 目录中的 PDO 连接的方法。

<?php
use NigeLib\ConfigFacade as Config;
use NigeLib\Environment;
use NigeLib\DatabaseConnectionManagerFacade as DB;

// This needs to be done only once...
Config::init( 'localconfig', Environment::getEnvironmentName('envmap.php'), 'config' );

// Grab the PDO instance associated with 'temp' or create one based on the info
// in config/database.php
$temp_pdo = DB::get('temp');

要使上述内容生效,您还需要两个额外的文件

envmap.php

<?php
// Environment map.
//
// Maps environment names to one or more host names.
// These can be used by the Config class via the Environment class
// to read different configurations depending on which host this is running
// on.

return array(
    'live' => array( 'www.atkinson.kiwi' ),
    'test' => array( 'localhost.com', 'localhost','test.atkinson.kiwi' ),
);

config/database.php

<?php
return array(

    'default' => 'blog',

    'connections' => array(

        'blog' => array(
            'driver' => 'pgsql',
            'host' => 'localhost',
            'database' => 'test',
            'user' => 'postgres',
            'password' => '',
        ),

        'temp' => array(
            'driver' => 'sqlite',
            'filename' => ':memory:',
        ),
    ),
);